X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fnotifications.php;h=3276e65491dc9060541c2dd3e5ca7c46569b0862;hb=b2d685482928363ce86c3c0519c8ff39d0af43ca;hp=54c54fa222b00009b4390bb5d23710ed6d5391f5;hpb=bd972151478f40f73585519110700222a1931d44;p=friendica.git diff --git a/mod/notifications.php b/mod/notifications.php index 54c54fa222..3276e65491 100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -12,9 +12,11 @@ use Friendica\Core\L10n; use Friendica\Core\NotificationsManager; use Friendica\Core\Protocol; use Friendica\Core\Renderer; +use Friendica\Core\Logger; use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\Module\Login; +use Friendica\Model\Contact; function notifications_post(App $a) { @@ -46,13 +48,14 @@ function notifications_post(App $a) if ($_POST['submit'] == L10n::t('Discard')) { DBA::delete('intro', ['id' => $intro_id]); - if (!$fid) { - // The check for blocked and pending is in case the friendship was already approved - // and we just want to get rid of the now pointless notification + // The check for pending is in case the friendship was already approved + // and we just want to get rid of the pending contact $condition = ['id' => $contact_id, 'uid' => local_user(), - 'self' => false, 'blocked' => true, 'pending' => true]; - DBA::delete('contact', $condition); + 'self' => false, 'pending' => true, 'rel' => [0, Contact::FOLLOWER]]; + if (DBA::exists('contact', $condition)) { + Contact::remove($contact_id); + } } $a->internalRedirect('notifications/intros'); } @@ -92,13 +95,20 @@ function notifications_content(App $a) $notif_header = L10n::t('Notifications'); + $all = false; + // Get introductions if ((($a->argc > 1) && ($a->argv[1] == 'intros')) || (($a->argc == 1))) { Nav::setSelected('introductions'); + $id = 0; + if (!empty($a->argv[2]) && intval($a->argv[2]) != 0) { + $id = (int)$a->argv[2]; + } + $all = (($a->argc > 2) && ($a->argv[2] == 'all')); - $notifs = $nm->introNotifs($all, $startrec, $perpage); + $notifs = $nm->introNotifs($all, $startrec, $perpage, $id); // Get the network notifications } elseif (($a->argc > 1) && ($a->argv[1] == 'network')) { @@ -119,6 +129,9 @@ function notifications_content(App $a) } elseif (($a->argc > 1) && ($a->argv[1] == 'home')) { $notif_header = L10n::t('Home Notifications'); $notifs = $nm->homeNotifs($show, $startrec, $perpage); + // fallback - redirect to main page + } else { + $a->internalRedirect('notifications'); } // Set the pager @@ -221,6 +234,14 @@ function notifications_content(App $a) '$as_fan' => (($notif['network'] == Protocol::DIASPORA) ? L10n::t('Sharer') : L10n::t('Subscriber')) ]); + $contact = DBA::selectFirst('contact', ['network', 'protocol'], ['id' => $notif['contact_id']]); + + if (($contact['network'] != Protocol::DFRN) || ($contact['protocol'] == Protocol::ACTIVITYPUB)) { + $action = 'follow_confirm'; + } else { + $action = 'dfrn_confirm'; + } + $header = $notif['name']; if ($notif['addr'] != '') { @@ -237,7 +258,7 @@ function notifications_content(App $a) $notif_content[] = Renderer::replaceMacros($tpl, [ '$type' => $notif['label'], - '$header' => htmlentities($header), + '$header' => $header, '$str_notifytype' => L10n::t('Notification type:'), '$notify_type' => $notif['notify_type'], '$dfrn_text' => $dfrn_text, @@ -268,6 +289,7 @@ function notifications_content(App $a) '$note' => $notif['note'], '$ignore' => L10n::t('Ignore'), '$discard' => $discard, + '$action' => $action, ]); break; }