【问题标题】:call plugin in joomla component在 joomla 组件中调用插件
【发布时间】:2011-08-10 23:27:00
【问题描述】:

如何在任何 joomla 组件中调用 joomla 的“简单图片幻灯片”插件。有什么解决办法吗?

谢谢

【问题讨论】:

    标签: plugins joomla components


    【解决方案1】:

    在 Joomla! 中调用内容插件的最佳方式! 1.5及以上的只是使用:

    $text = JHTML::_('content.prepare', $text);
    

    http://docs.joomla.org/Triggering_content_plugins_in_your_extension

    【讨论】:

      【解决方案2】:

      您可以调用该插件中定义的任何插件事件。

      $dispatcher = JDispatcher::getInstance();
      $data = array($argu1, $argu2);   // any number of arguments you want
      return $dispatcher->trigger($eventName, $data);
      

      【讨论】:

        【解决方案3】:

        在 Joomla 中,插件不是典型意义上的调用,它们是由各种事件触发的。该插件侦听触发它的特定事件。在这种情况下,您需要查看 Simple Picture Slideshow 监听的内容,然后将该触发器添加到您的组件中。保证插件始终被触发的唯一方法是让它监听一个全局系统事件,无论组件中的代码如何,这些事件都会发生,它们发生在框架级别。如果插件由非全局事件触发,那么您需要更改插件或将事件添加到您想要使用插件的每个组件中。

        全局系统事件参考 - http://docs.joomla.org/Reference:System_Events_for_Plugin_System

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

          猜你喜欢
          • 2012-07-22
          • 2014-09-14
          • 1970-01-01
          • 2014-11-01
          • 2012-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多