Einbinden in Joomla Events
Manchmal möchten Sie ein Plugin erstellen, das auf Änderungen im Backend von Gantry 5 reagiert. Änderungen am Layout, an den Style-Einstellungen usw. wirken sich auf das Frontend der Website aus, und Sie befinden sich möglicherweise in einer Situation, in der Sie möchten, dass ein anderer Teil der Infrastruktur Ihrer Website diese Änderungen und Reaktionen bemerkt.
Joomla Events
Es gibt folgende Ereignisse in Joomla:
Plugin-Gruppe: gantry5
onGantry5ThemeInit($theme)
onGantryGlobalConfig(&$global)
onGantry5UpdateCss($theme)
onGantry5AdminInit($theme)
onGantry5SaveConfig($data)
Gantry 5 Ereignisse direkt aufrufen
Zusätzlich ruft Gantry 5 diese Ereignisse direkt auf:
onRenderModule
onContentBeforeSave
onContentAfterSave
onContentBeforeDelete
onContentAfterDelete
onExtensionBeforeSave
onExtensionAfterSave
onContentCleanCache
Der Rest der Ereignisse wird von Joomla beim Speichern von JTable für Template-Stile, Menüs etc. aufgerufen..
Zusätzliche Informationen
Einige Joomla-Ereignisse fehlen in dieser Liste, obwohl Sie immer noch an Gantry's eigenem Event Listener (symfony/event-dispatcher) hängen können, auf den Gantry DI zugreifen kann:
$gantry = \Gantry\Framework\Gantry::instance();
/** @var EventDispatcher $events */
$events = $gantry['events'];
$listener = new EventListener; // Your listener class.
$events->addSubscriber($listener);
Zu den Events gehören:
theme.init
admin.init.theme
admin.global.save
admin.menus.save
admin.styles.save
admin.layout.save
admin.assignments.save
admin.page.save
admin.settings.save