]> git.mxchange.org Git - friendica.git/blobdiff - src/Content/Widget/TagCloud.php
Merge pull request #12283 from annando/api-tags
[friendica.git] / src / Content / Widget / TagCloud.php
index c582c3eb617f083a2fed0da03878757c96052c1d..d2c9d94534a9611df4b7a2e62d74940250e27b18 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2022, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -46,7 +46,7 @@ class TagCloud
         * @return string       HTML formatted output.
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function getHTML($uid, $count = 0, $owner_id = 0, $flags = '', $type = Tag::HASHTAG)
+       public static function getHTML(int $uid, int $count = 0, int $owner_id = 0, string $flags = '', int $type = Tag::HASHTAG): string
        {
                $o = '';
                $r = self::tagadelic($uid, $count, $owner_id, $flags, $type);
@@ -56,17 +56,17 @@ class TagCloud
 
                        $tags = [];
                        foreach ($r as $rr) {
-                               $tag['level'] = $rr[2];
-                               $tag['url'] = $url . '?tag=' . urlencode($rr[0]);
-                               $tag['name'] = $rr[0];
-
-                               $tags[] = $tag;
+                               $tags[] = [
+                                       'level' => $rr[2],
+                                       'url'   => $url . '?tag=' . urlencode($rr[0]),
+                                       'name'  => $rr[0],
+                               ];
                        }
 
                        $tpl = Renderer::getMarkupTemplate('widget/tagcloud.tpl');
                        $o = Renderer::replaceMacros($tpl, [
                                '$title' => DI::l10n()->t('Tags'),
-                               '$tags' => $tags
+                               '$tags'  => $tags
                        ]);
                }
                return $o;
@@ -87,24 +87,24 @@ class TagCloud
         */
        private static function tagadelic($uid, $count = 0, $owner_id = 0, $flags = '', $type = Tag::HASHTAG)
        {
-               $sql_options = Item::getPermissionsSQLByUserId($uid, 'post-view');
+               $sql_options = Item::getPermissionsSQLByUserId($uid, 'post-user-view');
                $limit = $count ? sprintf('LIMIT %d', intval($count)) : '';
 
                if ($flags) {
                        if ($flags === 'wall') {
-                               $sql_options .= ' AND `post-view`.`wall` ';
+                               $sql_options .= ' AND `post-user-view`.`wall` ';
                        }
                }
 
                if ($owner_id) {
-                       $sql_options .= ' AND `post-view`.`owner-id` = ' . intval($owner_id) . ' ';
+                       $sql_options .= ' AND `post-user-view`.`owner-id` = ' . intval($owner_id) . ' ';
                }
 
                // Fetch tags
                $tag_stmt = DBA::p("SELECT `name`, COUNT(`name`) AS `total` FROM `tag-search-view`
-                       LEFT JOIN `post-view` ON `tag-search-view`.`uri-id` = `post-view`.`uri-id`
+                       LEFT JOIN `post-user-view` ON `tag-search-view`.`uri-id` = `post-user-view`.`uri-id` AND `tag-search-view`.`uid` = `post-user-view`.`uid`
                        WHERE `tag-search-view`.`uid` = ?
-                       AND `post-view`.`visible` AND NOT `post-view`.`deleted` AND NOT `post-view`.`moderated`
+                       AND `post-user-view`.`visible` AND NOT `post-user-view`.`deleted`
                        $sql_options
                        GROUP BY `name` ORDER BY `total` DESC $limit",
                        $uid
@@ -127,8 +127,8 @@ class TagCloud
        private static function tagCalc(array $arr)
        {
                $tags = [];
-               $min = 1e9;
-               $max = -1e9;
+               $min = 1000000000.0;
+               $max = -1000000000.0;
                $x = 0;
 
                if (!$arr) {
@@ -145,7 +145,7 @@ class TagCloud
                }
 
                usort($tags, 'self::tagsSort');
-               $range = max(.01, $max - $min) * 1.0001;
+               $range = max(0.01, $max - $min) * 1.0001;
 
                for ($x = 0; $x < count($tags); $x ++) {
                        $tags[$x][2] = 1 + floor(9 * ($tags[$x][1] - $min) / $range);