web-dev-qa-db-fra.com

Que signifie le paramètre $ context du contenu du plugin?

J'ai lu ça $context paramètre est:

"Le contexte du contenu transmis au plug-in - il s'agit du nom et de la vue du composant - ou du nom du module (par exemple, com_content.article)"

https://docs.joomla.org/Plugin/Events/Content

Qu'est-ce que ça veut dire? Peut-on manipuler module (s) et autre composant (s) dans en plus de com_content depuis le plugin de contenu, et si oui, comment? Pouvez-vous donner un exemple de code?

5
stckvrw

Le paramètre $context Peut être utilisé pour définir si votre plugin doit être exécuté ou non dans certaines circonstances. Par exemple, vous pouvez souhaiter que votre plug-in soit exécuté lors de l'affichage des blogs de catégorie, mais pas lors de la lecture de l'article complet:

if ($context == "com_content.category") {
    // Your code for category blog here
}

Certains des contextes disponibles sont:

  • com_content.category
  • com_content.article
  • com_content.featured
  • com_contact.category.title
  • com_tags.tag

(La liste ne contient que les contextes que j'ai pu confirmer avec un test rapide, n'hésitez pas à en ajouter plus))

Vous pouvez créer un petit plugin pour voir les différents contextes:

<?php
// no direct access
defined('_JEXEC') or die;

class plgContentContext extends JPlugin
{
    public function onContentPrepare($context, &$article, &$params)
        {
            echo '<h3 style="color:white;background:red">' . $context . '</h3>';
        }
}
?>
3
johanpw

Vous pouvez modifier tout composant utilisant l'événement onContentPrepare. J'ai effectué une recherche rapide sur Joomla 3.4.4. Il est utilisé par com_config, com_content, com_tags et com_users.

Toute extension peut également choisir d’utiliser ce déclencheur de plug-in.

2
jdog