From a19151fa6ac05a10ea70354142865a16121be6bf Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 2 Mar 2020 22:35:25 +0000 Subject: [PATCH] Improved description, support for "unlisted" via DFRN as well. --- mod/settings.php | 2 +- src/Protocol/DFRN.php | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mod/settings.php b/mod/settings.php index dd3303892b..47505bd726 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -840,7 +840,7 @@ function settings_content(App $a) ]); $unlisted = Renderer::replaceMacros($opt_tpl, [ - '$field' => ['unlisted', DI::l10n()->t('Should public posts be unlisted?'), DI::pConfig()->get(local_user(), 'system', 'unlisted'), DI::l10n()->t('Your public posts will not appear on the community page or in search results, nor will they be transported to relay servers.')], + '$field' => ['unlisted', DI::l10n()->t('Should public posts be unlisted?'), DI::pConfig()->get(local_user(), 'system', 'unlisted'), DI::l10n()->t('Your public posts will not appear on the community page or in search results, nor will they be transported to relay servers. However they can appear on public feeds from other servers.')], ]); $blockwall = Renderer::replaceMacros($opt_tpl, [ diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index 078deff7a3..4c88db1d94 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -1052,6 +1052,7 @@ class DFRN if ($item['private']) { // Friendica versions prior to 2020.3 can't handle "unlisted" properly. So we can only transmit public and private XML::addElement($doc, $entry, "dfrn:private", ($item['private'] == Item::PRIVATE ? Item::PRIVATE : Item::PUBLIC)); + XML::addElement($doc, $entry, "dfrn:unlisted", $item['private'] == Item::UNLISTED); } if ($item['extid']) { @@ -2405,6 +2406,11 @@ class DFRN $item["private"] = XML::getFirstNodeValue($xpath, "dfrn:private/text()", $entry); + $unlisted = XML::getFirstNodeValue($xpath, "dfrn:unlisted/text()", $entry); + if (!empty($unlisted) && ($item['private'] != Item::PRIVATE)) { + $item['private'] = Item::UNLISTED; + } + $item["extid"] = XML::getFirstNodeValue($xpath, "dfrn:extid/text()", $entry); if (XML::getFirstNodeValue($xpath, "dfrn:bookmark/text()", $entry) == "true") {