X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fping.php;h=17180c74ee98dc0bdcdbe454ec4eeb7af2befd91;hb=74479c4020499e6aa7866b5478366932b723c515;hp=cde03969f46b394e2091f0723da6168e9ff811ca;hpb=884f44ce94de8fdf26a40751dfd4b61b29765d29;p=friendica.git diff --git a/mod/ping.php b/mod/ping.php index cde03969f4..17180c74ee 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -1,10 +1,14 @@ '%s' and `ignore` = 0 - ORDER BY `start` ASC ", - intval(local_user()), - dbesc(datetime_convert('UTC', 'UTC', 'now + 7 days')), - dbesc(datetime_convert('UTC', 'UTC', 'now')) - ); + $cachekey = "ping_init:".local_user(); + $ev = Cache::get($cachekey); + if (is_null($ev)) { + $ev = qu("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()), + dbesc(datetime_convert('UTC', 'UTC', 'now + 7 days')), + dbesc(datetime_convert('UTC', 'UTC', 'now')) + ); + if (dbm::is_result($ev)) { + Cache::set($cachekey, $ev, CACHE_HOUR); + } + } if (dbm::is_result($ev)) { - $all_events = intval($ev[0]['total']); + $all_events = count($ev); if ($all_events) { $str_now = datetime_convert('UTC', $a->timezone, 'now', 'Y-m-d'); @@ -297,8 +308,18 @@ function ping_init(App $a) // sort notifications by $[]['date'] $sort_function = function($a, $b) { - $adate = date($a['date']); - $bdate = date($b['date']); + $adate = strtotime($a['date']); + $bdate = strtotime($b['date']); + + // Unseen messages are kept at the top + // The value 31536000 means one year. This should be enough :-) + if (!$a['seen']) { + $adate += 31536000; + } + if (!$b['seen']) { + $bdate += 31536000; + } + if ($adate == $bdate) { return 0; }