From 050bc673aacd7d1ab4e78335cfb4d8341f0daea0 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 23 May 2021 10:39:11 +0000 Subject: [PATCH] Issue 10264: Remote comments for visitors --- mod/dfrn_poll.php | 3 +++ src/App.php | 6 ++++++ src/Object/Post.php | 6 +++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php index 54a996f651..f0a8e855e9 100644 --- a/mod/dfrn_poll.php +++ b/mod/dfrn_poll.php @@ -128,6 +128,7 @@ function dfrn_poll_init(App $a) $_SESSION['visitor_handle'] = $r[0]['addr']; $_SESSION['visitor_visiting'] = $r[0]['uid']; $_SESSION['my_url'] = $r[0]['url']; + $_SESSION['remote_comment'] = $r[0]['subscribe']; Session::setVisitorsContacts(); @@ -497,8 +498,10 @@ function dfrn_poll_content(App $a) $_SESSION['authenticated'] = 1; $_SESSION['visitor_id'] = $r[0]['id']; $_SESSION['visitor_home'] = $r[0]['url']; + $_SESSION['visitor_handle'] = $r[0]['addr']; $_SESSION['visitor_visiting'] = $r[0]['uid']; $_SESSION['my_url'] = $r[0]['url']; + $_SESSION['remote_comment'] = $r[0]['subscribe']; Session::setVisitorsContacts(); diff --git a/src/App.php b/src/App.php index 772d273c52..5c74b1b539 100644 --- a/src/App.php +++ b/src/App.php @@ -34,6 +34,7 @@ use Friendica\Core\L10n; use Friendica\Core\System; use Friendica\Core\Theme; use Friendica\Database\Database; +use Friendica\Model\Contact; use Friendica\Model\Profile; use Friendica\Module\Special\HTTPException as ModuleHTTPException; use Friendica\Network\HTTPException; @@ -464,6 +465,11 @@ class App if (Core\Session::get('visitor_home') != $_GET["zrl"]) { Core\Session::set('my_url', $_GET['zrl']); Core\Session::set('authenticated', 0); + + $remote_contact = Contact::getByURL($_GET['zrl'], false, ['subscribe']); + if (!empty($remote_contact['subscribe'])) { + $_SESSION['remote_comment'] = $remote_contact['subscribe']; + } } Model\Profile::zrlInit($this); diff --git a/src/Object/Post.php b/src/Object/Post.php index 1f38fa556d..93abf351f9 100644 --- a/src/Object/Post.php +++ b/src/Object/Post.php @@ -401,9 +401,13 @@ class Post } // Fetching of Diaspora posts doesn't always work. There are issues with reshares and possibly comments - if (($item['network'] != Protocol::DIASPORA) && empty($comment) && !empty(Session::get('remote_comment'))) { + if (!local_user() && ($item['network'] != Protocol::DIASPORA) && !empty(Session::get('remote_comment'))) { $remote_comment = [DI::l10n()->t('Comment this item on your system'), DI::l10n()->t('Remote comment'), str_replace('{uri}', urlencode($item['uri']), Session::get('remote_comment'))]; + + // Ensure to either display the remote comment or the local activities + $buttons = []; + $comment_html = ''; } else { $remote_comment = ''; }