]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Profile.php
BBCode - fixed syntax error
[friendica.git] / src / Model / Profile.php
index f78f42235938b47495ce8ee26c9cb2a9f52031d1..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;
@@ -20,7 +21,6 @@ use Friendica\Core\Renderer;
 use Friendica\Core\System;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
-use Friendica\Model\Contact;
 use Friendica\Protocol\Diaspora;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Network;
@@ -36,6 +36,7 @@ class Profile
         * @param integer User ID
         *
         * @return array Profile data
+        * @throws \Exception
         */
        public static function getByUID($uid)
        {
@@ -102,6 +103,8 @@ class Profile
         * @param int     $profile      int
         * @param array   $profiledata  array
         * @param boolean $show_connect Show connect link
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        public static function load(App $a, $nickname, $profile = 0, array $profiledata = [], $show_connect = true)
        {
@@ -206,10 +209,11 @@ class Profile
         * Includes all available profile data
         *
         * @brief Get all profile data of a local user
-        * @param string $nickname nick
-        * @param int    $uid      uid
-        * @param int    $profile_id  ID of the profile
+        * @param string $nickname   nick
+        * @param int    $uid        uid
+        * @param int    $profile_id ID of the profile
         * @return array
+        * @throws \Exception
         */
        public static function getByNickname($nickname, $uid = 0, $profile_id = 0)
        {
@@ -265,13 +269,15 @@ class Profile
         * because of all the conditional logic.
         *
         * @brief Formats a profile for display in the sidebar.
-        * @param array $profile
-        * @param int $block
+        * @param array   $profile
+        * @param int     $block
         * @param boolean $show_connect Show connect link
         *
         * @return string HTML sidebar module
         *
-        * @note Returns empty string if passed $profile is wrong type or not populated
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
+        * @note  Returns empty string if passed $profile is wrong type or not populated
         *
         * @hooks 'profile_sidebar_enter'
         *      array $profile - profile data
@@ -470,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(
@@ -483,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],
+                               ]);
                        }
                }
 
@@ -540,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,
@@ -740,14 +741,8 @@ class Profile
 
        public static function getAdvanced(App $a)
        {
-               $o = '';
                $uid = $a->profile['uid'];
 
-               $o .= Renderer::replaceMacros(
-                       Renderer::getMarkupTemplate('section_title.tpl'),
-                       ['$title' => L10n::t('Profile')]
-               );
-
                if ($a->profile['name']) {
                        $tpl = Renderer::getMarkupTemplate('profile_advanced.tpl');
 
@@ -1022,6 +1017,8 @@ class Profile
         * Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/include/channel.php
         *
         * @param App $a Application instance.
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        public static function zrlInit(App $a)
        {
@@ -1091,6 +1088,8 @@ class Profile
         * Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/include/zid.php
         *
         * @param string $token
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        public static function openWebAuthInit($token)
        {
@@ -1184,6 +1183,7 @@ class Profile
         * @brief Get the user ID of the page owner
         * @return int user ID
         *
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @note Returns local_user instead of user ID if "always_my_theme" is set to true
         */
        public static function getThemeUid(App $a)
@@ -1208,11 +1208,12 @@ class Profile
        }
 
        /**
-       * Stip query parameter from a string.
-       *
-       * @param string $s The input string.
-       * @return string The query parameter.
-       */
+        * Strip query parameter from a string.
+        *
+        * @param string $s The input string.
+        * @param        $param
+        * @return string The query parameter.
+        */
        public static function stripQueryParam($s, $param)
        {
                return preg_replace('/[\?&]' . $param . '=(.*?)(&|$)/ism', '$2', $s);