Skip to content

Doku Entwickler Meldungen UserPanel

blackcoder87 edited this page Dec 4, 2022 · 1 revision

Schnittstelle für Meldungen/Benachrichtigungen im User Panel


Inhaltsverzeichnis

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

Mapper

Modules\User\Mappers\Notifications
Modules\User\Mappers\NotificationPermission

Models

Modules\User\Models\Notification
Modules\User\Models\NotificationPermission

Hinzufügen einer Meldung

Es können wie folgt Meldungen eingetragen werden:

$notification = new AdminNotificationModel();
$adminNotificationsMapper = new AdminNotificationsMapper();

$notification->setModule('away');
$notification->setMessage('Testmessage3');
$notification->setURL('http://www.google.de');
$notification->setType('awayAdminNewEntry');
$adminNotificationsMapper->addNotification($notification);

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", "URL" und "Type", falls diese aktualisiert werden sollen.

Abfragen der Meldungen eines Moduls

Es gibt verschiedene Funktionen zum Abfragen der Meldungen. Hier einige Beispiele:

$notificationsMapper = new NotificationsMapper();

$notification = $notificationsMapper->getNotificationsSortedByDateType($this->getUser()->getId())
$notification = $notificationsMapper->getNotificationById(1);
$notifications = $notificationsMapper->getNotificationByModule('article', $this->getUser()->getId());
$notifications = $notificationsMapper->getNotifications($this->getUser()->getId())
$notifications = $notificationsMapper->getNotificationsByType('newArticle', $this->getUser()->getId())

Löschen von Meldungen

$notificationsMapper = new NotificationsMapper();

$notificationsMapper->deleteNotificationById(1, $this->getUser()->getId())
$notificationsMapper->deleteNotificationsByModule('article', $this->getUser()->getId())
$notificationsMapper->deleteNotificationsByType('article', 'newArticle', $this->getUser()->getId())

Prüfen ob ein Modul noch die Erlaubnis hat Meldungen einzutragen

$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.

Auflistung aller Funktionen der Mapper

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

public function getNotificationById(int $id)

public function getNotifications(int $userId)

public function getNotificationsSortedByDateType(int $userId)

public function getNotificationsByModule(string $module, int $userId)

public function getNotificationsByType(string $type, int $userId)

public function isValidNotification(NotificationModel $notification)

public function addNotification(NotificationModel $notification)

public function addNotifications(array $notifications)

public function updateNotificationById(NotificationModel $notification)

public function deleteNotificationById(int $id, int $userId)

public function deleteNotificationsByModule(string $module, int $userId)

public function deleteNotificationsByType(string $module, string $type, int $userId)

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

public function getPermissionById(int $id)

public function getPermissions()

public function getPermissionsNotGranted()

public function getPermissionsOfModule(string $module, int $userId)

public function updatePermissionGrantedOfModule(string $module, int $userId, bool $granted)

public function updatePermissionGrantedOfModuleType(string $module, string $type, int $userId, bool $granted)

public function updatePermissionGrantedById(array $ids, int $userId, bool $granted)

public function addPermissionForModule(NotificationPermissionModel $permissionModel)

public function addPermissions(array $permissionModels)

public function deletePermissionOfModule(string $module, int $userId)

public function deletePermissionForType(string $module, string $type, int $userId)

public function deletePermissionsById(array $ids, int $userId)

public function deleteOtherPermissionsOfModule(int $id)

Auflistung der Eigenschaften der Models

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

  • Id
  • Timestamp
  • UserId
  • Module
  • Message
  • URL
  • Type

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

  • Id
  • UserId
  • Module
  • Type
  • Granted

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