diff options
author | Mario <mario@mariovavti.com> | 2021-03-08 09:31:23 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2021-03-08 09:31:23 +0000 |
commit | 951e9c8c4f39dd8577834d5bc501c05d80722de9 (patch) | |
tree | 6a42c6a229c7b2b3e13bc5af77a733d054242695 /include/taxonomy.php | |
parent | f94b046333c57acde493ee5dc2511acc6baca701 (diff) | |
parent | 89415e17313578eb115c441480b6e0ddfa90afef (diff) | |
download | volse-hubzilla-5.4.tar.gz volse-hubzilla-5.4.tar.bz2 volse-hubzilla-5.4.zip |
Merge branch '5.4RC'5.4
Diffstat (limited to 'include/taxonomy.php')
-rw-r--r-- | include/taxonomy.php | 52 |
1 files changed, 27 insertions, 25 deletions
diff --git a/include/taxonomy.php b/include/taxonomy.php index e06568d19..5fa4fde3f 100644 --- a/include/taxonomy.php +++ b/include/taxonomy.php @@ -345,7 +345,7 @@ function pub_tagadelic($net,$site,$limit,$recent,$safemode,$type) { } if($recent) - $sql_extra .= " and item.created > '" . datetime_convert('UTC','UTC', 'now - ' . intval($recent) . ' days ') . "' "; + $sql_extra .= " and item.created > NOW() - INTERVAL " . db_quoteinterval(intval($recent) . ' DAY') . " "; if($safemode) { @@ -354,30 +354,32 @@ function pub_tagadelic($net,$site,$limit,$recent,$safemode,$type) { $sql_extra .= " and not term.term in ( " . stringify_array($unsafetags,true) . ") "; } } - - - $key = __FUNCTION__ . "-" . md5($site . $recent . $safemode . $limit . $type); - $content = Cache::get($key, '1 MINUTE'); - - if(! $content) { - // Fetch tags - $r = q("SELECT term, count(term) AS total FROM term LEFT JOIN item ON term.oid = item.id - where term.ttype = %d - and otype = %d and item_type = %d - $sql_extra $uids $item_normal - group by term order by total desc %s", - intval($type), - intval(TERM_OBJ_POST), - intval(ITEM_TYPE_POST), - ((intval($count)) ? "limit $count" : '') - ); - } else - $r = unserialize($content); - - if(! $r) - return array(); - else - Cache::set($key, serialize($r)); + + $key = __FUNCTION__ . "-" . md5($site . $recent . $safemode . $limit . $type); + + $content = Cache::get($key, '5 MINUTE'); + if(! $content) { + + $content = Cache::get($key, '1 MONTH'); + $arr = [ + "SELECT term, count(term) AS total FROM term LEFT JOIN item ON term.oid = item.id + WHERE term.ttype = %d + AND otype = %d + AND item_type = %d + $sql_extra $uids $item_normal + GROUP BY term ORDER BY total DESC %s", + intval($type), + intval(TERM_OBJ_POST), + intval(ITEM_TYPE_POST), + (intval($count) ? "LIMIT $count" : '') + ]; + + \Zotlabs\Daemon\Master::Summon([ 'Cache_query', $key, base64_encode(json_encode($arr)) ]); + } + + $r = unserialize($content); + if(! $r) + return []; return Zotlabs\Text\Tagadelic::calc($r); } |