From 528d175baa803035a8cc44ce7bda729911f1fd85 Mon Sep 17 00:00:00 2001 From: rabuzarus Date: Fri, 18 Jan 2019 17:50:21 +0100 Subject: [PATCH 1/2] Bugfix - provide magic links for remote user in magicLink() --- src/Content/Text/HTML.php | 2 +- src/Model/Contact.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Content/Text/HTML.php b/src/Content/Text/HTML.php index f7ac040ee..a3ef8d81f 100644 --- a/src/Content/Text/HTML.php +++ b/src/Content/Text/HTML.php @@ -889,7 +889,7 @@ class HTML } /** - * @brief Format contacts as picture links or as texxt links + * @brief Format contacts as picture links or as text links * * @param array $contact Array with contacts which contains an array with * int 'id' => The ID of the contact diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 408a1ade4..52bcc3b54 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2089,7 +2089,7 @@ class Contact extends BaseObject */ public static function magicLink($contact_url, $url = '') { - if (!local_user() && remote_user()) { + if (!local_user() && !remote_user()) { return $url ?: $contact_url; // Equivalent to: ($url != '') ? $url : $contact_url; } From 7b78ba392952a00aff12ea1c9a312eb60388c829 Mon Sep 17 00:00:00 2001 From: rabuzarus Date: Sat, 19 Jan 2019 15:12:46 +0100 Subject: [PATCH 2/2] Bugfix - use magicLinks also for common/all friends and the directory --- mod/allfriends.php | 2 +- mod/common.php | 2 +- mod/directory.php | 4 ++-- src/Content/Widget.php | 32 ++++++++++++++++++++++++-------- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/mod/allfriends.php b/mod/allfriends.php index ceb32e6c1..5234ee8c6 100644 --- a/mod/allfriends.php +++ b/mod/allfriends.php @@ -77,7 +77,7 @@ function allfriends_content(App $a) } $entry = [ - 'url' => $rr['url'], + 'url' => Model\Contact::magicLink($rr['url']), 'itemurl' => defaults($contact_details, 'addr', $rr['url']), 'name' => $contact_details['name'], 'thumb' => ProxyUtils::proxifyUrl($contact_details['thumb'], false, ProxyUtils::SIZE_THUMB), diff --git a/mod/common.php b/mod/common.php index 1c4032f11..6b6090e19 100644 --- a/mod/common.php +++ b/mod/common.php @@ -117,7 +117,7 @@ function common_content(App $a) $photo_menu = Model\Contact::photoMenu($common_friend); $entry = [ - 'url' => $common_friend['url'], + 'url' => Model\Contact::magicLink($common_friend['url']), 'itemurl' => defaults($contact_details, 'addr', $common_friend['url']), 'name' => $contact_details['name'], 'thumb' => ProxyUtils::proxifyUrl($contact_details['thumb'], false, ProxyUtils::SIZE_THUMB), diff --git a/mod/directory.php b/mod/directory.php index 3fd0aa848..fa5ce73d4 100644 --- a/mod/directory.php +++ b/mod/directory.php @@ -116,7 +116,7 @@ function directory_content(App $a) $itemurl = (($rr['addr'] != "") ? $rr['addr'] : $rr['profile_url']); - $profile_link = 'profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']); + $profile_link = $rr['profile_url']; $pdesc = (($rr['pdesc']) ? $rr['pdesc'] . '
' : ''); @@ -169,7 +169,7 @@ function directory_content(App $a) $entry = [ 'id' => $rr['id'], - 'url' => $profile_link, + 'url' => Contact::magicLInk($profile_link), 'itemurl' => $itemurl, 'thumb' => ProxyUtils::proxifyUrl($rr[$photo], false, ProxyUtils::SIZE_THUMB), 'img_hover' => $rr['name'], diff --git a/src/Content/Widget.php b/src/Content/Widget.php index 35e8913e0..adf6545b4 100644 --- a/src/Content/Widget.php +++ b/src/Content/Widget.php @@ -18,6 +18,7 @@ use Friendica\Model\Contact; use Friendica\Model\FileTag; use Friendica\Model\GContact; use Friendica\Model\Profile; +use Friendica\Util\Proxy as ProxyUtils; use Friendica\Util\Strings; use Friendica\Util\XML; @@ -296,15 +297,30 @@ class Widget $r = GContact::commonFriendsZcid($profile_uid, $zcid, 0, 5, true); } - return Renderer::replaceMacros(Renderer::getMarkupTemplate('remote_friends_common.tpl'), array( - '$desc' => L10n::tt("%d contact in common", "%d contacts in common", $t), - '$base' => System::baseUrl(), - '$uid' => $profile_uid, - '$cid' => (($cid) ? $cid : '0'), + if (!DBA::isResult($r)) { + return; + } + + $entries = []; + foreach ($r as $rr) { + $entry = [ + 'url' => Contact::magicLink($rr['url']), + 'name' => $rr['name'], + 'photo' => ProxyUtils::proxifyUrl($rr['photo'], false, ProxyUtils::SIZE_THUMB), + ]; + $entries[] = $entry; + } + + $tpl = Renderer::getMarkupTemplate('remote_friends_common.tpl'); + return Renderer::replaceMacros($tpl, [ + '$desc' => L10n::tt("%d contact in common", "%d contacts in common", $t), + '$base' => System::baseUrl(), + '$uid' => $profile_uid, + '$cid' => (($cid) ? $cid : '0'), '$linkmore' => (($t > 5) ? 'true' : ''), - '$more' => L10n::t('show more'), - '$items' => $r) - ); + '$more' => L10n::t('show more'), + '$items' => $entries + ]); } /**