it-swarm.com.de

Was ist der Unterschied zwischen den Plugin-Triggern onAfterGetMenuTypeOptions und onBeforeRenderMenuItems?

Beide Plugin-Trigger wurden von @ Craig in seiner Antwort auf eine andere Frage erwähnt, aber was sie tatsächlich tun, ist nicht so klar.

Im /administrator/components/com_menus/models/menutypes.php du hast:

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

Im /administrator/components/com_menus/views/items/view.html.php du hast:

// Allow a system plugin to insert dynamic menu types to the list shown in menus:
JEventDispatcher::getInstance()->trigger('onBeforeRenderMenuItems', array($this));
  1. Kann jemand erklären, was der Unterschied zwischen diesen beiden Auslösern ist? Aus den Kommentaren im Code geht hervor, dass sie dasselbe tun.

  2. Würde es möglich sein, einen Menütyp zu entfernen, anstatt ihn hinzuzufügen?

1
James Wadsworth

Der Hauptunterschied zwischen Plugin-Triggern ist der Zeitpunkt, zu dem sie ausgeführt werden. onAfterGetMenuTypeOptions wird ausgelöst, nachdem die Menütypen zurückgegeben wurden, und onBeforeRenderMenuItems wird unmittelbar vor dem Rendern der Menüelemente ausgelöst.

Der Kommentar im Code ist eigentlich nur ein Problem beim Kopieren und Einfügen (hoffentlich wird er behoben).

2
itoctopus