X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fping.php;h=f30d1a61b9da5175af37a86a91406f537fe641b6;hb=27eaffd7fb4713491dbb72410b0adc55d4c9a6aa;hp=968751a7da1819c0d9e261a0b87cac95800218f7;hpb=f9177e827e94f417e21458411e9ad84431e17e2a;p=friendica.git diff --git a/mod/ping.php b/mod/ping.php index 968751a7da..f30d1a61b9 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -4,12 +4,11 @@ */ use Friendica\App; -use Friendica\Content\Feature; use Friendica\Content\ForumManager; use Friendica\Content\Text\BBCode; -use Friendica\Core\Addon; use Friendica\Core\Cache; use Friendica\Core\Config; +use Friendica\Core\Hook; use Friendica\Core\L10n; use Friendica\Core\PConfig; use Friendica\Core\System; @@ -22,8 +21,6 @@ use Friendica\Util\Temporal; use Friendica\Util\Proxy as ProxyUtils; use Friendica\Util\XML; -require_once 'include/enotify.php'; - /** * @brief Outputs the counts and the lists of various notifications * @@ -33,30 +30,31 @@ require_once 'include/enotify.php'; * * Expected JSON structure: * { - * "result": { - * "intro": 0, - * "mail": 0, - * "net": 0, - * "home": 0, - * "register": 0, - * "all-events": 0, - * "all-events-today": 0, - * "events": 0, - * "events-today": 0, - * "birthdays": 0, - * "birthdays-today": 0, - * "groups": [ ], - * "forums": [ ], - * "notify": 0, - * "notifications": [ ], - * "sysmsgs": { - * "notice": [ ], - * "info": [ ] - * } - * } - * } + * "result": { + * "intro": 0, + * "mail": 0, + * "net": 0, + * "home": 0, + * "register": 0, + * "all-events": 0, + * "all-events-today": 0, + * "events": 0, + * "events-today": 0, + * "birthdays": 0, + * "birthdays-today": 0, + * "groups": [ ], + * "forums": [ ], + * "notify": 0, + * "notifications": [ ], + * "sysmsgs": { + * "notice": [ ], + * "info": [ ] + * } + * } + * } * * @param App $a The Friendica App instance + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ function ping_init(App $a) { @@ -66,14 +64,7 @@ function ping_init(App $a) $format = 'json'; } - $tags = []; - $comments = []; - $likes = []; - $dislikes = []; - $friends = []; - $posts = []; $regs = []; - $mails = []; $notifications = []; $intro_count = 0; @@ -124,7 +115,7 @@ function ping_init(App $a) header("Content-type: text/xml"); echo XML::fromArray($data, $xml); } - killme(); + exit(); } $notifs = ping_get_notifications(local_user()); @@ -132,13 +123,13 @@ function ping_init(App $a) $condition = ["`unseen` AND `uid` = ? AND `contact-id` != ?", local_user(), local_user()]; $fields = ['id', 'parent', 'verb', 'author-name', 'unseen', 'author-link', 'author-avatar', 'contact-avatar', 'network', 'created', 'object', 'parent-author-name', 'parent-author-link', 'parent-guid', 'wall']; - $params = ['order' => ['created' => true]]; + $params = ['order' => ['received' => true]]; $items = Item::selectForUser(local_user(), $fields, $condition, $params); if (DBA::isResult($items)) { $items_unseen = Item::inArray($items); $arr = ['items' => $items_unseen]; - Addon::callHooks('network_ping', $arr); + Hook::callAll('network_ping', $arr); foreach ($items_unseen as $item) { if ($item['wall']) { @@ -150,25 +141,21 @@ function ping_init(App $a) } if ($network_count) { - if (intval(Feature::isEnabled(local_user(), 'groups'))) { - // Find out how unseen network posts are spread across groups - $group_counts = Group::countUnseen(); - if (DBA::isResult($group_counts)) { - foreach ($group_counts as $group_count) { - if ($group_count['count'] > 0) { - $groups_unseen[] = $group_count; - } + // Find out how unseen network posts are spread across groups + $group_counts = Group::countUnseen(); + if (DBA::isResult($group_counts)) { + foreach ($group_counts as $group_count) { + if ($group_count['count'] > 0) { + $groups_unseen[] = $group_count; } } } - if (intval(Feature::isEnabled(local_user(), 'forumlist_widget'))) { - $forum_counts = ForumManager::countUnseenItems(); - if (DBA::isResult($forum_counts)) { - foreach ($forum_counts as $forum_count) { - if ($forum_count['count'] > 0) { - $forums_unseen[] = $forum_count; - } + $forum_counts = ForumManager::countUnseenItems(); + if (DBA::isResult($forum_counts)) { + foreach ($forum_counts as $forum_count) { + if ($forum_count['count'] > 0) { + $forums_unseen[] = $forum_count; } } } @@ -192,7 +179,7 @@ function ping_init(App $a) $intro_count = count($intros1) + count($intros2); $intros = $intros1 + $intros2; - $myurl = System::baseUrl() . '/profile/' . $a->user['nickname'] ; + $myurl = System::baseUrl() . '/profile/' . $a->user['nickname']; $mails = q( "SELECT `id`, `from-name`, `from-url`, `from-photo`, `created` FROM `mail` WHERE `uid` = %d AND `seen` = 0 AND `from-url` != '%s' ", @@ -201,12 +188,8 @@ function ping_init(App $a) ); $mail_count = count($mails); - if (intval(Config::get('config', 'register_policy')) === REGISTER_APPROVE && is_site_admin()) { - $regs = q( - "SELECT `contact`.`name`, `contact`.`url`, `contact`.`micro`, `register`.`created` - FROM `contact` RIGHT JOIN `register` ON `register`.`uid` = `contact`.`uid` - WHERE `contact`.`self` = 1" - ); + if (intval(Config::get('config', 'register_policy')) === \Friendica\Module\Register::APPROVE && is_site_admin()) { + $regs = Friendica\Model\Register::getPending(); if (DBA::isResult($regs)) { $register_count = count($regs); @@ -225,7 +208,7 @@ function ping_init(App $a) DBA::escape(DateTimeFormat::utcNow()) ); if (DBA::isResult($ev)) { - Cache::set($cachekey, $ev, CACHE_HOUR); + Cache::set($cachekey, $ev, Cache::HOUR); } } @@ -292,22 +275,6 @@ function ping_init(App $a) } } - if (DBA::isResult($mails)) { - foreach ($mails as $mail) { - $notif = [ - 'id' => 0, - 'href' => System::baseUrl() . '/message/' . $mail['id'], - 'name' => $mail['from-name'], - 'url' => $mail['from-url'], - 'photo' => $mail['from-photo'], - 'date' => $mail['created'], - 'seen' => false, - 'message' => L10n::t('{0} sent you a message'), - ]; - $notifs[] = $notif; - } - } - if (DBA::isResult($regs)) { foreach ($regs as $reg) { $notif = [ @@ -346,14 +313,7 @@ function ping_init(App $a) usort($notifs, $sort_function); if (DBA::isResult($notifs)) { - // Are the nofications called from the regular process or via the friendica app? - $regularnotifications = (!empty($_GET['uid']) && !empty($_GET['_'])); - foreach ($notifs as $notif) { - if ($a->is_friendica_app() || !$regularnotifications) { - $notif['message'] = str_replace("{0}", $notif['name'], $notif['message']); - } - $contact = Contact::getDetailsByURL($notif['url']); if (isset($contact['micro'])) { $notif['photo'] = ProxyUtils::proxifyUrl($contact['micro'], false, ProxyUtils::SIZE_MICRO); @@ -381,12 +341,12 @@ function ping_init(App $a) $sysmsgs = []; $sysmsgs_info = []; - if (x($_SESSION, 'sysmsg')) { + if (!empty($_SESSION['sysmsg'])) { $sysmsgs = $_SESSION['sysmsg']; unset($_SESSION['sysmsg']); } - if (x($_SESSION, 'sysmsg_info')) { + if (!empty($_SESSION['sysmsg_info'])) { $sysmsgs_info = $_SESSION['sysmsg_info']; unset($_SESSION['sysmsg_info']); } @@ -394,7 +354,7 @@ function ping_init(App $a) if ($format == 'json') { $data['groups'] = $groups_unseen; $data['forums'] = $forums_unseen; - $data['notify'] = $sysnotify_count + $intro_count + $mail_count + $register_count; + $data['notify'] = $sysnotify_count + $intro_count + $register_count; $data['notifications'] = $notifications; $data['sysmsgs'] = [ 'notice' => $sysmsgs, @@ -419,7 +379,7 @@ function ping_init(App $a) echo XML::fromArray(["result" => $data], $xml); } - killme(); + exit(); } /** @@ -427,6 +387,7 @@ function ping_init(App $a) * * @param int $uid User id * @return array Associative array of notifications + * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ function ping_get_notifications($uid) { @@ -437,8 +398,6 @@ function ping_get_notifications($uid) $order = "DESC"; $quit = false; - $a = get_app(); - do { $r = q( "SELECT `notify`.*, `item`.`visible`, `item`.`deleted` @@ -491,7 +450,7 @@ function ping_get_notifications($uid) if ($notification["visible"] && !$notification["deleted"] - && !(x($result, $notification["parent"]) && !empty($result[$notification["parent"]])) + && empty($result[$notification["parent"]]) ) { // Should we condense the notifications or show them all? if (PConfig::get(local_user(), 'system', 'detailed_notif')) { @@ -515,8 +474,8 @@ function ping_get_notifications($uid) * @param array $notifs Complete list of notification * @param array $sysmsgs List of system notice messages * @param array $sysmsgs_info List of system info messages - * @param int $groups_unseen Number of unseen group items - * @param int $forums_unseen Number of unseen forum items + * @param array $groups_unseen List of unseen group items + * @param array $forums_unseen List of unseen forum items * * @return array XML-transform ready data array */