]> git.mxchange.org Git - friendica.git/blobdiff - src/Content/Widget/VCard.php
Merge pull request #12951 from jsoref/spelling
[friendica.git] / src / Content / Widget / VCard.php
index 81a1d0cf7acc98ca4a26a90c3a32b4486f096d00..e462ab0aaa466c0868700c42812a0bd53a7eb9e0 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -44,7 +44,7 @@ class VCard
         * @template widget/vcard.tpl
         * @return string
         */
-       public static function getHTML(array $contact)
+       public static function getHTML(array $contact): string
        {
                if (!isset($contact['network']) || !isset($contact['id'])) {
                        Logger::warning('Incomplete contact', ['contact' => $contact ?? [], 'callstack' => System::callstack(20)]);
@@ -62,24 +62,30 @@ class VCard
                $unfollow_link    = '';
                $wallmessage_link = '';
 
-               if (local_user()) {
+               $photo   = Contact::getPhoto($contact);
+
+               if (DI::userSession()->getLocalUserId()) {
                        if ($contact['uid']) {
                                $id      = $contact['id'];
                                $rel     = $contact['rel'];
                                $pending = $contact['pending'];
                        } else {
-                               $pcontact = Contact::selectFirst(['id', 'rel', 'pending'], ['uid' => local_user(), 'uri-id' => $contact['uri-id']]);
+                               $pcontact = Contact::selectFirst([], ['uid' => DI::userSession()->getLocalUserId(), 'uri-id' => $contact['uri-id'], 'deleted' => false]);
 
                                $id      = $pcontact['id'] ?? 0;
                                $rel     = $pcontact['rel'] ?? Contact::NOTHING;
                                $pending = $pcontact['pending'] ?? false;
+
+                               if (!empty($pcontact) && in_array($pcontact['network'], [Protocol::MAIL, Protocol::FEED])) {
+                                       $photo = Contact::getPhoto($pcontact);
+                               }
                        }
 
                        if (empty($contact['self']) && Protocol::supportsFollow($contact['network'])) {
                                if (in_array($rel, [Contact::SHARING, Contact::FRIEND])) {
-                                       $unfollow_link = 'unfollow?url=' . urlencode($contact['url']) . '&auto=1';
+                                       $unfollow_link = 'contact/unfollow?url=' . urlencode($contact['url']) . '&auto=1';
                                } elseif (!$pending) {
-                                       $follow_link = 'follow?url=' . urlencode($contact['url']) . '&auto=1';
+                                       $follow_link = 'contact/follow?url=' . urlencode($contact['url']) . '&auto=1';
                                }
                        }
 
@@ -90,7 +96,7 @@ class VCard
 
                return Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/vcard.tpl'), [
                        '$contact'          => $contact,
-                       '$photo'            => Contact::getPhoto($contact),
+                       '$photo'            => $photo,
                        '$url'              => Contact::magicLinkByContact($contact, $contact['url']),
                        '$about'            => BBCode::convertForUriId($contact['uri-id'] ?? 0, $contact['about'] ?? ''),
                        '$xmpp'             => DI::l10n()->t('XMPP:'),
@@ -99,7 +105,7 @@ class VCard
                        '$network_link'     => $network_link,
                        '$network_avatar'   => $network_avatar,
                        '$network'          => DI::l10n()->t('Network:'),
-                       '$account_type'     => Contact::getAccountType($contact),
+                       '$account_type'     => Contact::getAccountType($contact['contact-type']),
                        '$follow'           => DI::l10n()->t('Follow'),
                        '$follow_link'      => $follow_link,
                        '$unfollow'         => DI::l10n()->t('Unfollow'),