X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fping.php;h=5399129d43e8cc2b2a8bc76f276ffa78ddcd31eb;hb=720a43461d67ab229de0aecfc5008f22cc4c1c54;hp=810598a0b3e5addda5d340df66fed33a86529a41;hpb=dc842f4f37a5ff9cb787cac23272c38faf2ff892;p=friendica.git diff --git a/mod/ping.php b/mod/ping.php index 810598a0b3..5399129d43 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -1,6 +1,6 @@ 1000]); if (DBA::isResult($items)) { - $items_unseen = Post::toArray($items); + $items_unseen = Post::toArray($items, false); $arr = ['items' => $items_unseen]; Hook::callAll('network_ping', $arr); @@ -174,34 +175,28 @@ function ping_init(App $a) } } - $intros1 = q( + $intros1 = DBA::toArray(DBA::p( "SELECT `intro`.`id`, `intro`.`datetime`, - `fcontact`.`name`, `fcontact`.`url`, `fcontact`.`photo` - FROM `intro` INNER JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id` - WHERE `intro`.`uid` = %d AND NOT `intro`.`blocked` AND NOT `intro`.`ignore` AND `intro`.`fid` != 0", - intval(local_user()) - ); - $intros2 = q( + `contact`.`name`, `contact`.`url`, `contact`.`photo` + FROM `intro` INNER JOIN `contact` ON `intro`.`suggest-cid` = `contact`.`id` + WHERE `intro`.`uid` = ? AND NOT `intro`.`blocked` AND NOT `intro`.`ignore` AND `intro`.`suggest-cid` != 0", + local_user() + )); + $intros2 = DBA::toArray(DBA::p( "SELECT `intro`.`id`, `intro`.`datetime`, `contact`.`name`, `contact`.`url`, `contact`.`photo` FROM `intro` INNER JOIN `contact` ON `intro`.`contact-id` = `contact`.`id` - WHERE `intro`.`uid` = %d AND NOT `intro`.`blocked` AND NOT `intro`.`ignore` AND `intro`.`contact-id` != 0 AND (`intro`.`fid` = 0 OR `intro`.`fid` IS NULL)", - intval(local_user()) - ); + WHERE `intro`.`uid` = ? AND NOT `intro`.`blocked` AND NOT `intro`.`ignore` AND `intro`.`contact-id` != 0 AND (`intro`.`suggest-cid` = 0 OR `intro`.`suggest-cid` IS NULL)", + local_user() + )); $intro_count = count($intros1) + count($intros2); $intros = $intros1 + $intros2; - $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' ", - intval(local_user()), - DBA::escape($myurl) - ); - $mail_count = count($mails); + $myurl = DI::baseUrl() . '/profile/' . $a->getLoggedInUserNickname(); + $mail_count = DBA::count('mail', ["`uid` = ? AND NOT `seen` AND `from-url` != ?", local_user(), $myurl]); - if (intval(DI::config()->get('config', 'register_policy')) === \Friendica\Module\Register::APPROVE && is_site_admin()) { + if (intval(DI::config()->get('config', 'register_policy')) === \Friendica\Module\Register::APPROVE && $a->isSiteAdmin()) { $regs = Friendica\Model\Register::getPending(); if (DBA::isResult($regs)) { @@ -212,14 +207,9 @@ function ping_init(App $a) $cachekey = "ping_init:".local_user(); $ev = DI::cache()->get($cachekey); if (is_null($ev)) { - $ev = q( - "SELECT type, start, adjust FROM `event` - WHERE `event`.`uid` = %d AND `start` < '%s' AND `finish` > '%s' and `ignore` = 0 - ORDER BY `start` ASC ", - intval(local_user()), - DBA::escape(DateTimeFormat::utc('now + 7 days')), - DBA::escape(DateTimeFormat::utcNow()) - ); + $ev = DBA::selectToArray('event', ['type', 'start'], + ["`uid` = ? AND `start` < ? AND `finish` > ? AND NOT `ignore`", + local_user(), DateTimeFormat::utc('now + 7 days'), DateTimeFormat::utcNow()]); if (DBA::isResult($ev)) { DI::cache()->set($cachekey, $ev, Duration::HOUR); } @@ -229,7 +219,7 @@ function ping_init(App $a) $all_events = count($ev); if ($all_events) { - $str_now = DateTimeFormat::timezoneNow($a->timezone, 'Y-m-d'); + $str_now = DateTimeFormat::localNow('Y-m-d'); foreach ($ev as $x) { $bd = false; if ($x['type'] === 'birthday') { @@ -238,7 +228,7 @@ function ping_init(App $a) } else { $events ++; } - if (DateTimeFormat::convert($x['start'], ((intval($x['adjust'])) ? $a->timezone : 'UTC'), 'UTC', 'Y-m-d') === $str_now) { + if (DateTimeFormat::local($x['start'], 'Y-m-d') === $str_now) { $all_events_today ++; if ($bd) { $birthdays_today ++; @@ -252,8 +242,8 @@ function ping_init(App $a) $data['intro'] = $intro_count; $data['mail'] = $mail_count; - $data['net'] = $network_count; - $data['home'] = $home_count; + $data['net'] = ($network_count < 1000) ? $network_count : '999+'; + $data['home'] = ($home_count < 1000) ? $home_count : '999+'; $data['register'] = $register_count; $data['all-events'] = $all_events; @@ -340,13 +330,9 @@ function ping_init(App $a) usort($notifications, $sort_function); array_walk($notifications, function (&$notification) { - if (empty($notification['photo'])) { - $contact = Contact::getByURL($notification['url'], false, ['micro', 'id', 'avatar']); - $notification['photo'] = Contact::getMicro($contact, $notification['photo']); - } - + $notification['photo'] = Contact::getAvatarUrlForUrl($notification['url'], local_user(), Proxy::SIZE_MICRO); $notification['timestamp'] = DateTimeFormat::local($notification['date']); - $notification['date'] = Temporal::getRelativeDate($notification['date']); + $notification['date'] = Temporal::getRelativeDate($notification['date']); }); } @@ -411,17 +397,17 @@ function ping_get_notifications($uid) $quit = false; do { - $r = q( - "SELECT `notify`.*, `post-view`.`visible`, `post-view`.`deleted` - FROM `notify` LEFT JOIN `post-view` ON `post-view`.`id` = `notify`.`iid` - WHERE `notify`.`uid` = %d AND `notify`.`msg` != '' - AND NOT (`notify`.`type` IN (%d, %d)) - AND $seensql `notify`.`seen` ORDER BY `notify`.`date` $order LIMIT %d, 50", - intval($uid), - intval(Type::INTRO), - intval(Type::MAIL), - intval($offset) - ); + $r = DBA::toArray(DBA::p( + "SELECT `notify`.*, `post`.`visible`, `post`.`deleted` + FROM `notify` LEFT JOIN `post` ON `post`.`uri-id` = `notify`.`uri-id` + WHERE `notify`.`uid` = ? AND `notify`.`msg` != '' + AND NOT (`notify`.`type` IN (?, ?)) + AND $seensql `notify`.`seen` ORDER BY `notify`.`date` $order LIMIT ?, 50", + $uid, + Notification\Type::INTRO, + Notification\Type::MAIL, + $offset + )); if (!$r && !$seen) { $seen = true; @@ -448,27 +434,23 @@ function ping_get_notifications($uid) $notification["message"] = $notification["msg_cache"]; } else { $notification["name"] = strip_tags(BBCode::convert($notification["name"])); - $notification["message"] = Friendica\Model\Notify::formatMessage($notification["name"], strip_tags(BBCode::convert($notification["msg"]))); - - q( - "UPDATE `notify` SET `name_cache` = '%s', `msg_cache` = '%s' WHERE `id` = %d", - DBA::escape($notification["name"]), - DBA::escape($notification["message"]), - intval($notification["id"]) - ); + $notification["message"] = \Friendica\Navigation\Notifications\Entity\Notify::formatMessage($notification["name"], BBCode::toPlaintext($notification["msg"])); + + // @todo Replace this with a call of the Notify model class + DBA::update('notify', ['name_cache' => $notification["name"], 'msg_cache' => $notification["message"]], ['id' => $notification["id"]]); } $notification["href"] = DI::baseUrl() . "/notification/" . $notification["id"]; if ($notification["visible"] && !$notification["deleted"] - && empty($result[$notification['parent']]) + && empty($result['p:' . $notification['parent']]) ) { // Should we condense the notifications or show them all? - if (DI::pConfig()->get(local_user(), 'system', 'detailed_notif')) { - $result[$notification["id"]] = $notification; + if (($notification['verb'] != Activity::POST) || DI::pConfig()->get(local_user(), 'system', 'detailed_notif')) { + $result[] = $notification; } else { - $result[$notification['parent']] = $notification; + $result['p:' . $notification['parent']] = $notification; } } }