X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FTag.php;h=f947b9f898429744b2f427e3dd1fa0fd4619499f;hb=deb6b7a7c3d62a42e2f71a3adf7ba3689e741f5a;hp=0d6c9cfb5106b33a72599f3d0e22f331716b9c12;hpb=3b90dc028974767400376f327b2522d0b2b7a8d3;p=friendica.git diff --git a/src/Model/Tag.php b/src/Model/Tag.php index 0d6c9cfb51..f947b9f898 100644 --- a/src/Model/Tag.php +++ b/src/Model/Tag.php @@ -462,11 +462,17 @@ class Tag * @param integer $uid * @param integer $start * @param integer $limit + * @param integer $last_uriid * @return array with URI-ID */ - public static function getURIIdListByTag(string $search, int $uid = 0, int $start = 0, int $limit = 100) + public static function getURIIdListByTag(string $search, int $uid = 0, int $start = 0, int $limit = 100, int $last_uriid = 0) { $condition = ["`name` = ? AND (NOT `private` OR (`private` AND `uid` = ?))", $search, $uid]; + + if (!empty($last_uriid)) { + $condition = DBA::mergeConditions($condition, ["`uri-id` < ?", $last_uriid]); + } + $params = [ 'order' => ['uri-id' => true], 'group_by' => ['uri-id'], @@ -514,13 +520,13 @@ class Tag { $tagsStmt = DBA::p("SELECT `name` AS `term`, COUNT(*) AS `score` FROM `tag-search-view` - WHERE `private` = ? AND `received` > DATE_SUB(NOW(), INTERVAL ? HOUR) + WHERE `private` = ? AND `uid` = ? AND `received` > DATE_SUB(NOW(), INTERVAL ? HOUR) GROUP BY `term` ORDER BY `score` DESC LIMIT ?", - Item::PUBLIC, $period, $limit); + Item::PUBLIC, 0, $period, $limit); if (DBA::isResult($tagsStmt)) { $tags = DBA::toArray($tagsStmt); - DI::cache()->set('global_trending_tags-' . $period . '-' . $limit, $tags, Duration::HOUR); + DI::cache()->set('global_trending_tags-' . $period . '-' . $limit, $tags, Duration::DAY); return $tags; } @@ -537,7 +543,7 @@ class Tag */ public static function getLocalTrendingHashtags(int $period, $limit = 10) { - $tags = DI::cache()->get('local_trending_tags'); + $tags = DI::cache()->get('local_trending_tags-' . $period . '-' . $limit); if (!empty($tags)) { return $tags; } else { @@ -563,7 +569,7 @@ class Tag if (DBA::isResult($tagsStmt)) { $tags = DBA::toArray($tagsStmt); - DI::cache()->set('local_trending_tags', $tags, Duration::HOUR); + DI::cache()->set('local_trending_tags-' . $period . '-' . $limit, $tags, Duration::DAY); return $tags; }