web-dev-qa-db-fra.com

Appeler un plugin de contenu dans Joomla! composant

Je souhaite afficher le plug-in de partage social dans le composant MediaStore, mais mes compétences ne sont pas suffisantes pour le faire fonctionner. Quelqu'un peut-il me donner des indices sur la façon de procéder?

Voici comment j'ai essayé d'appeler le plugin:

jimport('joomla.plugin.plugin');
class plgMediaStoreJoomla extends JPlugin {

    /**
     * Constructor.
     *
     * @param   $subject
     * @param   array $config
     */
    function __construct(&$subject, $config = array()) {
        // call parent constructor
        parent::__construct($subject, $config);
    }



    /**
     * onMSProductBeforeDisplay hook.
     */
    public function onMSProductBeforeDisplay($context, &$item, &$params) {

        JPluginHelper::importPlugin('content', 'social_share');
        $dispatcher = JEventDispatcher::getInstance();
        $app = JFactory::getApplication('site');
        $app->initialise();
        $app->triggerEvent('onContentAfterTitle');

        $versions   = $item->params->get('joomla_versions');

        if (is_array($versions) && count($versions)) {
            JHtml::_('stylesheet', 'plg_mediastore_joomla/style.css', array(), true);

            $html   = array();
            $html[] = '<div class="joomla-versions">';

            foreach ($versions as $version) {
                $html[] = '<span class="joomla-' . $version . '">Joomla! ' . $version . '</span>';
            }

            $html[] = '</div>';

            return implode("\n", $html);
        }

        return '';
    }

Mais je reçois ces erreurs:

Avertissement: Argument 1 manquant pour plgContentsocial_share :: onContentAfterTitle () dans ..

Essayer d'obtenir la propriété de non-objet dans..

Remarque: Variable non définie: contexte dans ..

etc

1
Frostbourn

Référence ici: https://docs.joomla.org/Triggering_content_plugins_in_your_extension

dans $app->triggerEvent('onContentAfterTitle');, vous devez transmettre certains arguments sous forme de tableau, mais vous ne les avez pas passés.

3
Dima