web-dev-qa-db-fra.com

Quelle est la différence entre les déclencheurs du plug-in onAfterGetMenuTypeOptions et onBeforeRenderMenuItems

@ Craig , dans sa réponse à ne autre question , a mentionné ces deux déclencheurs de plug-in, mais ce qu'ils font en réalité n'est pas si clair.

Dans /administrator/components/com_menus/models/menutypes.php tu as:

// Allow a system plugin to insert dynamic menu types to the list shown in menus:
JEventDispatcher::getInstance()->trigger('onAfterGetMenuTypeOptions', array(&$list, $this));

Dans /administrator/components/com_menus/views/items/view.html.php tu as:

// Allow a system plugin to insert dynamic menu types to the list shown in menus:
JEventDispatcher::getInstance()->trigger('onBeforeRenderMenuItems', array($this));
  1. Quelqu'un peut-il expliquer quelle est la différence entre ces deux déclencheurs? D'après les commentaires dans le code, cela vous fait penser qu'ils font la même chose.

  2. Plutôt que d'ajouter un type de menu, serait-il possible de le supprimer?

1
James Wadsworth

La principale différence entre les déclencheurs de plug-in réside dans le moment auquel ils s'exécutent. onAfterGetMenuTypeOptions est déclenché après le retour des types de menu, et onBeforeRenderMenuItems est déclenché juste avant le rendu des éléments de menu.

Le commentaire dans le code est vraiment juste un problème de copier/coller (j'espère que ça va être corrigé).

2
itoctopus