]> git.mxchange.org Git - friendica.git/commitdiff
Caching the events.
authorMichael <heluecht@pirati.ca>
Fri, 13 Jan 2017 13:04:37 +0000 (13:04 +0000)
committerMichael <heluecht@pirati.ca>
Fri, 13 Jan 2017 13:04:37 +0000 (13:04 +0000)
mod/ping.php

index cde03969f46b394e2091f0723da6168e9ff811ca..8b2090cb69d340472c9bb854d807772df879f638 100644 (file)
@@ -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) {