Joomla:插件插件 - 如何“宣传”功能?

时间:2013-08-05 08:31:40

标签: joomla2.5 joomla-extensions

我正在开发一个插件,它将拥有自己的插件来处理各种事件。

现在我正在考虑启用此插件来添加自己的“命令”。但我想知道如何最有效地对待它。我有一个我自己的命令列表,无论如何我在文章中搜索。我是否应该只触发DoWhatYouWant($article) - 事件 - 或者,因为我进行搜索(并解析params),或许我可以构建一个全局命令列表然后触发“ExecuteCommand($article,$cmd,$params)” - 事件?听起来更好,但后来(我认为)我必须构建这个命令列表(以便我的程序知道要查找的内容),因此每个插件都必须以某种方式“宣传”它能做什么,即名称它可以处理的命令 - 我不知道如何做到这一点。

或者是否有更好的(更标准化的?)方法?

1 个答案:

答案 0 :(得分: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));
  }
}

为了消除更多重复的任务,我建议额外的插件将扩展插件文件夹中的基类。