【发布时间】:2011-03-12 16:37:11
【问题描述】:
这可能是一个非常简单的问题,所以很抱歉没有更具挑战性!
我正在开发使用模板系统的内部 CMS。
为了使这个 CMS 尽可能可扩展,我想使用“模块”。因此,我想在模板文件中放置代表模块的自定义 HTML 标签。
这看起来像:
<p><Module name="newsTicker" property="value" anotherProperty="anotherValue" /></p>
我通过以下方式获取我的模板文件:
ob_start();
include "templatefile.tpl";
$buffer= ob_get_contents();
ob_end_clean();
现在我想查看$buffer 的内容,对于<Module name="moduleName" /> 的每次出现我想include "moduleName.class.php",创建该类的一个新实例,运行该模块的getOutput() 函数并将返回 <Module /> 标记所在位置的值。
我不知道该怎么做...:/有什么想法吗?
如果您不明白,请考虑新闻行情。我可能会编写一些代码来查看我数据库中的新闻表并列出 10 个最新新闻故事,然后将其输出到 html <ul>。我想将其抽象化,以便可以在许多页面上使用。所以在我的主页模板中,我可能有标签<Module name="newsTicker" />。现在,当我访问主页时,我需要查看主页的 tpl 文件,我会发现它在哪里显示 <Module name="newsTicker" />,我将提取 name 属性并包含一个基于该名称的类(在本例中它将是newsTicker.class.php)。这将有一个名为getOutput() 的函数,因此我将能够类似于:$output = $current_module->getOutput();,然后我需要返回到我的 tpl 文件并将原始<Module name="newsTicker" /> 更改为$output 的内容。
感谢您的帮助。 :)
汤姆
【问题讨论】:
标签: php regex templates content-management-system