]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Notifications/Notifications.php
Improvements:
[friendica.git] / src / Module / Notifications / Notifications.php
index 50995645c38537f05dd99451122574ceee5e8e04..bff5026df6ecc6827b0b7821067033d8a02a6186 100644 (file)
@@ -3,10 +3,10 @@
 namespace Friendica\Module\Notifications;
 
 use Friendica\Content\Nav;
-use Friendica\Content\Pager;
 use Friendica\Core\Renderer;
 use Friendica\DI;
 use Friendica\Module\BaseNotifications;
+use Friendica\Object\Notification\Notification;
 
 /**
  * Prints all notification types except introduction:
@@ -20,46 +20,51 @@ class Notifications extends BaseNotifications
        /**
         * {@inheritDoc}
         */
-       public static function getNotifies()
+       public static function getNotifications()
        {
-               $nm = DI::notify();
-
-               $notif_header = '';
+               $notificationHeader = '';
+               /** @var Notification[] $notifications */
+               $notifications = [];
 
                // Get the network notifications
                if ((DI::args()->get(1) == 'network')) {
-                       $notif_header = DI::l10n()->t('Network Notifications');
-                       $notifs       = $nm->getNetworkList(self::$showAll, self::$firstItemNum, self::ITEMS_PER_PAGE);
+                       $notificationHeader = DI::l10n()->t('Network Notifications');
+                       $notifications      = [
+                               'ident'        => Notification::NETWORK,
+                               'notifications' => DI::factNotification()->getNetworkList(self::$showAll, self::$firstItemNum, self::ITEMS_PER_PAGE),
+                       ];
 
                        // Get the system notifications
                } elseif ((DI::args()->get(1) == 'system')) {
-                       $notif_header = DI::l10n()->t('System Notifications');
-                       $notifs       = $nm->getSystemList(self::$showAll, self::$firstItemNum, self::ITEMS_PER_PAGE);
+                       $notificationHeader = DI::l10n()->t('System Notifications');
+                       $notifications      = [
+                               'ident'        => Notification::SYSTEM,
+                               'notifications' => DI::factNotification()->getSystemList(self::$showAll, self::$firstItemNum, self::ITEMS_PER_PAGE),
+                       ];
 
                        // Get the personal notifications
                } elseif ((DI::args()->get(1) == 'personal')) {
-                       $notif_header = DI::l10n()->t('Personal Notifications');
-                       $notifs       = $nm->getPersonalList(self::$showAll, self::$firstItemNum, self::ITEMS_PER_PAGE);
+                       $notificationHeader = DI::l10n()->t('Personal Notifications');
+                       $notifications      = [
+                               'ident'        => Notification::PERSONAL,
+                               'notifications' => DI::factNotification()->getPersonalList(self::$showAll, self::$firstItemNum, self::ITEMS_PER_PAGE),
+                       ];
 
                        // Get the home notifications
                } elseif ((DI::args()->get(1) == 'home')) {
-                       $notif_header = DI::l10n()->t('Home Notifications');
-                       $notifs       = $nm->getHomeList(self::$showAll, self::$firstItemNum, self::ITEMS_PER_PAGE);
+                       $notificationHeader = DI::l10n()->t('Home Notifications');
+                       $notifications      = [
+                               'ident'        => Notification::HOME,
+                               'notifications' => DI::factNotification()->getHomeList(self::$showAll, self::$firstItemNum, self::ITEMS_PER_PAGE),
+                       ];
                        // fallback - redirect to main page
                } else {
                        DI::baseUrl()->redirect('notifications');
                }
 
-               // Set the pager
-               $pager = new Pager(DI::args()->getQueryString(), self::ITEMS_PER_PAGE);
-
-               // Add additional informations (needed for json output)
-               $notifs['items_page'] = $pager->getItemsPerPage();
-               $notifs['page']       = $pager->getPage();
-
                return [
-                       'header' => $notif_header,
-                       'notifs' => $notifs,
+                       'header'        => $notificationHeader,
+                       'notifications' => $notifications,
                ];
        }
 
@@ -67,52 +72,53 @@ class Notifications extends BaseNotifications
        {
                Nav::setSelected('notifications');
 
-               $notif_content   = [];
-               $notif_nocontent = '';
+               $notificationContent   = [];
+               $notificationNoContent = '';
 
-               $notif_result = self::getNotifies();
-               $notifs       = $notif_result['notifs'] ?? [];
-               $notif_header = $notif_result['header'] ?? '';
+               $notificationResult = self::getNotifications();
+               $notifications      = $notificationResult['notifications'] ?? [];
+               $notificationHeader = $notificationResult['header'] ?? '';
 
 
-               if (!empty($notifs['notifications'])) {
+               if (!empty($notifications['notifications'])) {
                        // Loop trough ever notification This creates an array with the output html for each
                        // notification and apply the correct template according to the notificationtype (label).
-                       foreach ($notifs['notifications'] as $notif) {
+                       /** @var Notification $notification */
+                       foreach ($notifications['notifications'] as $notification) {
                                $notification_templates = [
-                                       'like'        => 'notifications_likes_item.tpl',
-                                       'dislike'     => 'notifications_dislikes_item.tpl',
-                                       'attend'      => 'notifications_attend_item.tpl',
-                                       'attendno'    => 'notifications_attend_item.tpl',
-                                       'attendmaybe' => 'notifications_attend_item.tpl',
-                                       'friend'      => 'notifications_friends_item.tpl',
-                                       'comment'     => 'notifications_comments_item.tpl',
-                                       'post'        => 'notifications_posts_item.tpl',
-                                       'notify'      => 'notify.tpl',
+                                       'like'         => 'notifications/likes_item.tpl',
+                                       'dislike'      => 'notifications/dislikes_item.tpl',
+                                       'attend'       => 'notifications/attend_item.tpl',
+                                       'attendno'     => 'notifications/attend_item.tpl',
+                                       'attendmaybe'  => 'notifications/attend_item.tpl',
+                                       'friend'       => 'notifications/friends_item.tpl',
+                                       'comment'      => 'notifications/comments_item.tpl',
+                                       'post'         => 'notifications/posts_item.tpl',
+                                       'notification' => 'notifications/notification.tpl',
                                ];
 
-                               $tpl_notif = Renderer::getMarkupTemplate($notification_templates[$notif['label']]);
-
-                               $notif_content[] = Renderer::replaceMacros($tpl_notif, [
-                                       '$item_label' => $notif['label'],
-                                       '$item_link'  => $notif['link'],
-                                       '$item_image' => $notif['image'],
-                                       '$item_url'   => $notif['url'],
-                                       '$item_text'  => $notif['text'],
-                                       '$item_when'  => $notif['when'],
-                                       '$item_ago'   => $notif['ago'],
-                                       '$item_seen'  => $notif['seen'],
+                               $notificationTemplate = Renderer::getMarkupTemplate($notification_templates[$notification->getLabel()]);
+
+                               $notificationContent[] = Renderer::replaceMacros($notificationTemplate, [
+                                       '$item_label' => $notification->getLabel(),
+                                       '$item_link'  => $notification->getLink(),
+                                       '$item_image' => $notification->getImage(),
+                                       '$item_url'   => $notification->getUrl(),
+                                       '$item_text'  => $notification->getText(),
+                                       '$item_when'  => $notification->getWhen(),
+                                       '$item_ago'   => $notification->getAgo(),
+                                       '$item_seen'  => $notification->isSeen(),
                                ]);
                        }
                } else {
-                       $notif_nocontent = DI::l10n()->t('No more %s notifications.', $notifs['ident']);
+                       $notificationNoContent = DI::l10n()->t('No more %s notifications.', $notifications['ident']);
                }
 
-               $notif_show_lnk = [
-                       'href' => (self::$showAll ? 'notifications/' . $notifs['ident'] : 'notifications/' . $notifs['ident'] . '?show=all'),
+               $notificationShowLink = [
+                       'href' => (self::$showAll ? 'notifications/' . $notifications['ident'] : 'notifications/' . $notifications['ident'] . '?show=all'),
                        'text' => (self::$showAll ? DI::l10n()->t('Show unread') : DI::l10n()->t('Show all')),
                ];
 
-               return self::printContent($notif_header, $notif_content, $notif_nocontent, $notif_show_lnk);
+               return self::printContent($notificationHeader, $notificationContent, $notificationNoContent, $notificationShowLink);
        }
 }