From: Dan Brown Date: Fri, 5 Jul 2024 14:09:56 +0000 (+0100) Subject: Updated notify-favourite-pages hack X-Git-Url: http://source.bookstackapp.com/hacks/commitdiff_plain/4623559f77b8d8ddd215e1b8fa0f5a8f86fac5db Updated notify-favourite-pages hack --- diff --git a/content/notify-favourited-pages/functions.php b/content/notify-favourited-pages/functions.php index 955b9bf..fbd8b45 100644 --- a/content/notify-favourited-pages/functions.php +++ b/content/notify-favourited-pages/functions.php @@ -1,41 +1,34 @@ page = $page; - $this->updater = $updater; - } - - public function toMail($notifiable) +class PageUpdatedNotification extends BaseActivityNotification { + public function toMail($notifiable): MailMessage { + /** @var Page $page */ + $page = $this->detail; + $updater = $this->user; return (new MailMessage()) ->subject('BookStack page update notification') - ->line("The page \"{$this->page->name}\" has been updated by \"{$this->updater->name}\"") - ->action('View Page', $this->page->getUrl()); + ->line("The page \"{$page->name}\" has been updated by \"{$updater->name}\"") + ->action('View Page', $page->getUrl()); } } // This function does the work of sending notifications to the relevant users that have // marked the given page as a favourite. -function notifyThoseThatHaveFavouritedPage(Page $page) { +function notifyThoseThatHaveFavouritedPage(Page $page): void { // Find those we need to notify, and find the current updater of the page $userIds = $page->favourites()->pluck('user_id'); $usersToNotify = User::query()->whereIn('id', $userIds) @@ -50,7 +43,7 @@ function notifyThoseThatHaveFavouritedPage(Page $page) { } // Listen to page update events and kick-start our notification logic -Theme::listen(ThemeEvents::ACTIVITY_LOGGED, function(string $type, $detail) { +Theme::listen(ThemeEvents::ACTIVITY_LOGGED, function (string $type, $detail) { if ($type === ActivityType::PAGE_UPDATE && $detail instanceof Page) { notifyThoseThatHaveFavouritedPage($detail); } diff --git a/content/notify-favourited-pages/index.md b/content/notify-favourited-pages/index.md index 4005db3..d622fea 100644 --- a/content/notify-favourited-pages/index.md +++ b/content/notify-favourited-pages/index.md @@ -2,11 +2,10 @@ title = "Notify Updates for Favourited pages" author = "@ssddanbrown" date = 2022-12-01T20:00:00Z -updated = 2022-12-01T20:00:00Z -tested = "v22.11" +updated = 2024-07-05T14:00:00Z +tested = "v24.05.2" +++ - This hack sends out page update notification emails to all users that have marked that page as a favourite. #### Considerations @@ -16,7 +15,7 @@ This hack sends out page update notification emails to all users that have marke #### Options -- You can customize the email message, if desired, by editing the lines of text within the toMail part at around lines 30-32 of the `functions.php` code. +- You can customize the email message, if desired, by editing the lines of text within the toMail part at around lines 23-25 of the `functions.php` code. #### Code