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 オートローダーはそれを見つけることができません

オフトピック: Joomla のタグ シノニムの追加に興味がある方は、ご意見をお聞かせください

于 2013-03-24T10:41:13.643 に答える
0

まず、プラグインが正しくインストールされ、有効化されていることを確認してください。

あなたの問題は、実際には存在しないプロパティを設定しようとしていることです:

$article->title = "Something!";

を実行するvar_dump($article);と、渡された唯一のプロパティが「テキスト」であることがわかります。

だからこれで

$article->text = "Something!";

これは明らかに onContentPrepare メソッドの制限です。

記事を保存するときにトリガーされるイベントを見つけることができるかもしれません。

于 2013-03-24T10:16:32.927 に答える