]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Notifications/Ping.php
Allow the search for contacts on blocked servers via web
[friendica.git] / src / Module / Notifications / Ping.php
index 76cdd9f77055ce967968eda5d712fd6e07e3d651..3cd4d702010dc9e61c1e702618649e15014aaffa 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -48,6 +48,7 @@ use Friendica\Navigation\Notifications\Factory;
 use Friendica\Navigation\Notifications\Repository;
 use Friendica\Navigation\Notifications\ValueObject;
 use Friendica\Navigation\SystemMessages;
+use Friendica\Network\HTTPException;
 use Friendica\Protocol\Activity;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Profiler;
@@ -115,8 +116,8 @@ class Ping extends BaseModule
                $birthday_count       = 0;
                $today_birthday_count = 0;
 
-
-               if ($this->session->getLocalUserId()) {
+               // Suppress notification display for forum accounts
+               if ($this->session->getLocalUserId() && $this->session->get('page_flags', '') != User::PAGE_FLAGS_COMMUNITY) {
                        if ($this->pconfig->get($this->session->getLocalUserId(), 'system', 'detailed_notif')) {
                                $notifications = $this->notificationRepo->selectDetailedForUser($this->session->getLocalUserId());
                        } else {
@@ -229,7 +230,11 @@ class Ping extends BaseModule
 
                        // merge all notification types in one array
                        foreach ($intros as $intro) {
-                               $navNotifications[] = $this->formattedNavNotification->createFromIntro($intro);
+                               try {
+                                       $navNotifications[] = $this->formattedNavNotification->createFromIntro($intro);
+                               } catch (HTTPException\NotFoundException $e) {
+                                       $this->introductionRepo->delete($intro);
+                               }
                        }
 
                        if (count($registrations) <= 1 || $this->pconfig->get($this->session->getLocalUserId(), 'system', 'detailed_notif')) {
@@ -239,16 +244,16 @@ class Ping extends BaseModule
                                                $registration['url'],
                                                $this->l10n->t('{0} requested registration'),
                                                new \DateTime($registration['created'], new \DateTimeZone('UTC')),
-                                               new Uri($this->baseUrl->get(true) . '/moderation/users/pending')
+                                               new Uri($this->baseUrl . '/moderation/users/pending')
                                        );
                                }
-                       } elseif (count($registrations) > 1) {
+                       } else {
                                $navNotifications[] = $this->formattedNavNotification->createFromParams(
                                        $registrations[0]['name'],
                                        $registrations[0]['url'],
                                        $this->l10n->t('{0} and %d others requested registration', count($registrations) - 1),
                                        new \DateTime($registrations[0]['created'], new \DateTimeZone('UTC')),
-                                       new Uri($this->baseUrl->get(true) . '/moderation/users/pending')
+                                       new Uri($this->baseUrl . '/moderation/users/pending')
                                );
                        }