Skip to content

Doku Entwickler Meldungen Admincenter

blackcoder87 edited this page Jul 27, 2023 · 5 revisions

Schnittstelle für Meldungen/Benachrichtigungen im Admincenter


Inhaltsverzeichnis

Auf der Startseite des Admincenter werden Meldungen angezeigt, die über diese Schnittstelle eingetragen wurden. Die Administratoren können hier die Meldungen löschen oder dem Modul die Erlaubnis zum Eintragen von Meldungen entziehen.

In den Einstellungen des Admincenters können sie zudem ein Limit für die Anzahl der Meldungen für jedes Modul setzen. Ist das Limit erreicht, dass heißt z.B. fünf Meldungen für ein Modul wurden eingetragen, werden weitere Meldungen nicht akzeptiert. Sobald die Administratoren Meldungen löschen und somit das Limit wieder unterschritten ist, können wieder Meldungen eingetragen werden.

Mapper

Modules\Admin\Mappers\Notifications
Modules\Admin\Mappers\NotificationPermission

Models

Modules\Admin\Models\Notification
Modules\Admin\Models\NotificationPermission

Hinzufügen einer Meldung

Solange das Limit noch nicht erreicht ist oder dem Modul die Erlaubnis zum Eintragen von Meldungen entzogen wurde, können wie folgt Meldungen eingetragen werden:

$notificationsMapper = new NotificationsMapper();
$notificationModel = new NotificationModel();

$notificationModel->setModule('awards');
$notificationModel->setMessage('Testmessage3');
$notificationModel->setURL('https://www.google.de');
$notificationModel->setType('awardsNewAward');

$notificationsMapper->addNotification($notificationModel);

Der Funktion addNotification() wird ein NotificationModel übergeben, in dem Werte für "Module", "Message", "URL" und "Type" gesetzt wurden. "Module" dient der Zuordnung einer Meldung zu einem Modul. "URL" bietet sich an um z.B. eine bestimmten Seite des Moduls zu verlinken. "Type" kann genutzt werden um die Meldung als eine eines bestimmten Typs kenntlich zu machen. Beim erstmaligen Aufruf von addNotification() bekommt das Modul automatisch die Erlaubnis Meldungen einzutragen.

Aktualisieren einer Meldung

Meldungen können aktualisiert werden. Jedoch bleibt der ursprüngliche Zeitstempel bestehen.

$notificationsMapper = new NotificationsMapper();
$notificationModel = new NotificationModel();

$notificationModel->setId(2);
$notificationModel->setModule('awards');
$notificationModel->setMessage('Testmessage3');
$notificationModel->setURL('https://www.google.de');

$notificationsMapper->updateNotificationById($notificationModel);

Der Funktion updateNotificationById wird ein NotificationModel übergeben, in dem der Wert für "Id" gesetzt wurde, sowie "Module", "Message" und "URL", falls diese aktualisiert werden sollen.

Abfragen der Meldungen eines Moduls

Um alle Meldungen eines Moduls abzufragen, muss die Funktion getNotificationsByModule() aufgerufen werden. Ihr wird der Schlüssel ("key") des Moduls übergeben. Es kann auch eine Meldung mit einer bestimmten abgefragt werden. Hierfür dient die Funktion getNotificationById().

$notificationsMapper = new NotificationsMapper();

$notification = $notificationsMapper->getNotificationById(1);
$notifications = $notificationsMapper->getNotificationByModule('article');

Löschen von Meldungen

$notificationsMapper = new NotificationsMapper();

$notificationsMapper->deleteNotificationById(1);
$notificationsMapper->deleteNotificationsByModule('article');

Prüfen ob ein Modul noch die Erlaubnis hat Meldungen einzutragen oder welches Limit eingetragen ist

$notificationPermissionMapper = new NotificationPermissionMapper();
$notificationPermissionMapper->getPermissionOfModule('article');

Prüfen ob ein NotificationModel gültig ist

Die Funktion isValidNotification() prüft die Werte "Module", "Message" und "URL".

$notificationsMapper = new NotificationsMapper();
$notificationModel = new NotificationModel();

$notificationModel->setModule('article');
$notificationModel->setMessage('Testmessage1');
$notificationModel->setURL('https://www.google.de');

if ($notificationsMapper->isValidNotification($notificationModel)) {
    // gültig
}

Es gibt noch weitere Funktionen, welche allerdings nicht von einem Modul aufgerufen werden sollten.

Auflistung aller Funktionen der Mapper

Modules\Admin\Mappers\Notifications
https://github.com/IlchCMS/Ilch-2.0/blob/master/application/modules/admin/mappers/Notifications.php

public function getNotificationById($id)

public function getNotifications()

public function getNotificationsByModule($module)

// Seit 2.1.14
public function getNotificationsByType($type)

public function isValidNotification(NotificationModel $notification)

public function addNotification(NotificationModel $notification)

public function updateNotificationById(NotificationModel $notification)

public function deleteNotificationById($id)

public function deleteNotificationsByModule($module)

public function deleteNotificationsByType($type)

public function deleteAllNotifications()

Modules\Admin\Mappers\NotificationPermission
https://github.com/IlchCMS/Ilch-2.0/blob/master/application/modules/admin/mappers/NotificationPermission.php

public function getPermissions()

public function getPermissionOfModule($module)

public function updatePermissionOfModule(NotificationPermissionModel $permission)

public function updatePermissionGrantedOfModule($module, $granted)

public function updateLimitOfModule($module, $limit)

public function addPermissionForModule(NotificationPermissionModel $permission)

public function deletePermissionOfModule($module)

Auflistung der Eigenschaften der Models

Modules\Admin\Models\Notification
https://github.com/IlchCMS/Ilch-2.0/blob/master/application/modules/admin/models/Notification.php

  • Id
  • Timestamp
  • Module
  • Message
  • URL
  • Type (seit 2.1.14)

Modules\Admin\Models\NotificationPermission
https://github.com/IlchCMS/Ilch-2.0/blob/master/application/modules/admin/models/NotificationPermission.php

  • Module
  • Granted
  • Limit

Wiki für ilch-2

Benutzer

  • Inhaltsverzeichnis
    Hier findet man u.a. die Installationsanleitung, sowie Fehler- und Problem-behebungen

Entwickler

  • Inhaltsverzeichnis
    Hier findet man Informationen zum Script, Konzept und dem Programmierstil

Designer

  • Inhaltsverzeichnis
    Hier findet man Informationen über den Aufbau und Anpassung von Layouts und Modulen

Video-Tutorials


Clone this wiki locally