在Joomla中动态修改文章

时间:2016-06-11 10:56:31

标签: php joomla

我可以通过将下一行放入我的模板来更改标题:

$doc->setTitle('my new title');

但是,是否有任何方法以同样的方式修改文章的“全文”?

1 个答案:

答案 0 :(得分:0)

简短回答:是的,content plugin

详细

如果您可以使用$doc->setTitle(),我会假设在该行之前的某处有一行说明:

$doc = JFactory::getDocument();

文档是指整页,因此您实际上是在设置html <title>标记。

如果您要更改文章文字,则需要处理特定组件的结果,即com_content,这只是整个文档的一部分。

有多种方法可以改变它。

更改整个页面内容

如果要更改模板中的整个页面内容,则必须执行以下操作:

$buffer = $doc->getBuffer();
// ... do whatever modification to buffer
$doc->setBuffer($buffer)

很简单,但在模板中放置这种逻辑并不是一个好主意(如果您想要更改模板,则必须复制/粘贴代码)

使用系统插件更改缓冲区

此解决方案的核心与之前相同,但您将逻辑放在系统插件中,挂钩onAfterRender事件。你得到缓冲区,你修改它,你设置缓冲区。

非常简单的修改的好解决方案和/或如果您想确保修改适用于页面的任何部分。

使用内容插件

内容插件仅适用于文章正文,产品说明和类似文字部分。

如果您只想修改这些部分,则应使用此功能。