]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Search/Acl.php
Some more avatar function replacements
[friendica.git] / src / Module / Search / Acl.php
index 2455e2cb834922e9021534f1ae879b968a20d00f..1e08adbe66dbd918e72dd2102b0f711882279672 100644 (file)
@@ -1,19 +1,37 @@
 <?php
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica\Module\Search;
 
 use Friendica\BaseModule;
 use Friendica\Content\Widget;
 use Friendica\Core\Hook;
-use Friendica\Core\L10n;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
 use Friendica\Core\Search;
 use Friendica\Database\DBA;
+use Friendica\DI;
 use Friendica\Model\Contact;
 use Friendica\Model\Item;
 use Friendica\Network\HTTPException;
-use Friendica\Util\Proxy as ProxyUtils;
 use Friendica\Util\Strings;
 
 /**
@@ -60,13 +78,18 @@ class Acl extends BaseModule
 
                $contacts = [];
                foreach ($r as $g) {
+                       if (empty($g['name'])) {
+                               DI::logger()->warning('Wrong result item from Search::searchGlobalContact', ['$g' => $g, '$search' => $search, '$mode' => $mode, '$page' => $page]);
+                               continue;
+                       }
+                       $contact = Contact::getByURL($g['url']);
                        $contacts[] = [
-                               'photo'   => ProxyUtils::proxifyUrl($g['photo'], false, ProxyUtils::SIZE_MICRO),
-                               'name'    => htmlspecialchars($g['name']),
-                               'nick'    => $g['addr'] ?: $g['url'],
-                               'network' => $g['network'],
+                               'photo'   => Contact::getMicro($contact, $g['photo']),
+                               'name'    => htmlspecialchars($contact['name'] ?? $g['name']),
+                               'nick'    => $contact['nick'] ?? ($g['addr'] ?: $g['url']),
+                               'network' => $contact['network'] ?? $g['network'],
                                'link'    => $g['url'],
-                               'forum'   => !empty($g['community']) ? 1 : 0,
+                               'forum'   => !empty($g['community']),
                        ];
                }
 
@@ -207,7 +230,7 @@ class Acl extends BaseModule
                $r = [];
                switch ($type) {
                        case self::TYPE_MENTION_CONTACT_GROUP:
-                               $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv`, (`prv` OR `forum`) AS `frm` FROM `contact`
+                               $r = q("SELECT `id`, `name`, `nick`, `avatar`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv`, (`prv` OR `forum`) AS `frm` FROM `contact`
                                        WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
                                        AND NOT (`network` IN ('%s', '%s'))
                                        $sql_extra2
@@ -219,7 +242,7 @@ class Acl extends BaseModule
                                break;
 
                        case self::TYPE_MENTION_CONTACT:
-                               $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv` FROM `contact`
+                               $r = q("SELECT `id`, `name`, `nick`, `avatar`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv` FROM `contact`
                                        WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
                                        AND NOT (`network` IN ('%s'))
                                        $sql_extra2
@@ -230,7 +253,7 @@ class Acl extends BaseModule
                                break;
 
                        case self::TYPE_MENTION_FORUM:
-                               $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv` FROM `contact`
+                               $r = q("SELECT `id`, `name`, `nick`, `avatar`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv` FROM `contact`
                                        WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
                                        AND NOT (`network` IN ('%s'))
                                        AND (`forum` OR `prv`)
@@ -242,7 +265,7 @@ class Acl extends BaseModule
                                break;
 
                        case self::TYPE_PRIVATE_MESSAGE:
-                               $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr` FROM `contact`
+                               $r = q("SELECT `id`, `name`, `nick`, `avatar`, `micro`, `network`, `url`, `attag`, `addr` FROM `contact`
                                        WHERE `uid` = %d AND NOT `self` AND NOT `deleted` AND NOT `blocked` AND NOT `pending` AND NOT `archive`
                                        AND `network` IN ('%s', '%s', '%s')
                                        $sql_extra2
@@ -256,7 +279,7 @@ class Acl extends BaseModule
 
                        case self::TYPE_ANY_CONTACT:
                        default:
-                               $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv` FROM `contact`
+                               $r = q("SELECT `id`, `name`, `nick`, `avatar`, `micro`, `network`, `url`, `attag`, `addr`, `forum`, `prv`, `avatar` FROM `contact`
                                        WHERE `uid` = %d AND NOT `deleted` AND NOT `pending` AND NOT `archive`
                                        $sql_extra2
                                        ORDER BY `name`",
@@ -270,7 +293,7 @@ class Acl extends BaseModule
                        foreach ($r as $g) {
                                $entry = [
                                        'type'    => 'c',
-                                       'photo'   => ProxyUtils::proxifyUrl($g['micro'], false, ProxyUtils::SIZE_MICRO),
+                                       'photo'   => Contact::getMicro($g),
                                        'name'    => htmlspecialchars($g['name']),
                                        'id'      => intval($g['id']),
                                        'network' => $g['network'],
@@ -326,12 +349,12 @@ class Acl extends BaseModule
                                        continue;
                                }
 
-                               $contact = Contact::getDetailsByURL($author);
+                               $contact = Contact::getByURL($author, false, ['micro', 'name', 'id', 'network', 'nick', 'addr', 'url', 'forum', 'avatar']);
 
                                if (count($contact) > 0) {
                                        $unknown_contacts[] = [
                                                'type'    => 'c',
-                                               'photo'   => ProxyUtils::proxifyUrl($contact['micro'], false, ProxyUtils::SIZE_MICRO),
+                                               'photo'   => Contact::getMicro($contact),
                                                'name'    => htmlspecialchars($contact['name']),
                                                'id'      => intval($contact['cid']),
                                                'network' => $contact['network'],