调用joomla组件中的插件



如何在任何joomla组件中调用joomla '简单图片幻灯片'插件?有解决办法吗?

谢谢

在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

插件参考- http://docs.joomla.org/Plugin

这个问题是针对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
    )
);

最新更新