如何让CMS模板在普通网站上运行?

3
一个PHP内容管理系统通常有自己的模板引擎,无论是smarty还是一些其他特定于该CMS的自定义模板引擎。如果不将网站转换为由该CMS支持的网站,我该如何使CMS主题在普通PHP网站上运行?
我能否“教”网站使用内容管理系统的模板引擎(仅限模板引擎而不是实际的CMS引擎及其功能)?我的问题可能不太清楚,但我相信这里的某个人足够了解模板引擎,以告诉我正确的方法来做到这一点。

确实不是很清楚。你有没有一个不那么抽象的例子?另外,请澄清一下你所说的“主题”具体指什么。 - deceze
@jblue,“主题”这个词在不同的技术/项目/开发者中有不同的含义。我希望能有更具体的例子。 - deceze
4个回答

3

这取决于CMS和模板系统的使用情况。Smarty可以很容易地在静态网站上实现,因此只需删除CMS部分并将其替换为内容即可。对于Joomla,您可以获取模板文件并删除模块代码,然后将其替换为内容。


2
如果您已经有一些使用模板系统实现的页面,并且希望能够在不或几乎不进行更改的情况下使用它们,您应该查看Twig或启用了Twig的CMS(Symphony项目的后代)。
Twig使您能够编写自己的Lexer和Parser,尽管它已经有了自己的模板语法。
这意味着您可以使用Smarty或Mustache语法进行模板,或者任何其他您喜欢的语法。

1
如果你觉得Symphony模板太复杂,或者需要存储模板,你可以使用Symphony与Twig。在我看来,Twig更适合这种情况。 - Michael

2
我已经思考了你的问题15分钟,我认为除非复制CMS使用的完全主题引擎,否则无法做到这一点。但是,CMS的主题引擎仍然与CMS的API相结合,这实际上意味着你需要你的网站也理解CMS的API。基本上你正在将你的网站变成那个CMS。

附:我不是专家,所以可能理解有误。


2
我认为你说得很有道理 - 你需要根据CMS的API适应它,这取决于功能的级别。较少的功能比较容易。同时也要看模块(如果有的话)是如何设计的。 - Michael

1

您可以将模板保存为平面HTML,然后放置一些基本标签以输出自己的内容,例如:

<div id="mainmenu"><?php echo $mainMenu ?></div>

等等

这样你就可以使用自己的PHP代码来使用主题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接