Contexte

Dans le framework Elgg, le contexte peut être utilisé par les fonctions de votre plugin pour déterminer s’ils doivent s’exécuter ou non. Vous enregistrerez les fonctions de rappel à exécuter lorsque des événements sont déclenchés. Parfois, les événements sont génériques et vous souhaitez uniquement exécuter votre fonction de rappel quand votre plugin est à l’origine du déclenchement de l’événement. Dans ce cas, vous pouvez utiliser le contexte de la page.

Vous pouvez définir explicitement le contexte avec set_context(). Le contexte est une chaîne et généralement vous la définissez sur le nom de votre plugin. Vous pouvez récupérer le contexte avec la fonction get_context(). Il est toutefois préférable d’utiliser elgg_push_context($string) pour ajouter un contexte à la pile. Vous pouvez vérifier si le contexte que vous souhaitez ajouter est déjà dans la pile actuelle en appelant elgg_in_context($context). N’oubliez pas de dépiler (avec elgg_pop_context()) le contexte après l’avoir empilé, si vous n’en avez plus besoin.

Si vous ne le définissez pas, Elgg essaie de deviner le contexte. Si la page a été appelée par l’intermédiaire du gestionnaire de page, le contexte est défini sur le nom du gestionnaire qui a été défini dans elgg_register_page_handler(). Si la page n’a pas été appelée via le gestionnaire de page, elle utilise le nom de votre répertoire de plugins. S’il ne peut pas le déterminer, il renvoie main comme contexte par défaut.

Parfois, une vue va renvoyer un code HTML différent selon le contexte. Un plugin peut en profiter en définissant le contexte avant d’appeler elgg_view() sur la vue, puis en rétablissant le contexte d’origine. Cela se fait fréquemment avec le contexte de recherche (search).