Trending tags are now sort by different users
authorMichael <heluecht@pirati.ca>
Thu, 11 Mar 2021 19:59:42 +0000 (19:59 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 11 Mar 2021 19:59:42 +0000 (19:59 +0000)
database.sql
src/Model/Tag.php
static/dbstructure.config.php
static/dbview.config.php

index 2e39b5a..1c83558 100644 (file)
@@ -1,6 +1,6 @@
 -- ------------------------------------------
 -- Friendica 2021.03-rc (Red Hot Poker)
--- DB_UPDATE_VERSION 1411
+-- DB_UPDATE_VERSION 1412
 -- ------------------------------------------
 
 
@@ -2231,6 +2231,7 @@ CREATE VIEW `tag-search-view` AS SELECT
        `post-user`.`gravity` AS `gravity`,
        `post-user`.`received` AS `received`,
        `post-user`.`network` AS `network`,
+       `post-user`.`author-id` AS `author-id`,
        `tag`.`name` AS `name`
        FROM `post-tag`
                        INNER JOIN `tag` ON `tag`.`id` = `post-tag`.`tid`
index c7155b5..bfdafb9 100644 (file)
@@ -547,10 +547,10 @@ class Tag
        {
                $block_sql = self::getBlockedSQL();
 
-               $tagsStmt = DBA::p("SELECT `name` AS `term`, COUNT(*) AS `score`
+               $tagsStmt = DBA::p("SELECT `name` AS `term`, COUNT(*) AS `score`, COUNT(DISTINCT(`author-id`)) as `authors`
                        FROM `tag-search-view`
                        WHERE `private` = ? AND `uid` = ? AND `received` > DATE_SUB(NOW(), INTERVAL ? HOUR) $block_sql
-                       GROUP BY `term` ORDER BY `score` DESC LIMIT ?",
+                       GROUP BY `term` ORDER BY `authors` DESC, `score` DESC LIMIT ?",
                        Item::PUBLIC, 0, $period, $limit);
 
                if (DBA::isResult($tagsStmt)) {
@@ -592,10 +592,10 @@ class Tag
        {
                $block_sql = self::getBlockedSQL();
 
-               $tagsStmt = DBA::p("SELECT `name` AS `term`, COUNT(*) AS `score`
+               $tagsStmt = DBA::p("SELECT `name` AS `term`, COUNT(*) AS `score`, COUNT(DISTINCT(`author-id`)) as `authors`
                        FROM `tag-search-view`
                        WHERE `private` = ? AND `wall` AND `origin` AND `received` > DATE_SUB(NOW(), INTERVAL ? HOUR) $block_sql
-                       GROUP BY `term` ORDER BY `score` DESC LIMIT ?",
+                       GROUP BY `term` ORDER BY `authors` DESC, `score` DESC LIMIT ?",
                        Item::PUBLIC, $period, $limit);
 
                if (DBA::isResult($tagsStmt)) {
index 602e587..5cbd7cd 100644 (file)
@@ -55,7 +55,7 @@
 use Friendica\Database\DBA;
 
 if (!defined('DB_UPDATE_VERSION')) {
-       define('DB_UPDATE_VERSION', 1411);
+       define('DB_UPDATE_VERSION', 1412);
 }
 
 return [
index 17cadab..791665f 100644 (file)
                        "gravity" => ["post-user", "gravity"],
                        "received" => ["post-user", "received"],
                        "network" => ["post-user", "network"],
+                       "author-id" => ["post-user", "author-id"],
                        "name" => ["tag", "name"],
                ],
                "query" => "FROM `post-tag`