Magento: Eigene Notifications erstellen

Jeder, der sich schonmal im Magento-Backend eingeloggt hat, kennt sicherlich die Notifications / Mitteilungen / Hinweise, welche gerne über neue Updates oder andere wichtige Events informieren. Doch wie erstellt man so eine Notification aus seinem eigenen Modul heraus und wo werden die gespeichert, regelmäßig abgerufen?

Gespeichert werden die Benachrichtigungen in der Tabelle adminnotification_inbox. Die dort gespeicherten Einträge werden nie gelöscht, selbst wenn man diese über den Admin löscht – in diesem Fall wird auf dem Datensatz nur das Flag is_remove auf 1 gesetzt. Etwas unschön ist allerdings in meinen Augen, dass das Flag nicht pro Benutzer gesetzt wird, sondern nur einmalig zentral. Das heißt, dass ein anderer Benutzer, der sich anmeldet, die Meldungen eventuell gar nicht mehr sieht.

Jede Notification hat dabei einen Titel, eine Beschreibung, ein Datum und eine URL. Hinzu kommt die „Schwere“. Hier unterscheidet man zwischen wichtig und unwichtig. Mit wichtigen Benachrichtigungen sollte daher sehr sparsam umgegangen werden.

Der Standard-Feed für die Admin-Notifications wird von der Klasse Mage_AdminNotification_Model_Feed verwaltet. Diese hängt sich einfach in das preDispatch-Event aller Admin-Controller und prüft dann, ob es neue Einträge für die entsprechende URL gibt. Das letzte Prüfdatum wird dabei im Cache hinterlegt, um einen Request bei jedem Seitenaufbau zu vermeiden. Standardmäßig wird folgende URL verwendet:

Wie man sieht, handelt es sich um einen Standard-RSS-Feed. Der Einzige Unterschied ist, dass es zusätzlich ein „Severity“-Element gibt, welches die Schwere der Mitteilung beschreibt. Alles was wir also machen müssen, um eigene Notifications auf Basis von RSS-Feeds zu implementieren, ist das Model zu erweitern (mit neuer URL), und neue Cache-Tags zu definieren, damit sich die Module nicht in die Quere kommen.

Und am Ende noch das Feed-Model.

Fertig. Wie genau man den Feed erstellt, werde ich hier allerdings nicht beschreiben. Dafür gibt es schließlich etliche fertige Klassen im Netz. Falls man auf einem anderen Wege die Notifications erstellen möchte, sollte man sich die Klasse Mage_AdminNotification_Model_Inbox anschauen.

Alles in allem wirklich schnell gemacht, und eine tolle Lösung um seine Kunden mit neuen Informationen zu versorgen (beispielsweise neue Versionen der Extensions).

Über

Jahrgang 87, gelernter Softwareentwickler und fast ein Jahrzehnt Erfahrung im Bereich Web-Entwicklung mit PHP und Web-Design. Diese Eigenschaften machen mich zu einem geeigneten und geschätzten Ansprechpartner für die Umsetzung Ihres Projektes. Weiterhin bin ich seit Ende 2013 Magento Certified Developer.