use Friendica\Core\System;
use Friendica\DI;
use Friendica\Model\Contact;
+use Friendica\Util\Network;
use Friendica\Util\Strings;
/**
Logger::warning('Incomplete contact', ['contact' => $contact ?? [], 'callstack' => System::callstack(20)]);
}
+ if (!Network::isValidHttpUrl($contact['url']) && Network::isValidHttpUrl($contact['alias'])) {
+ $contact_url = $contact['alias'];
+ } else {
+ $contact_url = $contact['url'];
+ }
+
if ($contact['network'] != '') {
- $network_link = Strings::formatNetworkName($contact['network'], $contact['url']);
- $network_avatar = ContactSelector::networkToIcon($contact['network'], $contact['url']);
+ $network_link = Strings::formatNetworkName($contact['network'], $contact_url);
+ $network_avatar = ContactSelector::networkToIcon($contact['network'], $contact_url);
} else {
$network_link = '';
$network_avatar = '';
if (empty($contact['self']) && Protocol::supportsFollow($contact['network'])) {
if (in_array($rel, [Contact::SHARING, Contact::FRIEND])) {
- $unfollow_link = 'contact/unfollow?url=' . urlencode($contact['url']) . '&auto=1';
+ $unfollow_link = 'contact/unfollow?url=' . urlencode($contact_url) . '&auto=1';
} elseif (!$pending) {
- $follow_link = 'contact/follow?url=' . urlencode($contact['url']) . '&auto=1';
+ $follow_link = 'contact/follow?url=' . urlencode($contact_url) . '&auto=1';
}
}
return Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/vcard.tpl'), [
'$contact' => $contact,
'$photo' => $photo,
- '$url' => Contact::magicLinkByContact($contact, $contact['url']),
+ '$url' => Contact::magicLinkByContact($contact, $contact_url),
'$about' => BBCode::convertForUriId($contact['uri-id'] ?? 0, $contact['about'] ?? ''),
'$xmpp' => DI::l10n()->t('XMPP:'),
'$matrix' => DI::l10n()->t('Matrix:'),