1

我已经使用以下代码在 Joomla 2.5 中创建并成功安装了一个插件

<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

class plgCustomFunctions extends JPlugin 
{
    public function onContentPrepare($context, &$article, &$params, $page = 0)
    {
        $article->title = "Something!";
        return true;
    }
}?> 

我的理解是,这应该覆盖每篇文章的标题。那没有发生。我错过了什么?

4

2 回答 2

6

我认为问题出在类名上,应该是

class plgContentCustomFunctions extends JPlugin

否则 Joomla 自动加载器将无法找到它

Offtopic:任何有兴趣为 Joomla 添加标签同义词的人,请发表您的意见

于 2013-03-24T10:41:13.643 回答
0

因此,首先,请确保您的插件已正确安装并已激活。

您的问题是您正在尝试设置一个实际上并不存在的属性:

$article->title = "Something!";

如果你这样做,var_dump($article);你会看到传递的唯一属性是“文本”。

所以有了这个

$article->text = "Something!";

这显然是 onContentPrepare 方法的一个限制。

也许您可以找到保存文章时触发的事件。

于 2013-03-24T10:16:32.927 回答