【发布时间】:2011-08-10 23:27:00
【问题描述】:
如何在任何 joomla 组件中调用 joomla 的“简单图片幻灯片”插件。有什么解决办法吗?
谢谢
【问题讨论】:
标签: plugins joomla components
如何在任何 joomla 组件中调用 joomla 的“简单图片幻灯片”插件。有什么解决办法吗?
谢谢
【问题讨论】:
标签: plugins joomla components
在 Joomla! 中调用内容插件的最佳方式! 1.5及以上的只是使用:
$text = JHTML::_('content.prepare', $text);
http://docs.joomla.org/Triggering_content_plugins_in_your_extension
【讨论】:
您可以调用该插件中定义的任何插件事件。
$dispatcher = JDispatcher::getInstance();
$data = array($argu1, $argu2); // any number of arguments you want
return $dispatcher->trigger($eventName, $data);
【讨论】:
在 Joomla 中,插件不是典型意义上的调用,它们是由各种事件触发的。该插件侦听触发它的特定事件。在这种情况下,您需要查看 Simple Picture Slideshow 监听的内容,然后将该触发器添加到您的组件中。保证插件始终被触发的唯一方法是让它监听一个全局系统事件,无论组件中的代码如何,这些事件都会发生,它们发生在框架级别。如果插件由非全局事件触发,那么您需要更改插件或将事件添加到您想要使用插件的每个组件中。
全局系统事件参考 - http://docs.joomla.org/Reference:System_Events_for_Plugin_System
【讨论】:
这个问题专门针对joomla的Content插件。
您可以触发组件中的任何插件事件。
这里是一个触发content插件onPrepareContent事件的例子。
$content = new stdClass;
$content->text = 'Your content body with proper tag or
content wich you want to replace.
For example: {loadmodule mod_login}';
$atricle = array();
JPluginHelper::importPlugin('content');
$dispatcher = JDispatcher::getInstance();
JDispatcher::getInstance()->trigger(
'onPrepareContent',
array(
&$content,
&$atricle,
null
)
);
或者如果您只想为您的组件触发特定插件,那么您可以使用,
JPluginHelper::importPlugin('content', 'loadmodule');
第二个参数是您要使用的插件的名称。
同样,您可以在组件中调用用户插件事件。
JPluginHelper::importPlugin('user', 'contactcreator');
JDispatcher::getInstance()->trigger(
'onUserAfterSave',
array(
$user,
$isnew,
$success,
$msg
)
);
【讨论】: