]> git.mxchange.org Git - friendica.git/blobdiff - src/Content/Widget/TagCloud.php
Merge pull request #8036 from nupplaphil/task/redundant_system_call
[friendica.git] / src / Content / Widget / TagCloud.php
index 9160dd579f00f36a354a609aa394a8443b898f2b..15ed41a35cfa73196710445c800572cfbb9ef4dc 100644 (file)
@@ -7,12 +7,10 @@
 namespace Friendica\Content\Widget;
 
 use Friendica\Core\L10n;
-use Friendica\Core\System;
-use Friendica\Database\dba;
-use Friendica\Database\DBM;
-
-require_once 'include/dba.php';
-require_once 'include/security.php';
+use Friendica\Core\Renderer;
+use Friendica\Database\DBA;
+use Friendica\DI;
+use Friendica\Model\Item;
 
 /**
  * TagCloud widget
@@ -25,22 +23,24 @@ class TagCloud
         * Construct a tag/term cloud block for an user.
         *
         * @brief Construct a tag/term cloud block for an user.
-        * @param int $uid      The user ID.
-        * @param int $count    Max number of displayed tags/terms.
-        * @param int $owner_id The contact ID of the owner of the tagged items.
-        * @param string $flags Special item flags.
-        * @param int $type     The tag/term type.
+        * @param int    $uid      The user ID.
+        * @param int    $count    Max number of displayed tags/terms.
+        * @param int    $owner_id The contact ID of the owner of the tagged items.
+        * @param string $flags    Special item flags.
+        * @param int    $type     The tag/term type.
         *
         * @return string       HTML formatted output.
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
        public static function getHTML($uid, $count = 0, $owner_id = 0, $flags = '', $type = TERM_HASHTAG)
        {
                $o = '';
                $r = self::tagadelic($uid, $count, $owner_id, $flags, $type);
                if (count($r)) {
-                       $contact = dba::selectFirst('contact', ['url'], ['uid' => $uid, 'self' => true]);
-                       $url = System::removedBaseUrl($contact['url']);
+                       $contact = DBA::selectFirst('contact', ['url'], ['uid' => $uid, 'self' => true]);
+                       $url = DI::baseUrl()->remove($contact['url']);
 
+                       $tags = [];
                        foreach ($r as $rr) {
                                $tag['level'] = $rr[2];
                                $tag['url'] = $url . '?tag=' . urlencode($rr[0]);
@@ -49,8 +49,8 @@ class TagCloud
                                $tags[] = $tag;
                        }
 
-                       $tpl = get_markup_template('tagblock_widget.tpl');
-                       $o = replace_macros($tpl, [
+                       $tpl = Renderer::getMarkupTemplate('widget/tagcloud.tpl');
+                       $o = Renderer::replaceMacros($tpl, [
                                '$title' => L10n::t('Tags'),
                                '$tags' => $tags
                        ]);
@@ -64,17 +64,18 @@ class TagCloud
         *
         * @brief Get alphabetical sorted array of used tags/terms of an user including
         * a weighting by frequency of use.
-        * @param int $uid      The user ID.
-        * @param int $count    Max number of displayed tags/terms.
-        * @param int $owner_id The contact id of the owner of the tagged items.
-        * @param string $flags Special item flags.
-        * @param int $type     The tag/term type.
+        * @param int    $uid      The user ID.
+        * @param int    $count    Max number of displayed tags/terms.
+        * @param int    $owner_id The contact id of the owner of the tagged items.
+        * @param string $flags    Special item flags.
+        * @param int    $type     The tag/term type.
         *
-        * @return arr          Alphabetical sorted array of used tags of an user.
+        * @return array        Alphabetical sorted array of used tags of an user.
+        * @throws \Exception
         */
        private static function tagadelic($uid, $count = 0, $owner_id = 0, $flags = '', $type = TERM_HASHTAG)
        {
-               $sql_options = item_permissions_sql($uid);
+               $sql_options = Item::getPermissionsSQLByUserId($uid);
                $limit = $count ? sprintf('LIMIT %d', intval($count)) : '';
 
                if ($flags) {
@@ -88,7 +89,7 @@ class TagCloud
                }
 
                // Fetch tags
-               $r = dba::p("SELECT `term`, COUNT(`term`) AS `total` FROM `term`
+               $tag_stmt = DBA::p("SELECT `term`, COUNT(`term`) AS `total` FROM `term`
                        LEFT JOIN `item` ON `term`.`oid` = `item`.`id`
                        WHERE `term`.`uid` = ? AND `term`.`type` = ?
                        AND `term`.`otype` = ?
@@ -99,10 +100,12 @@ class TagCloud
                        $type,
                        TERM_OBJ_POST
                );
-               if (!DBM::is_result($r)) {
+               if (!DBA::isResult($tag_stmt)) {
                        return [];
                }
 
+               $r = DBA::toArray($tag_stmt);
+
                return self::tagCalc($r);
        }
 
@@ -113,7 +116,7 @@ class TagCloud
         * @param array $arr Array of tags/terms with tag/term name and total count of use.
         * @return array     Alphabetical sorted array of used tags/terms of an user.
         */
-       private static function tagCalc($arr)
+       private static function tagCalc(array $arr)
        {
                $tags = [];
                $min = 1e9;
@@ -147,8 +150,8 @@ class TagCloud
         * Compare function to sort tags/terms alphabetically.
         *
         * @brief Compare function to sort tags/terms alphabetically.
-        * @param type $a
-        * @param type $b
+        * @param string $a
+        * @param string $b
         *
         * @return int
         */