diff --git a/mod/ping.php b/mod/ping.php index cde03969f4..8b2090cb69 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -5,6 +5,7 @@ require_once('include/ForumManager.php'); require_once('include/group.php'); require_once('mod/proxy.php'); require_once('include/xml.php'); +require_once('include/cache.php'); /** * @brief Outputs the counts and the lists of various notifications @@ -195,15 +196,21 @@ function ping_init(App $a) } } - $ev = qu("SELECT count(`event`.`id`) AS total, 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')) - ); + $cachekey = "ping:events:".local_user(); + $ev = Cache::get($cachekey); + if (is_null($ev)) { + $ev = qu("SELECT count(`event`.`id`) AS total, 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); + $all_events = intval($ev[0]['total']); if ($all_events) {