37 lines
1 KiB
PHP
37 lines
1 KiB
PHP
|
|
<?php
|
||
|
|
namespace adrienpayet\notifications;
|
||
|
|
use Kirby\Cms\Page;
|
||
|
|
use Kirby\Data\Yaml;
|
||
|
|
use adrienpayet\notifications\Notification;
|
||
|
|
|
||
|
|
class NotificationsPage extends Page {
|
||
|
|
public function createNotification($notificationData) {
|
||
|
|
$newNotification = new Notification($notificationData);
|
||
|
|
|
||
|
|
$notifications = $this->notifications()->isNotEmpty()
|
||
|
|
? Yaml::decode($this->notifications()->value())
|
||
|
|
: [];
|
||
|
|
|
||
|
|
$notifications[] = $newNotification->toArray();
|
||
|
|
|
||
|
|
$this->update([
|
||
|
|
'notifications' => $notifications
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function deleteNotification($notificationId) {
|
||
|
|
$notifications = $this->notifications()->isNotEmpty()
|
||
|
|
? Yaml::decode($this->notifications()->value())
|
||
|
|
: [];
|
||
|
|
|
||
|
|
foreach ($notifications as $key => $notification) {
|
||
|
|
if ($notification['id'] === $notificationId) {
|
||
|
|
unset($notifications[$key]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$this->update([
|
||
|
|
'notifications' => Yaml::encode(array_values($notifications))
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
}
|