X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fping.php;h=c76780f69744c7cf11c0f0eaff2ea7a65fe0ed05;hb=4d5e15709c7c83aac7463e1f9467c7e0bd121f9f;hp=edc1a1121345cc568079ee2fd3f6a1738442bf37;hpb=735cb7c6c1619662925df913360c7eb0ec3c3b9d;p=friendica.git diff --git a/mod/ping.php b/mod/ping.php index edc1a11213..c76780f697 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -4,16 +4,15 @@ */ 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; use Friendica\Database\DBA; +use Friendica\DI; use Friendica\Model\Contact; use Friendica\Model\Group; use Friendica\Model\Item; @@ -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']) { @@ -188,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 = DI::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' ", @@ -197,7 +188,7 @@ function ping_init(App $a) ); $mail_count = count($mails); - if (intval(Config::get('config', 'register_policy')) === REGISTER_APPROVE && is_site_admin()) { + if (intval(Config::get('config', 'register_policy')) === \Friendica\Module\Register::APPROVE && is_site_admin()) { $regs = Friendica\Model\Register::getPending(); if (DBA::isResult($regs)) { @@ -272,7 +263,7 @@ function ping_init(App $a) foreach ($intros as $intro) { $notif = [ 'id' => 0, - 'href' => System::baseUrl() . '/notifications/intros/' . $intro['id'], + 'href' => DI::baseUrl() . '/notifications/intros/' . $intro['id'], 'name' => $intro['name'], 'url' => $intro['url'], 'photo' => $intro['photo'], @@ -284,27 +275,11 @@ 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 = [ 'id' => 0, - 'href' => System::baseUrl() . '/admin/users/', + 'href' => DI::baseUrl() . '/admin/users/', 'name' => $reg['name'], 'url' => $reg['url'], 'photo' => $reg['micro'], @@ -338,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->isFriendicaApp() || !$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); @@ -373,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']); } @@ -386,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, @@ -411,7 +379,7 @@ function ping_init(App $a) echo XML::fromArray(["result" => $data], $xml); } - killme(); + exit(); } /** @@ -419,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) { @@ -429,8 +398,6 @@ function ping_get_notifications($uid) $order = "DESC"; $quit = false; - $a = get_app(); - do { $r = q( "SELECT `notify`.*, `item`.`visible`, `item`.`deleted` @@ -479,11 +446,11 @@ function ping_get_notifications($uid) ); } - $notification["href"] = System::baseUrl() . "/notify/view/" . $notification["id"]; + $notification["href"] = DI::baseUrl() . "/notify/view/" . $notification["id"]; 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')) { @@ -507,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 */