1

さまざまなイベントを処理するための独自のプラグインを持つプラグインに取り組んでいます。

現在、このプラグインが独自の「コマンド」を追加できるようにすることを考えています。しかし、それを最も効率的に処理するにはどうすればよいのでしょうか。とにかく記事で検索する独自のコマンドのリストがあります。その後、DoWhatYouWant($article)-event をトリガーするだけでよいでしょうか?それとも、とにかく検索 (およびパラメーターの解析) を行うので、グローバル コマンド リストを作成してから、ExecuteCommand($article,$cmd,$params)-event をトリガーすることができますか? より良いように聞こえますが、(私が思うに)このコマンドリストを作成する必要があります(プログラムが何を探すべきかを知るため)。そのため、すべてのプラグインは、それができること、つまり、それが処理できるコマンド-そして、それがどのように行われるかわかりません。

それとも、より良い (より標準化された?) アプローチがありますか?

4

1 に答える 1

2

プラグイン ヘルパーを使用してプラグインをインポートする場合

JPluginHelper::importPlugin('mycmdplugins');

次に、次のようなサブプラグインでサポートされているすべての使用可能なコマンドを取得できます

$cmds = JDispatcher::getInstance()->trigger('onMyAwesomeCmds');

$cmds 変数を使用すると、サブプラグインでサポートされているコマンドがわかり、それらの記事を解析できます。それからあなたはすることができます

foreach ($cmds as $cmd) {
  preg_match_all("{".$cmd."*}", $article->text, $matches, PREG_SET_ORDER);
  if (!empty($matches)) {
    JDispatcher::getInstance()->trigger('onMyAwesome'.ucfirst($cmd), array($article, $params));
  }
}

タスクの繰り返しをなくすために、追加のプラグインでプラグイン フォルダーから基本クラスを拡張することをお勧めします。

于 2013-08-05T11:42:12.440 に答える