Project

General

Profile

Actions

Schnittstelle für Meldungen/Benachrichtigungen im Admincenter

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('http://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('http://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('http://www.google.de');

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

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

Übersicht 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)

Übersicht 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

Updated by -, blackcoder 10 months ago · 3 revisions