]> git.mxchange.org Git - friendica.git/commitdiff
Update HTML::contactBlock and Profile::load with new ContactBlock widget
authorHypolite Petovan <hypolite@mrpetovan.com>
Sun, 6 Jan 2019 03:05:24 +0000 (22:05 -0500)
committerHypolite Petovan <hypolite@mrpetovan.com>
Mon, 21 Jan 2019 15:55:36 +0000 (10:55 -0500)
src/Content/Text/HTML.php
src/Model/Profile.php

index 8c32498a3fd7785945b74503da238c26a9f830ed..7976b02e6ba0c4dc19e42962954ccbae96252a94 100644 (file)
@@ -7,6 +7,7 @@ namespace Friendica\Content\Text;
 
 use DOMDocument;
 use DOMXPath;
+use Friendica\Content\Widget\ContactBlock;
 use Friendica\Core\Hook;
 use Friendica\Core\L10n;
 use Friendica\Core\Config;
@@ -807,90 +808,17 @@ class HTML
        /**
         * Get html for contact block.
         *
-        * @template contact_block.tpl
-        * @hook     contact_block_end (contacts=>array, output=>string)
+        * @deprecated since version 2019.03
+        * @see ContactBlock::getHTML()
         * @return string
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
        public static function contactBlock()
        {
-               $o = '';
                $a = \get_app();
 
-               $shown = PConfig::get($a->profile['uid'], 'system', 'display_friend_count', 24);
-               if ($shown == 0) {
-                       return;
-               }
-
-               if (!is_array($a->profile) || $a->profile['hide-friends']) {
-                       return $o;
-               }
-
-               $r = q("SELECT COUNT(*) AS `total` FROM `contact`
-                               WHERE `uid` = %d AND NOT `self` AND NOT `blocked`
-                                       AND NOT `pending` AND NOT `hidden` AND NOT `archive`
-                                       AND `network` IN ('%s', '%s', '%s')",
-                       intval($a->profile['uid']),
-                       DBA::escape(Protocol::DFRN),
-                       DBA::escape(Protocol::OSTATUS),
-                       DBA::escape(Protocol::DIASPORA)
-               );
-
-               if (DBA::isResult($r)) {
-                       $total = intval($r[0]['total']);
-               }
-
-               if (!$total) {
-                       $contacts = L10n::t('No contacts');
-                       $micropro = null;
-               } else {
-                       // Splitting the query in two parts makes it much faster
-                       $r = q("SELECT `id` FROM `contact`
-                                       WHERE `uid` = %d AND NOT `self` AND NOT `blocked`
-                                               AND NOT `pending` AND NOT `hidden` AND NOT `archive`
-                                               AND `network` IN ('%s', '%s', '%s')
-                                       ORDER BY RAND() LIMIT %d",
-                               intval($a->profile['uid']),
-                               DBA::escape(Protocol::DFRN),
-                               DBA::escape(Protocol::OSTATUS),
-                               DBA::escape(Protocol::DIASPORA),
-                               intval($shown)
-                       );
-
-                       if (DBA::isResult($r)) {
-                               $contacts = [];
-                               foreach ($r as $contact) {
-                                       $contacts[] = $contact["id"];
-                               }
-
-                               $r = q("SELECT `id`, `uid`, `addr`, `url`, `name`, `thumb`, `network` FROM `contact` WHERE `id` IN (%s)",
-                                       DBA::escape(implode(",", $contacts))
-                               );
-
-                               if (DBA::isResult($r)) {
-                                       $contacts = L10n::tt('%d Contact', '%d Contacts', $total);
-                                       $micropro = [];
-                                       foreach ($r as $rr) {
-                                               $micropro[] = self::micropro($rr, true, 'mpfriend');
-                                       }
-                               }
-                       }
-               }
-
-               $tpl = Renderer::getMarkupTemplate('contact_block.tpl');
-               $o = Renderer::replaceMacros($tpl, [
-                       '$contacts' => $contacts,
-                       '$nickname' => $a->profile['nickname'],
-                       '$viewcontacts' => L10n::t('View Contacts'),
-                       '$micropro' => $micropro,
-               ]);
-
-               $arr = ['contacts' => $r, 'output' => $o];
-
-               Hook::callAll('contact_block_end', $arr);
-
-               return $o;
+               return ContactBlock::getHTML($a->profile);
        }
 
        /**
index b5e54474b819e3c9daca9d7c8f9f178052a80d7b..aacceedb3a9f8876e85850c11f510b4d315f1b68 100644 (file)
@@ -9,6 +9,7 @@ use Friendica\Content\Feature;
 use Friendica\Content\ForumManager;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
+use Friendica\Content\Widget\ContactBlock;
 use Friendica\Core\Cache;
 use Friendica\Core\Config;
 use Friendica\Core\Hook;
@@ -475,9 +476,9 @@ class Profile
 
                $contact_block = '';
                $updated = '';
-               $contacts = 0;
+               $contact_count = 0;
                if (!$block) {
-                       $contact_block = HTML::contactBlock();
+                       $contact_block = ContactBlock::getHTML($a->profile);
 
                        if (is_array($a->profile) && !$a->profile['hide-friends']) {
                                $r = q(
@@ -488,20 +489,15 @@ class Profile
                                        $updated = date('c', strtotime($r[0]['updated']));
                                }
 
-                               $r = q(
-                                       "SELECT COUNT(*) AS `total` FROM `contact`
-                                       WHERE `uid` = %d
-                                               AND NOT `self` AND NOT `blocked` AND NOT `pending`
-                                               AND NOT `hidden` AND NOT `archive`
-                                               AND `network` IN ('%s', '%s', '%s', '')",
-                                       intval($profile['uid']),
-                                       DBA::escape(Protocol::DFRN),
-                                       DBA::escape(Protocol::DIASPORA),
-                                       DBA::escape(Protocol::OSTATUS)
-                               );
-                               if (DBA::isResult($r)) {
-                                       $contacts = intval($r[0]['total']);
-                               }
+                               $contact_count = DBA::count('contact', [
+                                       'uid' => $profile['uid'],
+                                       'self' => false,
+                                       'blocked' => false,
+                                       'pending' => false,
+                                       'hidden' => false,
+                                       'archive' => false,
+                                       'network' => [Protocol::DFRN, Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA],
+                               ]);
                        }
                }
 
@@ -545,7 +541,7 @@ class Profile
                        '$homepage' => $homepage,
                        '$about' => $about,
                        '$network' => L10n::t('Network:'),
-                       '$contacts' => $contacts,
+                       '$contacts' => $contact_count,
                        '$updated' => $updated,
                        '$diaspora' => $diaspora,
                        '$contact_block' => $contact_block,