From ff80e46eb05554417d5fdef9ff5b14df1f10eb4a Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 17 May 2023 19:53:22 -0400 Subject: [PATCH] Fix magic links in contact photo menu - They were using a URL format obsolete for years --- src/Content/Item.php | 12 +++++------- src/Model/Contact.php | 13 ++++--------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/Content/Item.php b/src/Content/Item.php index cb805d5db5..172729f268 100644 --- a/src/Content/Item.php +++ b/src/Content/Item.php @@ -378,7 +378,11 @@ class Item 'url' => $item['author-link'], ]; $profile_link = Contact::magicLinkByContact($author, $item['author-link']); - $sparkle = (strpos($profile_link, 'contact/redir/') === 0); + if (strpos($profile_link, 'contact/redir/') === 0) { + $status_link = $profile_link . '?' . http_build_query(['url' => $item['author-link'] . '/status']); + $photos_link = $profile_link . '?' . http_build_query(['url' => $item['author-link'] . '/photos']); + $profile_link = $profile_link . '?' . http_build_query(['url' => $item['author-link'] . '/profile']); + } $cid = 0; $pcid = $item['author-id']; @@ -392,12 +396,6 @@ class Item $rel = $contact['rel']; } - if ($sparkle) { - $status_link = $profile_link . '/status'; - $photos_link = $profile_link . '/photos'; - $profile_link = $profile_link . '/profile'; - } - if (!empty($pcid)) { $contact_url = 'contact/' . $pcid; $posts_link = $contact_url . '/posts'; diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 99edf3fe2b..134bbc1e5d 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -1152,10 +1152,11 @@ class Contact $status_link = ''; $photos_link = ''; - $sparkle = false; if (($contact['network'] === Protocol::DFRN) && !$contact['self'] && empty($contact['pending'])) { - $sparkle = true; $profile_link = 'contact/redir/' . $contact['id']; + $status_link = $profile_link . '?' . http_build_query(['url' => $contact['url'] . '/status']); + $photos_link = $profile_link . '?' . http_build_query(['url' => $contact['url'] . '/photos']); + $profile_link = $profile_link . '?' . http_build_query(['url' => $contact['url'] . '/profile']); } else { $profile_link = $contact['url']; } @@ -1164,12 +1165,6 @@ class Contact $profile_link = ''; } - if ($sparkle) { - $status_link = $profile_link . '/status'; - $photos_link = $profile_link . '/photos'; - $profile_link = $profile_link . '/profile'; - } - if (self::canReceivePrivateMessages($contact) && empty($contact['pending'])) { $pm_url = 'message/new/' . $contact['id']; } @@ -3444,7 +3439,7 @@ class Contact */ public static function magicLinkByContact(array $contact, string $url = ''): string { - $destination = $url ?: $contact['url']; // Equivalent to ($url != '') ? $url : $contact['url']; + $destination = $url ?: $contact['url']; if (!DI::userSession()->isAuthenticated()) { return $destination;