1
0
Fork 0

Merge pull request #11253 from annando/forum3

More rework to make private communities working
This commit is contained in:
Hypolite Petovan 2022-02-18 12:19:57 -05:00 committed by GitHub
commit c03ff7833b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 304 additions and 295 deletions

View file

@ -240,7 +240,6 @@ function settings_post(App $a)
$allow_location = ((!empty($_POST['allow_location']) && (intval($_POST['allow_location']) == 1)) ? 1: 0); $allow_location = ((!empty($_POST['allow_location']) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
$publish = ((!empty($_POST['profile_in_directory']) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0); $publish = ((!empty($_POST['profile_in_directory']) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
$net_publish = ((!empty($_POST['profile_in_netdirectory']) && (intval($_POST['profile_in_netdirectory']) == 1)) ? 1: 0); $net_publish = ((!empty($_POST['profile_in_netdirectory']) && (intval($_POST['profile_in_netdirectory']) == 1)) ? 1: 0);
$old_visibility = ((!empty($_POST['visibility']) && (intval($_POST['visibility']) == 1)) ? 1 : 0);
$account_type = ((!empty($_POST['account-type']) && (intval($_POST['account-type']))) ? intval($_POST['account-type']) : 0); $account_type = ((!empty($_POST['account-type']) && (intval($_POST['account-type']))) ? intval($_POST['account-type']) : 0);
$page_flags = ((!empty($_POST['page-flags']) && (intval($_POST['page-flags']))) ? intval($_POST['page-flags']) : 0); $page_flags = ((!empty($_POST['page-flags']) && (intval($_POST['page-flags']))) ? intval($_POST['page-flags']) : 0);
$blockwall = ((!empty($_POST['blockwall']) && (intval($_POST['blockwall']) == 1)) ? 0: 1); // this setting is inverted! $blockwall = ((!empty($_POST['blockwall']) && (intval($_POST['blockwall']) == 1)) ? 0: 1); // this setting is inverted!
@ -362,16 +361,21 @@ function settings_post(App $a)
DI::pConfig()->set(local_user(), 'system', 'unlisted', $unlisted); DI::pConfig()->set(local_user(), 'system', 'unlisted', $unlisted);
DI::pConfig()->set(local_user(), 'system', 'accessible-photos', $accessiblephotos); DI::pConfig()->set(local_user(), 'system', 'accessible-photos', $accessiblephotos);
if ($account_type == User::ACCOUNT_TYPE_COMMUNITY) {
$str_group_allow = '';
$str_contact_allow = '';
$str_group_deny = '';
$str_contact_deny = '';
DI::pConfig()->set(local_user(), 'system', 'unlisted', true);
$blockwall = true;
$blocktags = true;
$hide_friends = true;
}
if ($page_flags == User::PAGE_FLAGS_PRVGROUP) { if ($page_flags == User::PAGE_FLAGS_PRVGROUP) {
$hidewall = 1; $str_group_allow = '<' . Group::FOLLOWERS . '>';
if (!$str_contact_allow && !$str_group_allow && !$str_contact_deny && !$str_group_deny) {
if ($def_gid) {
info(DI::l10n()->t('Private forum has no privacy permissions. Using default privacy group.'));
$str_group_allow = '<' . $def_gid . '>';
} else {
notice(DI::l10n()->t('Private forum has no privacy permissions and no default privacy group.'));
}
}
} }
$fields = ['username' => $username, 'email' => $email, 'timezone' => $timezone, $fields = ['username' => $username, 'email' => $email, 'timezone' => $timezone,
@ -767,7 +771,7 @@ function settings_content(App $a)
'$allowloc' => ['allow_location', DI::l10n()->t('Use Browser Location:'), ($user['allow_location'] == 1), ''], '$allowloc' => ['allow_location', DI::l10n()->t('Use Browser Location:'), ($user['allow_location'] == 1), ''],
'$h_prv' => DI::l10n()->t('Security and Privacy Settings'), '$h_prv' => DI::l10n()->t('Security and Privacy Settings'),
'$visibility' => $profile['net-publish'], '$is_community' => ($user['account-type'] == User::ACCOUNT_TYPE_COMMUNITY),
'$maxreq' => ['maxreq', DI::l10n()->t('Maximum Friend Requests/Day:'), $maxreq , DI::l10n()->t("\x28to prevent spam abuse\x29")], '$maxreq' => ['maxreq', DI::l10n()->t('Maximum Friend Requests/Day:'), $maxreq , DI::l10n()->t("\x28to prevent spam abuse\x29")],
'$profile_in_dir' => $profile_in_dir, '$profile_in_dir' => $profile_in_dir,
'$profile_in_net_dir' => ['profile_in_netdirectory', DI::l10n()->t('Allow your profile to be searchable globally?'), $profile['net-publish'], DI::l10n()->t("Activate this setting if you want others to easily find and follow you. Your profile will be searchable on remote systems. This setting also determines whether Friendica will inform search engines that your profile should be indexed or not.") . $net_pub_desc], '$profile_in_net_dir' => ['profile_in_netdirectory', DI::l10n()->t('Allow your profile to be searchable globally?'), $profile['net-publish'], DI::l10n()->t("Activate this setting if you want others to easily find and follow you. Your profile will be searchable on remote systems. This setting also determines whether Friendica will inform search engines that your profile should be indexed or not.") . $net_pub_desc],

View file

@ -556,7 +556,7 @@ class Group
* *
* @param integer $id Contact ID * @param integer $id Contact ID
*/ */
public static function getMembersForForum(int $id) public static function updateMembersForForum(int $id)
{ {
Logger::info('Update forum members', ['id' => $id]); Logger::info('Update forum members', ['id' => $id]);

View file

@ -1236,8 +1236,11 @@ class Item
return; return;
} }
$self_contact = Contact::selectFirst(['id'], ['uid' => $item['uid'], 'self' => true]);
$self = !empty($self_contact) ? $self_contact['id'] : 0;
$cid = Contact::getIdForURL($author['url'], $item['uid']); $cid = Contact::getIdForURL($author['url'], $item['uid']);
if (empty($cid) || !Contact::isSharing($cid, $item['uid'])) { if (empty($cid) || (!Contact::isSharing($cid, $item['uid']) && ($cid != $self))) {
Logger::info('The resharer is not a following contact: quit', ['resharer' => $author['url'], 'uid' => $item['uid'], 'cid' => $cid]); Logger::info('The resharer is not a following contact: quit', ['resharer' => $author['url'], 'uid' => $item['uid'], 'cid' => $cid]);
return; return;
} }
@ -1471,7 +1474,7 @@ class Item
} }
// When the post belongs to a a forum then all forum users are allowed to access it // When the post belongs to a a forum then all forum users are allowed to access it
foreach (Tag::getByURIId($uriid, [Tag::EXCLUSIVE_MENTION]) as $tag) { foreach (Tag::getByURIId($uriid, [Tag::MENTION, Tag::EXCLUSIVE_MENTION]) as $tag) {
if (DBA::exists('contact', ['uid' => $uid, 'nurl' => Strings::normaliseLink($tag['url']), 'contact-type' => Contact::TYPE_COMMUNITY])) { if (DBA::exists('contact', ['uid' => $uid, 'nurl' => Strings::normaliseLink($tag['url']), 'contact-type' => Contact::TYPE_COMMUNITY])) {
$target_uid = User::getIdForURL($tag['url']); $target_uid = User::getIdForURL($tag['url']);
if (!empty($target_uid)) { if (!empty($target_uid)) {
@ -1945,7 +1948,7 @@ class Item
$owner = User::getOwnerDataById($uid); $owner = User::getOwnerDataById($uid);
if (!DBA::isResult($owner)) { if (!DBA::isResult($owner)) {
Logger::warning('User not found, quitting.', ['uid' => $uid]); Logger::warning('User not found, quitting here.', ['uid' => $uid]);
return false; return false;
} }
@ -1954,55 +1957,50 @@ class Item
return false; return false;
} }
$item = Post::selectFirst(self::ITEM_FIELDLIST, ['id' => $item_id]); $item = Post::selectFirst(self::ITEM_FIELDLIST, ['id' => $item_id, 'gravity' => [GRAVITY_PARENT, GRAVITY_COMMENT], 'origin' => false]);
if (!DBA::isResult($item)) { if (!DBA::isResult($item)) {
Logger::warning('Post not found, quitting.', ['id' => $item_id]); Logger::debug('Post is an activity or origin or not found at all, quitting here.', ['id' => $item_id]);
return false; return false;
} }
if ($item['wall'] || $item['origin'] || ($item['gravity'] != GRAVITY_PARENT)) { if ($item['gravity'] == GRAVITY_PARENT) {
Logger::debug('Wall item, origin item or no parent post, quitting here.', ['wall' => $item['wall'], 'origin' => $item['origin'], 'gravity' => $item['gravity'], 'id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]); $tags = Tag::getByURIId($item['uri-id'], [Tag::MENTION, Tag::EXCLUSIVE_MENTION]);
return false; foreach ($tags as $tag) {
} if (Strings::compareLink($owner['url'], $tag['url'])) {
$mention = true;
$tags = Tag::getByURIId($item['uri-id'], [Tag::MENTION, Tag::EXCLUSIVE_MENTION]); Logger::info('Mention found in tag.', ['url' => $tag['url'], 'uri' => $item['uri'], 'uid' => $uid, 'id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
foreach ($tags as $tag) {
if (Strings::compareLink($owner['url'], $tag['url'])) {
$mention = true;
Logger::info('Mention found in tag.', ['url' => $tag['url'], 'uri' => $item['uri'], 'uid' => $uid, 'id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
}
}
// This check can most likely be removed since we always are having the tags
if (!$mention) {
$cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism', $item['body'], $matches, PREG_SET_ORDER);
if ($cnt) {
foreach ($matches as $mtch) {
if (Strings::compareLink($owner['url'], $mtch[1])) {
$mention = true;
Logger::notice('Mention found in body.', ['mention' => $mtch[2], 'uri' => $item['uri'], 'uid' => $uid, 'id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
}
} }
} }
if (!$mention) {
Logger::info('Top-level post without mention is deleted.', ['uri' => $item['uri'], $uid, 'id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
Post\User::delete(['uri-id' => $item['uri-id'], 'uid' => $item['uid']]);
return true;
}
$arr = ['item' => $item, 'user' => $owner];
Hook::callAll('tagged', $arr);
} else {
$tags = Tag::getByURIId($item['parent-uri-id'], [Tag::MENTION, Tag::EXCLUSIVE_MENTION]);
foreach ($tags as $tag) {
if (Strings::compareLink($owner['url'], $tag['url'])) {
$mention = true;
Logger::info('Mention found in parent tag.', ['url' => $tag['url'], 'uri' => $item['uri'], 'uid' => $uid, 'id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
}
}
if (!$mention) {
Logger::debug('No mentions found in parent, quitting here.', ['id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
return false;
}
} }
if (!$mention) {
Logger::info('Top-level post without mention is deleted.', ['uri' => $item['uri'], $uid, 'id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
Post\User::delete(['uri-id' => $item['uri-id'], 'uid' => $item['uid']]);
return true;
}
$arr = ['item' => $item, 'user' => $owner];
Hook::callAll('tagged', $arr);
Logger::info('Community post will be distributed', ['uri' => $item['uri'], 'uid' => $uid, 'id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]); Logger::info('Community post will be distributed', ['uri' => $item['uri'], 'uid' => $uid, 'id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
if ($owner['page-flags'] == User::PAGE_FLAGS_PRVGROUP) { if ($owner['page-flags'] == User::PAGE_FLAGS_PRVGROUP) {
Group::getMembersForForum($owner['id']); $allow_cid = '';
$allow_gid = '<' . Group::FOLLOWERS . '>';
$allow_cid = '<' . $owner['id'] . '>';
$allow_gid = '<' . Group::getIdForForum($owner['id']) . '>';
$deny_cid = ''; $deny_cid = '';
$deny_gid = ''; $deny_gid = '';
self::performActivity($item['id'], 'announce', $uid, $allow_cid, $allow_gid, $deny_cid, $deny_gid); self::performActivity($item['id'], 'announce', $uid, $allow_cid, $allow_gid, $deny_cid, $deny_gid);
@ -3215,30 +3213,20 @@ class Item
} }
/** /**
* Is the given item array a post that is sent as starting post to a forum? * Does the given uri-id belongs to a post that is sent as starting post to a forum?
* *
* @param array $item * @param int $uri_id
* @param array $owner
* *
* @return boolean "true" when it is a forum post * @return boolean "true" when it is a forum post
*/ */
public static function isForumPost(array $item, array $owner = []) public static function isForumPost(int $uri_id)
{ {
if (empty($owner)) { foreach (Tag::getByURIId($uri_id, [Tag::EXCLUSIVE_MENTION]) as $tag) {
$owner = User::getOwnerDataById($item['uid']); if (DBA::exists('contact', ['uid' => 0, 'nurl' => Strings::normaliseLink($tag['url']), 'contact-type' => Contact::TYPE_COMMUNITY])) {
if (empty($owner)) { return true;
return false;
} }
} }
return false;
if (($item['author-id'] == $item['owner-id']) ||
($owner['id'] == $item['contact-id']) ||
($item['uri-id'] != $item['parent-uri-id']) ||
$item['origin']) {
return false;
}
return Contact::isForum($item['contact-id']);
} }
/** /**

View file

@ -182,6 +182,11 @@ class UserNotification
return; return;
} }
$author = Contact::getById($item['author-id'], ['contact-type']);
if (empty($author)) {
return;
}
$notification_type = self::TYPE_NONE; $notification_type = self::TYPE_NONE;
if (self::checkShared($item, $uid)) { if (self::checkShared($item, $uid)) {
@ -232,7 +237,7 @@ class UserNotification
} }
} }
if (self::checkDirectCommentedThread($item, $contacts)) { if (($contact['contact-type'] != Contact::TYPE_COMMUNITY) && self::checkDirectCommentedThread($item, $contacts)) {
$notification_type = $notification_type | self::TYPE_DIRECT_THREAD_COMMENT; $notification_type = $notification_type | self::TYPE_DIRECT_THREAD_COMMENT;
if (!$notified) { if (!$notified) {
self::insertNotificationByItem(self::TYPE_DIRECT_THREAD_COMMENT, $uid, $item); self::insertNotificationByItem(self::TYPE_DIRECT_THREAD_COMMENT, $uid, $item);

View file

@ -81,6 +81,7 @@ class Objects extends BaseModule
$requester = HTTPSignature::getSigner('', $_SERVER); $requester = HTTPSignature::getSigner('', $_SERVER);
if (!empty($requester)) { if (!empty($requester)) {
$receivers = Item::enumeratePermissions($item, false); $receivers = Item::enumeratePermissions($item, false);
$receivers[] = $item['contact-id'];
$validated = in_array(Contact::getIdForURL($requester, $item['uid']), $receivers); $validated = in_array(Contact::getIdForURL($requester, $item['uid']), $receivers);
if (!$validated) { if (!$validated) {

View file

@ -82,7 +82,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
{ {
$message = []; $message = [];
$causer = $author = Contact::getById($Notification->actorId, ['id', 'name', 'url', 'pending']); $causer = $author = Contact::getById($Notification->actorId, ['id', 'name', 'url', 'contact-type', 'pending']);
if (empty($causer)) { if (empty($causer)) {
$this->logger->info('Causer not found', ['contact' => $Notification->actorId]); $this->logger->info('Causer not found', ['contact' => $Notification->actorId]);
return $message; return $message;
@ -124,7 +124,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
} }
if (in_array($Notification->type, [Post\UserNotification::TYPE_COMMENT_PARTICIPATION, Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION, Post\UserNotification::TYPE_SHARED])) { if (in_array($Notification->type, [Post\UserNotification::TYPE_COMMENT_PARTICIPATION, Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION, Post\UserNotification::TYPE_SHARED])) {
$author = Contact::getById($item['author-id'], ['id', 'name', 'url']); $author = Contact::getById($item['author-id'], ['id', 'name', 'url', 'contact-type']);
if (empty($author)) { if (empty($author)) {
$this->logger->info('Author not found', ['author' => $item['author-id']]); $this->logger->info('Author not found', ['author' => $item['author-id']]);
return $message; return $message;

View file

@ -667,6 +667,15 @@ class Receiver
$uid = $receiver['uid']; $uid = $receiver['uid'];
} }
} }
// When we haven't found any user yet, we just chose a user who most likely could have access to the content
if (empty($uid)) {
$contact = Contact::selectFirst(['uid'], ['nurl' => Strings::normaliseLink($actor), 'rel' => [Contact::SHARING, Contact::FRIEND]]);
if (!empty($contact['uid'])) {
$uid = $contact['uid'];
}
}
return $uid; return $uid;
} }

View file

@ -509,28 +509,33 @@ class Transmitter
/** /**
* Creates an array of permissions from an item thread * Creates an array of permissions from an item thread
* *
* @param array $item Item array * @param array $item Item array
* @param boolean $blindcopy addressing via "bcc" or "cc"? * @param boolean $blindcopy addressing via "bcc" or "cc"?
* @param integer $last_id Last item id for adding receivers * @param integer $last_id Last item id for adding receivers
* @param boolean $forum_post "true" means that we are sending content to a forum
* *
* @return array with permission data * @return array with permission data
* @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException * @throws \ImagickException
*/ */
private static function createPermissionBlockForItem($item, $blindcopy, $last_id = 0, $forum_post = false) private static function createPermissionBlockForItem($item, $blindcopy, $last_id = 0)
{ {
if ($last_id == 0) { if ($last_id == 0) {
$last_id = $item['id']; $last_id = $item['id'];
} }
$always_bcc = false; $always_bcc = false;
$is_forum = false;
$follower = '';
// Check if we should always deliver our stuff via BCC // Check if we should always deliver our stuff via BCC
if (!empty($item['uid'])) { if (!empty($item['uid'])) {
$profile = User::getOwnerDataById($item['uid']); $owner = User::getOwnerDataById($item['uid']);
if (!empty($profile)) { if (!empty($owner)) {
$always_bcc = $profile['hide-friends']; $always_bcc = $owner['hide-friends'];
$is_forum = ($owner['account-type'] == User::ACCOUNT_TYPE_COMMUNITY) && $owner['manually-approve'];
$profile = APContact::getByURL($owner['url'], false);
$follower = $profile['followers'] ?? '';
} }
} }
@ -613,7 +618,9 @@ class Transmitter
} }
} }
if (!$exclusive) { if ($is_forum && !$exclusive && !empty($follower)) {
$data['cc'][] = $follower;
} elseif (!$exclusive) {
foreach ($receiver_list as $receiver) { foreach ($receiver_list as $receiver) {
$contact = DBA::selectFirst('contact', ['url', 'hidden', 'network', 'protocol', 'gsid'], ['id' => $receiver, 'network' => Protocol::FEDERATED]); $contact = DBA::selectFirst('contact', ['url', 'hidden', 'network', 'protocol', 'gsid'], ['id' => $receiver, 'network' => Protocol::FEDERATED]);
if (!DBA::isResult($contact) || !self::isAPContact($contact, $networks)) { if (!DBA::isResult($contact) || !self::isAPContact($contact, $networks)) {
@ -652,9 +659,7 @@ class Transmitter
} }
} elseif (!$exclusive) { } elseif (!$exclusive) {
// Public thread parent post always are directed to the followers. // Public thread parent post always are directed to the followers.
// This mustn't be done by posts that are directed to forum servers via the exclusive mention. if ($item['private'] != Item::PRIVATE) {
// But possibly in that case we could add the "followers" collection of the forum to the message.
if (($item['private'] != Item::PRIVATE) && !$forum_post) {
$data['cc'][] = $actor_profile['followers']; $data['cc'][] = $actor_profile['followers'];
} }
} }
@ -820,18 +825,17 @@ class Transmitter
/** /**
* Fetches an array of inboxes for the given item and user * Fetches an array of inboxes for the given item and user
* *
* @param array $item Item array * @param array $item Item array
* @param integer $uid User ID * @param integer $uid User ID
* @param boolean $personal fetch personal inboxes * @param boolean $personal fetch personal inboxes
* @param integer $last_id Last item id for adding receivers * @param integer $last_id Last item id for adding receivers
* @param boolean $forum_post "true" means that we are sending content to a forum
* @return array with inboxes * @return array with inboxes
* @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException * @throws \ImagickException
*/ */
public static function fetchTargetInboxes($item, $uid, $personal = false, $last_id = 0, $forum_post = false) public static function fetchTargetInboxes($item, $uid, $personal = false, $last_id = 0)
{ {
$permissions = self::createPermissionBlockForItem($item, true, $last_id, $forum_post); $permissions = self::createPermissionBlockForItem($item, true, $last_id);
if (empty($permissions)) { if (empty($permissions)) {
return []; return [];
} }

View file

@ -235,13 +235,13 @@ class Notifier
} }
// Special treatment for forum posts // Special treatment for forum posts
if (Item::isForumPost($target_item, $owner)) { if (Item::isForumPost($target_item['uri-id'])) {
$relay_to_owner = true; $relay_to_owner = true;
$direct_forum_delivery = true; $direct_forum_delivery = true;
} }
// Avoid that comments in a forum thread are sent to OStatus // Avoid that comments in a forum thread are sent to OStatus
if (Item::isForumPost($parent, $owner)) { if (Item::isForumPost($parent['uri-id'])) {
$direct_forum_delivery = true; $direct_forum_delivery = true;
} }
@ -729,6 +729,14 @@ class Notifier
$uid = $target_item['contact-uid'] ?: $target_item['uid']; $uid = $target_item['contact-uid'] ?: $target_item['uid'];
// Update the locally stored follower list when we deliver to a forum
foreach (Tag::getByURIId($target_item['uri-id'], [Tag::MENTION, Tag::EXCLUSIVE_MENTION]) as $tag) {
$target_contact = Contact::getByURL(Strings::normaliseLink($tag['url']), null, [], $uid);
if (($target_contact['contact-type'] == Contact::TYPE_COMMUNITY) && $target_contact['manually-approve']) {
Group::updateMembersForForum($target_contact['id']);
}
}
if ($target_item['origin']) { if ($target_item['origin']) {
$inboxes = ActivityPub\Transmitter::fetchTargetInboxes($target_item, $uid); $inboxes = ActivityPub\Transmitter::fetchTargetInboxes($target_item, $uid);
@ -738,9 +746,6 @@ class Notifier
} }
Logger::info('Origin item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' will be distributed.'); Logger::info('Origin item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' will be distributed.');
} elseif (Item::isForumPost($target_item, $owner)) {
$inboxes = ActivityPub\Transmitter::fetchTargetInboxes($target_item, $uid, false, 0, true);
Logger::info('Forum item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' will be distributed.');
} elseif (!DBA::exists('conversation', ['item-uri' => $target_item['uri'], 'protocol' => Conversation::PARCEL_ACTIVITYPUB])) { } elseif (!DBA::exists('conversation', ['item-uri' => $target_item['uri'], 'protocol' => Conversation::PARCEL_ACTIVITYPUB])) {
Logger::info('Remote item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' is no AP post. It will not be distributed.'); Logger::info('Remote item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' is no AP post. It will not be distributed.');
return ['count' => 0, 'contacts' => []]; return ['count' => 0, 'contacts' => []];

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 2022.05-dev\n" "Project-Id-Version: 2022.05-dev\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-15 15:52-0500\n" "POT-Creation-Date: 2022-02-17 07:11+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -121,7 +121,7 @@ msgstr ""
#: mod/item.php:184 mod/item.php:189 mod/item.php:918 mod/message.php:69 #: mod/item.php:184 mod/item.php:189 mod/item.php:918 mod/message.php:69
#: mod/message.php:111 mod/notes.php:44 mod/ostatus_subscribe.php:32 #: mod/message.php:111 mod/notes.php:44 mod/ostatus_subscribe.php:32
#: mod/photos.php:160 mod/photos.php:897 mod/repair_ostatus.php:31 #: mod/photos.php:160 mod/photos.php:897 mod/repair_ostatus.php:31
#: mod/settings.php:47 mod/settings.php:57 mod/settings.php:413 #: mod/settings.php:47 mod/settings.php:57 mod/settings.php:417
#: mod/suggest.php:34 mod/uimport.php:33 mod/unfollow.php:35 #: mod/suggest.php:34 mod/uimport.php:33 mod/unfollow.php:35
#: mod/unfollow.php:50 mod/unfollow.php:82 mod/wall_attach.php:68 #: mod/unfollow.php:50 mod/unfollow.php:82 mod/wall_attach.php:68
#: mod/wall_attach.php:71 mod/wall_upload.php:90 mod/wall_upload.php:93 #: mod/wall_attach.php:71 mod/wall_upload.php:90 mod/wall_upload.php:93
@ -1079,7 +1079,7 @@ msgstr ""
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: mod/photos.php:1431 mod/settings.php:607 src/Content/Conversation.php:616 #: mod/photos.php:1431 mod/settings.php:611 src/Content/Conversation.php:616
#: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140 #: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140
#: src/Module/Admin/Users/Index.php:153 #: src/Module/Admin/Users/Index.php:153
msgid "Delete" msgid "Delete"
@ -1215,43 +1215,35 @@ msgstr ""
msgid "Password unchanged." msgid "Password unchanged."
msgstr "" msgstr ""
#: mod/settings.php:305 #: mod/settings.php:304
msgid "Please use a shorter name." msgid "Please use a shorter name."
msgstr "" msgstr ""
#: mod/settings.php:308 #: mod/settings.php:307
msgid "Name too short." msgid "Name too short."
msgstr "" msgstr ""
#: mod/settings.php:317 #: mod/settings.php:316
msgid "Wrong Password." msgid "Wrong Password."
msgstr "" msgstr ""
#: mod/settings.php:322 #: mod/settings.php:321
msgid "Invalid email." msgid "Invalid email."
msgstr "" msgstr ""
#: mod/settings.php:328 #: mod/settings.php:327
msgid "Cannot change to that email." msgid "Cannot change to that email."
msgstr "" msgstr ""
#: mod/settings.php:369 #: mod/settings.php:395
msgid "Private forum has no privacy permissions. Using default privacy group."
msgstr ""
#: mod/settings.php:372
msgid "Private forum has no privacy permissions and no default privacy group."
msgstr ""
#: mod/settings.php:391
msgid "Settings were not updated." msgid "Settings were not updated."
msgstr "" msgstr ""
#: mod/settings.php:432 #: mod/settings.php:436
msgid "Connected Apps" msgid "Connected Apps"
msgstr "" msgstr ""
#: mod/settings.php:433 src/Module/Admin/Blocklist/Contact.php:106 #: mod/settings.php:437 src/Module/Admin/Blocklist/Contact.php:106
#: src/Module/Admin/Users/Active.php:129 src/Module/Admin/Users/Blocked.php:130 #: src/Module/Admin/Users/Active.php:129 src/Module/Admin/Users/Blocked.php:130
#: src/Module/Admin/Users/Create.php:71 src/Module/Admin/Users/Deleted.php:88 #: src/Module/Admin/Users/Create.php:71 src/Module/Admin/Users/Deleted.php:88
#: src/Module/Admin/Users/Index.php:142 src/Module/Admin/Users/Index.php:162 #: src/Module/Admin/Users/Index.php:142 src/Module/Admin/Users/Index.php:162
@ -1259,20 +1251,20 @@ msgstr ""
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: mod/settings.php:434 src/Content/Nav.php:212 #: mod/settings.php:438 src/Content/Nav.php:212
msgid "Home Page" msgid "Home Page"
msgstr "" msgstr ""
#: mod/settings.php:435 src/Module/Admin/Queue.php:78 #: mod/settings.php:439 src/Module/Admin/Queue.php:78
msgid "Created" msgid "Created"
msgstr "" msgstr ""
#: mod/settings.php:436 #: mod/settings.php:440
msgid "Remove authorization" msgid "Remove authorization"
msgstr "" msgstr ""
#: mod/settings.php:462 mod/settings.php:494 mod/settings.php:525 #: mod/settings.php:466 mod/settings.php:498 mod/settings.php:529
#: mod/settings.php:609 mod/settings.php:746 #: mod/settings.php:613 mod/settings.php:750
#: src/Module/Admin/Addons/Index.php:69 src/Module/Admin/Features.php:87 #: src/Module/Admin/Addons/Index.php:69 src/Module/Admin/Features.php:87
#: src/Module/Admin/Logs/Settings.php:81 src/Module/Admin/Site.php:501 #: src/Module/Admin/Logs/Settings.php:81 src/Module/Admin/Site.php:501
#: src/Module/Admin/Themes/Index.php:113 src/Module/Admin/Tos.php:83 #: src/Module/Admin/Themes/Index.php:113 src/Module/Admin/Tos.php:83
@ -1280,83 +1272,83 @@ msgstr ""
msgid "Save Settings" msgid "Save Settings"
msgstr "" msgstr ""
#: mod/settings.php:470 #: mod/settings.php:474
msgid "Addon Settings" msgid "Addon Settings"
msgstr "" msgstr ""
#: mod/settings.php:471 #: mod/settings.php:475
msgid "No Addon settings configured" msgid "No Addon settings configured"
msgstr "" msgstr ""
#: mod/settings.php:492 #: mod/settings.php:496
msgid "Additional Features" msgid "Additional Features"
msgstr "" msgstr ""
#: mod/settings.php:530 #: mod/settings.php:534
msgid "Diaspora (Socialhome, Hubzilla)" msgid "Diaspora (Socialhome, Hubzilla)"
msgstr "" msgstr ""
#: mod/settings.php:530 mod/settings.php:531 #: mod/settings.php:534 mod/settings.php:535
msgid "enabled" msgid "enabled"
msgstr "" msgstr ""
#: mod/settings.php:530 mod/settings.php:531 #: mod/settings.php:534 mod/settings.php:535
msgid "disabled" msgid "disabled"
msgstr "" msgstr ""
#: mod/settings.php:530 mod/settings.php:531 #: mod/settings.php:534 mod/settings.php:535
#, php-format #, php-format
msgid "Built-in support for %s connectivity is %s" msgid "Built-in support for %s connectivity is %s"
msgstr "" msgstr ""
#: mod/settings.php:531 #: mod/settings.php:535
msgid "OStatus (GNU Social)" msgid "OStatus (GNU Social)"
msgstr "" msgstr ""
#: mod/settings.php:557 #: mod/settings.php:561
msgid "Email access is disabled on this site." msgid "Email access is disabled on this site."
msgstr "" msgstr ""
#: mod/settings.php:562 mod/settings.php:607 #: mod/settings.php:566 mod/settings.php:611
msgid "None" msgid "None"
msgstr "" msgstr ""
#: mod/settings.php:568 src/Module/BaseSettings.php:78 #: mod/settings.php:572 src/Module/BaseSettings.php:78
msgid "Social Networks" msgid "Social Networks"
msgstr "" msgstr ""
#: mod/settings.php:573 #: mod/settings.php:577
msgid "General Social Media Settings" msgid "General Social Media Settings"
msgstr "" msgstr ""
#: mod/settings.php:576 #: mod/settings.php:580
msgid "Followed content scope" msgid "Followed content scope"
msgstr "" msgstr ""
#: mod/settings.php:578 #: mod/settings.php:582
msgid "" msgid ""
"By default, conversations in which your follows participated but didn't " "By default, conversations in which your follows participated but didn't "
"start will be shown in your timeline. You can turn this behavior off, or " "start will be shown in your timeline. You can turn this behavior off, or "
"expand it to the conversations in which your follows liked a post." "expand it to the conversations in which your follows liked a post."
msgstr "" msgstr ""
#: mod/settings.php:580 #: mod/settings.php:584
msgid "Only conversations my follows started" msgid "Only conversations my follows started"
msgstr "" msgstr ""
#: mod/settings.php:581 #: mod/settings.php:585
msgid "Conversations my follows started or commented on (default)" msgid "Conversations my follows started or commented on (default)"
msgstr "" msgstr ""
#: mod/settings.php:582 #: mod/settings.php:586
msgid "Any conversation my follows interacted with, including likes" msgid "Any conversation my follows interacted with, including likes"
msgstr "" msgstr ""
#: mod/settings.php:585 #: mod/settings.php:589
msgid "Enable Content Warning" msgid "Enable Content Warning"
msgstr "" msgstr ""
#: mod/settings.php:585 #: mod/settings.php:589
msgid "" msgid ""
"Users on networks like Mastodon or Pleroma are able to set a content warning " "Users on networks like Mastodon or Pleroma are able to set a content warning "
"field which collapse their post by default. This enables the automatic " "field which collapse their post by default. This enables the automatic "
@ -1364,222 +1356,222 @@ msgid ""
"affect any other content filtering you eventually set up." "affect any other content filtering you eventually set up."
msgstr "" msgstr ""
#: mod/settings.php:586 #: mod/settings.php:590
msgid "Enable intelligent shortening" msgid "Enable intelligent shortening"
msgstr "" msgstr ""
#: mod/settings.php:586 #: mod/settings.php:590
msgid "" msgid ""
"Normally the system tries to find the best link to add to shortened posts. " "Normally the system tries to find the best link to add to shortened posts. "
"If disabled, every shortened post will always point to the original " "If disabled, every shortened post will always point to the original "
"friendica post." "friendica post."
msgstr "" msgstr ""
#: mod/settings.php:587 #: mod/settings.php:591
msgid "Enable simple text shortening" msgid "Enable simple text shortening"
msgstr "" msgstr ""
#: mod/settings.php:587 #: mod/settings.php:591
msgid "" msgid ""
"Normally the system shortens posts at the next line feed. If this option is " "Normally the system shortens posts at the next line feed. If this option is "
"enabled then the system will shorten the text at the maximum character limit." "enabled then the system will shorten the text at the maximum character limit."
msgstr "" msgstr ""
#: mod/settings.php:588 #: mod/settings.php:592
msgid "Attach the link title" msgid "Attach the link title"
msgstr "" msgstr ""
#: mod/settings.php:588 #: mod/settings.php:592
msgid "" msgid ""
"When activated, the title of the attached link will be added as a title on " "When activated, the title of the attached link will be added as a title on "
"posts to Diaspora. This is mostly helpful with \"remote-self\" contacts that " "posts to Diaspora. This is mostly helpful with \"remote-self\" contacts that "
"share feed content." "share feed content."
msgstr "" msgstr ""
#: mod/settings.php:589 #: mod/settings.php:593
msgid "Your legacy ActivityPub/GNU Social account" msgid "Your legacy ActivityPub/GNU Social account"
msgstr "" msgstr ""
#: mod/settings.php:589 #: mod/settings.php:593
msgid "" msgid ""
"If you enter your old account name from an ActivityPub based system or your " "If you enter your old account name from an ActivityPub based system or your "
"GNU Social/Statusnet account name here (in the format user@domain.tld), your " "GNU Social/Statusnet account name here (in the format user@domain.tld), your "
"contacts will be added automatically. The field will be emptied when done." "contacts will be added automatically. The field will be emptied when done."
msgstr "" msgstr ""
#: mod/settings.php:592 #: mod/settings.php:596
msgid "Repair OStatus subscriptions" msgid "Repair OStatus subscriptions"
msgstr "" msgstr ""
#: mod/settings.php:596 #: mod/settings.php:600
msgid "Email/Mailbox Setup" msgid "Email/Mailbox Setup"
msgstr "" msgstr ""
#: mod/settings.php:597 #: mod/settings.php:601
msgid "" msgid ""
"If you wish to communicate with email contacts using this service " "If you wish to communicate with email contacts using this service "
"(optional), please specify how to connect to your mailbox." "(optional), please specify how to connect to your mailbox."
msgstr "" msgstr ""
#: mod/settings.php:598 #: mod/settings.php:602
msgid "Last successful email check:" msgid "Last successful email check:"
msgstr "" msgstr ""
#: mod/settings.php:600 #: mod/settings.php:604
msgid "IMAP server name:" msgid "IMAP server name:"
msgstr "" msgstr ""
#: mod/settings.php:601 #: mod/settings.php:605
msgid "IMAP port:" msgid "IMAP port:"
msgstr "" msgstr ""
#: mod/settings.php:602 #: mod/settings.php:606
msgid "Security:" msgid "Security:"
msgstr "" msgstr ""
#: mod/settings.php:603 #: mod/settings.php:607
msgid "Email login name:" msgid "Email login name:"
msgstr "" msgstr ""
#: mod/settings.php:604 #: mod/settings.php:608
msgid "Email password:" msgid "Email password:"
msgstr "" msgstr ""
#: mod/settings.php:605 #: mod/settings.php:609
msgid "Reply-to address:" msgid "Reply-to address:"
msgstr "" msgstr ""
#: mod/settings.php:606 #: mod/settings.php:610
msgid "Send public posts to all email contacts:" msgid "Send public posts to all email contacts:"
msgstr "" msgstr ""
#: mod/settings.php:607 #: mod/settings.php:611
msgid "Action after import:" msgid "Action after import:"
msgstr "" msgstr ""
#: mod/settings.php:607 src/Content/Nav.php:280 #: mod/settings.php:611 src/Content/Nav.php:280
msgid "Mark as seen" msgid "Mark as seen"
msgstr "" msgstr ""
#: mod/settings.php:607 #: mod/settings.php:611
msgid "Move to folder" msgid "Move to folder"
msgstr "" msgstr ""
#: mod/settings.php:608 #: mod/settings.php:612
msgid "Move to folder:" msgid "Move to folder:"
msgstr "" msgstr ""
#: mod/settings.php:622 #: mod/settings.php:626
msgid "Unable to find your profile. Please contact your admin." msgid "Unable to find your profile. Please contact your admin."
msgstr "" msgstr ""
#: mod/settings.php:660 src/Content/Widget.php:526 #: mod/settings.php:664 src/Content/Widget.php:526
msgid "Account Types" msgid "Account Types"
msgstr "" msgstr ""
#: mod/settings.php:661 #: mod/settings.php:665
msgid "Personal Page Subtypes" msgid "Personal Page Subtypes"
msgstr "" msgstr ""
#: mod/settings.php:662 #: mod/settings.php:666
msgid "Community Forum Subtypes" msgid "Community Forum Subtypes"
msgstr "" msgstr ""
#: mod/settings.php:669 src/Module/Admin/BaseUsers.php:107 #: mod/settings.php:673 src/Module/Admin/BaseUsers.php:107
msgid "Personal Page" msgid "Personal Page"
msgstr "" msgstr ""
#: mod/settings.php:670 #: mod/settings.php:674
msgid "Account for a personal profile." msgid "Account for a personal profile."
msgstr "" msgstr ""
#: mod/settings.php:673 src/Module/Admin/BaseUsers.php:108 #: mod/settings.php:677 src/Module/Admin/BaseUsers.php:108
msgid "Organisation Page" msgid "Organisation Page"
msgstr "" msgstr ""
#: mod/settings.php:674 #: mod/settings.php:678
msgid "" msgid ""
"Account for an organisation that automatically approves contact requests as " "Account for an organisation that automatically approves contact requests as "
"\"Followers\"." "\"Followers\"."
msgstr "" msgstr ""
#: mod/settings.php:677 src/Module/Admin/BaseUsers.php:109 #: mod/settings.php:681 src/Module/Admin/BaseUsers.php:109
msgid "News Page" msgid "News Page"
msgstr "" msgstr ""
#: mod/settings.php:678 #: mod/settings.php:682
msgid "" msgid ""
"Account for a news reflector that automatically approves contact requests as " "Account for a news reflector that automatically approves contact requests as "
"\"Followers\"." "\"Followers\"."
msgstr "" msgstr ""
#: mod/settings.php:681 src/Module/Admin/BaseUsers.php:110 #: mod/settings.php:685 src/Module/Admin/BaseUsers.php:110
msgid "Community Forum" msgid "Community Forum"
msgstr "" msgstr ""
#: mod/settings.php:682 #: mod/settings.php:686
msgid "Account for community discussions." msgid "Account for community discussions."
msgstr "" msgstr ""
#: mod/settings.php:685 src/Module/Admin/BaseUsers.php:100 #: mod/settings.php:689 src/Module/Admin/BaseUsers.php:100
msgid "Normal Account Page" msgid "Normal Account Page"
msgstr "" msgstr ""
#: mod/settings.php:686 #: mod/settings.php:690
msgid "" msgid ""
"Account for a regular personal profile that requires manual approval of " "Account for a regular personal profile that requires manual approval of "
"\"Friends\" and \"Followers\"." "\"Friends\" and \"Followers\"."
msgstr "" msgstr ""
#: mod/settings.php:689 src/Module/Admin/BaseUsers.php:101 #: mod/settings.php:693 src/Module/Admin/BaseUsers.php:101
msgid "Soapbox Page" msgid "Soapbox Page"
msgstr "" msgstr ""
#: mod/settings.php:690 #: mod/settings.php:694
msgid "" msgid ""
"Account for a public profile that automatically approves contact requests as " "Account for a public profile that automatically approves contact requests as "
"\"Followers\"." "\"Followers\"."
msgstr "" msgstr ""
#: mod/settings.php:693 src/Module/Admin/BaseUsers.php:102 #: mod/settings.php:697 src/Module/Admin/BaseUsers.php:102
msgid "Public Forum" msgid "Public Forum"
msgstr "" msgstr ""
#: mod/settings.php:694 #: mod/settings.php:698
msgid "Automatically approves all contact requests." msgid "Automatically approves all contact requests."
msgstr "" msgstr ""
#: mod/settings.php:697 src/Module/Admin/BaseUsers.php:103 #: mod/settings.php:701 src/Module/Admin/BaseUsers.php:103
msgid "Automatic Friend Page" msgid "Automatic Friend Page"
msgstr "" msgstr ""
#: mod/settings.php:698 #: mod/settings.php:702
msgid "" msgid ""
"Account for a popular profile that automatically approves contact requests " "Account for a popular profile that automatically approves contact requests "
"as \"Friends\"." "as \"Friends\"."
msgstr "" msgstr ""
#: mod/settings.php:701 #: mod/settings.php:705
msgid "Private Forum [Experimental]" msgid "Private Forum [Experimental]"
msgstr "" msgstr ""
#: mod/settings.php:702 #: mod/settings.php:706
msgid "Requires manual approval of contact requests." msgid "Requires manual approval of contact requests."
msgstr "" msgstr ""
#: mod/settings.php:713 #: mod/settings.php:717
msgid "OpenID:" msgid "OpenID:"
msgstr "" msgstr ""
#: mod/settings.php:713 #: mod/settings.php:717
msgid "(Optional) Allow this OpenID to login to this account." msgid "(Optional) Allow this OpenID to login to this account."
msgstr "" msgstr ""
#: mod/settings.php:721 #: mod/settings.php:725
msgid "Publish your profile in your local site directory?" msgid "Publish your profile in your local site directory?"
msgstr "" msgstr ""
#: mod/settings.php:721 #: mod/settings.php:725
#, php-format #, php-format
msgid "" msgid ""
"Your profile will be published in this node's <a href=\"%s\">local " "Your profile will be published in this node's <a href=\"%s\">local "
@ -1587,115 +1579,115 @@ msgid ""
"system settings." "system settings."
msgstr "" msgstr ""
#: mod/settings.php:727 #: mod/settings.php:731
#, php-format #, php-format
msgid "" msgid ""
"Your profile will also be published in the global friendica directories (e." "Your profile will also be published in the global friendica directories (e."
"g. <a href=\"%s\">%s</a>)." "g. <a href=\"%s\">%s</a>)."
msgstr "" msgstr ""
#: mod/settings.php:733 #: mod/settings.php:737
#, php-format #, php-format
msgid "Your Identity Address is <strong>'%s'</strong> or '%s'." msgid "Your Identity Address is <strong>'%s'</strong> or '%s'."
msgstr "" msgstr ""
#: mod/settings.php:744 #: mod/settings.php:748
msgid "Account Settings" msgid "Account Settings"
msgstr "" msgstr ""
#: mod/settings.php:752 #: mod/settings.php:756
msgid "Password Settings" msgid "Password Settings"
msgstr "" msgstr ""
#: mod/settings.php:753 src/Module/Register.php:162 #: mod/settings.php:757 src/Module/Register.php:162
msgid "New Password:" msgid "New Password:"
msgstr "" msgstr ""
#: mod/settings.php:753 #: mod/settings.php:757
msgid "" msgid ""
"Allowed characters are a-z, A-Z, 0-9 and special characters except white " "Allowed characters are a-z, A-Z, 0-9 and special characters except white "
"spaces, accentuated letters and colon (:)." "spaces, accentuated letters and colon (:)."
msgstr "" msgstr ""
#: mod/settings.php:754 src/Module/Register.php:163 #: mod/settings.php:758 src/Module/Register.php:163
msgid "Confirm:" msgid "Confirm:"
msgstr "" msgstr ""
#: mod/settings.php:754 #: mod/settings.php:758
msgid "Leave password fields blank unless changing" msgid "Leave password fields blank unless changing"
msgstr "" msgstr ""
#: mod/settings.php:755 #: mod/settings.php:759
msgid "Current Password:" msgid "Current Password:"
msgstr "" msgstr ""
#: mod/settings.php:755 #: mod/settings.php:759
msgid "Your current password to confirm the changes" msgid "Your current password to confirm the changes"
msgstr "" msgstr ""
#: mod/settings.php:756 #: mod/settings.php:760
msgid "Password:" msgid "Password:"
msgstr "" msgstr ""
#: mod/settings.php:756 #: mod/settings.php:760
msgid "Your current password to confirm the changes of the email address" msgid "Your current password to confirm the changes of the email address"
msgstr "" msgstr ""
#: mod/settings.php:759 #: mod/settings.php:763
msgid "Delete OpenID URL" msgid "Delete OpenID URL"
msgstr "" msgstr ""
#: mod/settings.php:761 #: mod/settings.php:765
msgid "Basic Settings" msgid "Basic Settings"
msgstr "" msgstr ""
#: mod/settings.php:762 src/Module/Profile/Profile.php:144 #: mod/settings.php:766 src/Module/Profile/Profile.php:144
msgid "Full Name:" msgid "Full Name:"
msgstr "" msgstr ""
#: mod/settings.php:763 #: mod/settings.php:767
msgid "Email Address:" msgid "Email Address:"
msgstr "" msgstr ""
#: mod/settings.php:764 #: mod/settings.php:768
msgid "Your Timezone:" msgid "Your Timezone:"
msgstr "" msgstr ""
#: mod/settings.php:765 #: mod/settings.php:769
msgid "Your Language:" msgid "Your Language:"
msgstr "" msgstr ""
#: mod/settings.php:765 #: mod/settings.php:769
msgid "" msgid ""
"Set the language we use to show you friendica interface and to send you " "Set the language we use to show you friendica interface and to send you "
"emails" "emails"
msgstr "" msgstr ""
#: mod/settings.php:766 #: mod/settings.php:770
msgid "Default Post Location:" msgid "Default Post Location:"
msgstr "" msgstr ""
#: mod/settings.php:767 #: mod/settings.php:771
msgid "Use Browser Location:" msgid "Use Browser Location:"
msgstr "" msgstr ""
#: mod/settings.php:769 #: mod/settings.php:773
msgid "Security and Privacy Settings" msgid "Security and Privacy Settings"
msgstr "" msgstr ""
#: mod/settings.php:771 #: mod/settings.php:775
msgid "Maximum Friend Requests/Day:" msgid "Maximum Friend Requests/Day:"
msgstr "" msgstr ""
#: mod/settings.php:771 mod/settings.php:781 #: mod/settings.php:775 mod/settings.php:785
msgid "(to prevent spam abuse)" msgid "(to prevent spam abuse)"
msgstr "" msgstr ""
#: mod/settings.php:773 #: mod/settings.php:777
msgid "Allow your profile to be searchable globally?" msgid "Allow your profile to be searchable globally?"
msgstr "" msgstr ""
#: mod/settings.php:773 #: mod/settings.php:777
msgid "" msgid ""
"Activate this setting if you want others to easily find and follow you. Your " "Activate this setting if you want others to easily find and follow you. Your "
"profile will be searchable on remote systems. This setting also determines " "profile will be searchable on remote systems. This setting also determines "
@ -1703,43 +1695,43 @@ msgid ""
"indexed or not." "indexed or not."
msgstr "" msgstr ""
#: mod/settings.php:774 #: mod/settings.php:778
msgid "Hide your contact/friend list from viewers of your profile?" msgid "Hide your contact/friend list from viewers of your profile?"
msgstr "" msgstr ""
#: mod/settings.php:774 #: mod/settings.php:778
msgid "" msgid ""
"A list of your contacts is displayed on your profile page. Activate this " "A list of your contacts is displayed on your profile page. Activate this "
"option to disable the display of your contact list." "option to disable the display of your contact list."
msgstr "" msgstr ""
#: mod/settings.php:775 #: mod/settings.php:779
msgid "Hide your profile details from anonymous viewers?" msgid "Hide your profile details from anonymous viewers?"
msgstr "" msgstr ""
#: mod/settings.php:775 #: mod/settings.php:779
msgid "" msgid ""
"Anonymous visitors will only see your profile picture, your display name and " "Anonymous visitors will only see your profile picture, your display name and "
"the nickname you are using on your profile page. Your public posts and " "the nickname you are using on your profile page. Your public posts and "
"replies will still be accessible by other means." "replies will still be accessible by other means."
msgstr "" msgstr ""
#: mod/settings.php:776 #: mod/settings.php:780
msgid "Make public posts unlisted" msgid "Make public posts unlisted"
msgstr "" msgstr ""
#: mod/settings.php:776 #: mod/settings.php:780
msgid "" msgid ""
"Your public posts will not appear on the community pages or in search " "Your public posts will not appear on the community pages or in search "
"results, nor be sent to relay servers. However they can still appear on " "results, nor be sent to relay servers. However they can still appear on "
"public feeds on remote servers." "public feeds on remote servers."
msgstr "" msgstr ""
#: mod/settings.php:777 #: mod/settings.php:781
msgid "Make all posted pictures accessible" msgid "Make all posted pictures accessible"
msgstr "" msgstr ""
#: mod/settings.php:777 #: mod/settings.php:781
msgid "" msgid ""
"This option makes every posted picture accessible via the direct link. This " "This option makes every posted picture accessible via the direct link. This "
"is a workaround for the problem that most other networks can't handle " "is a workaround for the problem that most other networks can't handle "
@ -1747,221 +1739,221 @@ msgid ""
"public on your photo albums though." "public on your photo albums though."
msgstr "" msgstr ""
#: mod/settings.php:778 #: mod/settings.php:782
msgid "Allow friends to post to your profile page?" msgid "Allow friends to post to your profile page?"
msgstr "" msgstr ""
#: mod/settings.php:778 #: mod/settings.php:782
msgid "" msgid ""
"Your contacts may write posts on your profile wall. These posts will be " "Your contacts may write posts on your profile wall. These posts will be "
"distributed to your contacts" "distributed to your contacts"
msgstr "" msgstr ""
#: mod/settings.php:779 #: mod/settings.php:783
msgid "Allow friends to tag your posts?" msgid "Allow friends to tag your posts?"
msgstr "" msgstr ""
#: mod/settings.php:779 #: mod/settings.php:783
msgid "Your contacts can add additional tags to your posts." msgid "Your contacts can add additional tags to your posts."
msgstr "" msgstr ""
#: mod/settings.php:780 #: mod/settings.php:784
msgid "Permit unknown people to send you private mail?" msgid "Permit unknown people to send you private mail?"
msgstr "" msgstr ""
#: mod/settings.php:780 #: mod/settings.php:784
msgid "" msgid ""
"Friendica network users may send you private messages even if they are not " "Friendica network users may send you private messages even if they are not "
"in your contact list." "in your contact list."
msgstr "" msgstr ""
#: mod/settings.php:781 #: mod/settings.php:785
msgid "Maximum private messages per day from unknown people:" msgid "Maximum private messages per day from unknown people:"
msgstr "" msgstr ""
#: mod/settings.php:783 #: mod/settings.php:787
msgid "Default Post Permissions" msgid "Default Post Permissions"
msgstr "" msgstr ""
#: mod/settings.php:787 #: mod/settings.php:791
msgid "Expiration settings" msgid "Expiration settings"
msgstr "" msgstr ""
#: mod/settings.php:788 #: mod/settings.php:792
msgid "Automatically expire posts after this many days:" msgid "Automatically expire posts after this many days:"
msgstr "" msgstr ""
#: mod/settings.php:788 #: mod/settings.php:792
msgid "If empty, posts will not expire. Expired posts will be deleted" msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr "" msgstr ""
#: mod/settings.php:789 #: mod/settings.php:793
msgid "Expire posts" msgid "Expire posts"
msgstr "" msgstr ""
#: mod/settings.php:789 #: mod/settings.php:793
msgid "When activated, posts and comments will be expired." msgid "When activated, posts and comments will be expired."
msgstr "" msgstr ""
#: mod/settings.php:790 #: mod/settings.php:794
msgid "Expire personal notes" msgid "Expire personal notes"
msgstr "" msgstr ""
#: mod/settings.php:790 #: mod/settings.php:794
msgid "" msgid ""
"When activated, the personal notes on your profile page will be expired." "When activated, the personal notes on your profile page will be expired."
msgstr "" msgstr ""
#: mod/settings.php:791 #: mod/settings.php:795
msgid "Expire starred posts" msgid "Expire starred posts"
msgstr "" msgstr ""
#: mod/settings.php:791 #: mod/settings.php:795
msgid "" msgid ""
"Starring posts keeps them from being expired. That behaviour is overwritten " "Starring posts keeps them from being expired. That behaviour is overwritten "
"by this setting." "by this setting."
msgstr "" msgstr ""
#: mod/settings.php:792 #: mod/settings.php:796
msgid "Expire photos" msgid "Expire photos"
msgstr "" msgstr ""
#: mod/settings.php:792 #: mod/settings.php:796
msgid "When activated, photos will be expired." msgid "When activated, photos will be expired."
msgstr "" msgstr ""
#: mod/settings.php:793 #: mod/settings.php:797
msgid "Only expire posts by others" msgid "Only expire posts by others"
msgstr "" msgstr ""
#: mod/settings.php:793 #: mod/settings.php:797
msgid "" msgid ""
"When activated, your own posts never expire. Then the settings above are " "When activated, your own posts never expire. Then the settings above are "
"only valid for posts you received." "only valid for posts you received."
msgstr "" msgstr ""
#: mod/settings.php:796 #: mod/settings.php:800
msgid "Notification Settings" msgid "Notification Settings"
msgstr "" msgstr ""
#: mod/settings.php:797 #: mod/settings.php:801
msgid "Send a notification email when:" msgid "Send a notification email when:"
msgstr "" msgstr ""
#: mod/settings.php:798 #: mod/settings.php:802
msgid "You receive an introduction" msgid "You receive an introduction"
msgstr "" msgstr ""
#: mod/settings.php:799 #: mod/settings.php:803
msgid "Your introductions are confirmed" msgid "Your introductions are confirmed"
msgstr "" msgstr ""
#: mod/settings.php:800 #: mod/settings.php:804
msgid "Someone writes on your profile wall" msgid "Someone writes on your profile wall"
msgstr "" msgstr ""
#: mod/settings.php:801 #: mod/settings.php:805
msgid "Someone writes a followup comment" msgid "Someone writes a followup comment"
msgstr "" msgstr ""
#: mod/settings.php:802 #: mod/settings.php:806
msgid "You receive a private message" msgid "You receive a private message"
msgstr "" msgstr ""
#: mod/settings.php:803 #: mod/settings.php:807
msgid "You receive a friend suggestion" msgid "You receive a friend suggestion"
msgstr "" msgstr ""
#: mod/settings.php:804 #: mod/settings.php:808
msgid "You are tagged in a post" msgid "You are tagged in a post"
msgstr "" msgstr ""
#: mod/settings.php:805 #: mod/settings.php:809
msgid "You are poked/prodded/etc. in a post" msgid "You are poked/prodded/etc. in a post"
msgstr "" msgstr ""
#: mod/settings.php:807 #: mod/settings.php:811
msgid "Create a desktop notification when:" msgid "Create a desktop notification when:"
msgstr "" msgstr ""
#: mod/settings.php:808 #: mod/settings.php:812
msgid "Someone liked your content" msgid "Someone liked your content"
msgstr "" msgstr ""
#: mod/settings.php:809 #: mod/settings.php:813
msgid "Someone shared your content" msgid "Someone shared your content"
msgstr "" msgstr ""
#: mod/settings.php:811 #: mod/settings.php:815
msgid "Activate desktop notifications" msgid "Activate desktop notifications"
msgstr "" msgstr ""
#: mod/settings.php:811 #: mod/settings.php:815
msgid "Show desktop popup on new notifications" msgid "Show desktop popup on new notifications"
msgstr "" msgstr ""
#: mod/settings.php:813 #: mod/settings.php:817
msgid "Text-only notification emails" msgid "Text-only notification emails"
msgstr "" msgstr ""
#: mod/settings.php:815 #: mod/settings.php:819
msgid "Send text only notification emails, without the html part" msgid "Send text only notification emails, without the html part"
msgstr "" msgstr ""
#: mod/settings.php:817 #: mod/settings.php:821
msgid "Show detailled notifications" msgid "Show detailled notifications"
msgstr "" msgstr ""
#: mod/settings.php:819 #: mod/settings.php:823
msgid "" msgid ""
"Per default, notifications are condensed to a single notification per item. " "Per default, notifications are condensed to a single notification per item. "
"When enabled every notification is displayed." "When enabled every notification is displayed."
msgstr "" msgstr ""
#: mod/settings.php:821 #: mod/settings.php:825
msgid "Show notifications of ignored contacts" msgid "Show notifications of ignored contacts"
msgstr "" msgstr ""
#: mod/settings.php:823 #: mod/settings.php:827
msgid "" msgid ""
"You don't see posts from ignored contacts. But you still see their comments. " "You don't see posts from ignored contacts. But you still see their comments. "
"This setting controls if you want to still receive regular notifications " "This setting controls if you want to still receive regular notifications "
"that are caused by ignored contacts or not." "that are caused by ignored contacts or not."
msgstr "" msgstr ""
#: mod/settings.php:825 #: mod/settings.php:829
msgid "Advanced Account/Page Type Settings" msgid "Advanced Account/Page Type Settings"
msgstr "" msgstr ""
#: mod/settings.php:826 #: mod/settings.php:830
msgid "Change the behaviour of this account for special situations" msgid "Change the behaviour of this account for special situations"
msgstr "" msgstr ""
#: mod/settings.php:829 #: mod/settings.php:833
msgid "Import Contacts" msgid "Import Contacts"
msgstr "" msgstr ""
#: mod/settings.php:830 #: mod/settings.php:834
msgid "" msgid ""
"Upload a CSV file that contains the handle of your followed accounts in the " "Upload a CSV file that contains the handle of your followed accounts in the "
"first column you exported from the old account." "first column you exported from the old account."
msgstr "" msgstr ""
#: mod/settings.php:831 #: mod/settings.php:835
msgid "Upload File" msgid "Upload File"
msgstr "" msgstr ""
#: mod/settings.php:833 #: mod/settings.php:837
msgid "Relocate" msgid "Relocate"
msgstr "" msgstr ""
#: mod/settings.php:834 #: mod/settings.php:838
msgid "" msgid ""
"If you have moved this profile from another server, and some of your " "If you have moved this profile from another server, and some of your "
"contacts don't receive your updates, try pushing this button." "contacts don't receive your updates, try pushing this button."
msgstr "" msgstr ""
#: mod/settings.php:835 #: mod/settings.php:839
msgid "Resend relocate message to contacts" msgid "Resend relocate message to contacts"
msgstr "" msgstr ""
@ -1975,7 +1967,7 @@ msgstr ""
msgid "Friend Suggestions" msgid "Friend Suggestions"
msgstr "" msgstr ""
#: mod/tagger.php:78 src/Content/Item.php:335 src/Model/Item.php:2662 #: mod/tagger.php:78 src/Content/Item.php:335 src/Model/Item.php:2670
msgid "photo" msgid "photo"
msgstr "" msgstr ""
@ -2729,7 +2721,7 @@ msgstr ""
msgid "%1$s poked %2$s" msgid "%1$s poked %2$s"
msgstr "" msgstr ""
#: src/Content/Item.php:327 src/Model/Item.php:2660 #: src/Content/Item.php:327 src/Model/Item.php:2668
msgid "event" msgid "event"
msgstr "" msgstr ""
@ -3080,8 +3072,8 @@ msgid ""
"<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s" "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%2$s</a> %3$s"
msgstr "" msgstr ""
#: src/Content/Text/BBCode.php:1185 src/Model/Item.php:3191 #: src/Content/Text/BBCode.php:1185 src/Model/Item.php:3199
#: src/Model/Item.php:3197 src/Model/Item.php:3198 #: src/Model/Item.php:3205 src/Model/Item.php:3206
msgid "Link to source" msgid "Link to source"
msgstr "" msgstr ""
@ -4253,33 +4245,33 @@ msgstr ""
msgid "Edit groups" msgid "Edit groups"
msgstr "" msgstr ""
#: src/Model/Item.php:1751 #: src/Model/Item.php:1761
#, php-format #, php-format
msgid "Detected languages in this post:\\n%s" msgid "Detected languages in this post:\\n%s"
msgstr "" msgstr ""
#: src/Model/Item.php:2664 #: src/Model/Item.php:2672
msgid "activity" msgid "activity"
msgstr "" msgstr ""
#: src/Model/Item.php:2666 #: src/Model/Item.php:2674
msgid "comment" msgid "comment"
msgstr "" msgstr ""
#: src/Model/Item.php:2669 #: src/Model/Item.php:2677
msgid "post" msgid "post"
msgstr "" msgstr ""
#: src/Model/Item.php:2806 #: src/Model/Item.php:2814
#, php-format #, php-format
msgid "Content warning: %s" msgid "Content warning: %s"
msgstr "" msgstr ""
#: src/Model/Item.php:3156 #: src/Model/Item.php:3164
msgid "bytes" msgid "bytes"
msgstr "" msgstr ""
#: src/Model/Item.php:3185 src/Model/Item.php:3186 #: src/Model/Item.php:3193 src/Model/Item.php:3194
msgid "View on separate page" msgid "View on separate page"
msgstr "" msgstr ""

View file

@ -39,28 +39,28 @@
<h2 class="settings-heading"><a href="javascript:;">{{$h_prv}}</a></h2> <h2 class="settings-heading"><a href="javascript:;">{{$h_prv}}</a></h2>
<div class="settings-content-block"> <div class="settings-content-block">
<input type="hidden" name="visibility" value="{{$visibility}}"/>
{{include file="field_input.tpl" field=$maxreq}} {{include file="field_input.tpl" field=$maxreq}}
{{$profile_in_dir nofilter}} {{$profile_in_dir nofilter}}
{{include file="field_checkbox.tpl" field=$profile_in_net_dir}} {{include file="field_checkbox.tpl" field=$profile_in_net_dir}}
{{include file="field_checkbox.tpl" field=$hide_friends}} {{if not $is_community}}{{include file="field_checkbox.tpl" field=$hide_friends}}{{/if}}
{{include file="field_checkbox.tpl" field=$hide_wall}} {{include file="field_checkbox.tpl" field=$hide_wall}}
{{include file="field_checkbox.tpl" field=$unlisted}} {{if not $is_community}}{{include file="field_checkbox.tpl" field=$unlisted}}{{/if}}
{{include file="field_checkbox.tpl" field=$accessiblephotos}} {{include file="field_checkbox.tpl" field=$accessiblephotos}}
{{if not $is_community}}
{{include file="field_checkbox.tpl" field=$blockwall}} {{include file="field_checkbox.tpl" field=$blockwall}}
{{include file="field_checkbox.tpl" field=$blocktags}} {{include file="field_checkbox.tpl" field=$blocktags}}
{{/if}}
{{include file="field_checkbox.tpl" field=$unkmail}} {{include file="field_checkbox.tpl" field=$unkmail}}
{{include file="field_input.tpl" field=$cntunkmail}} {{include file="field_input.tpl" field=$cntunkmail}}
{{$group_select nofilter}} {{$group_select nofilter}}
{{if not $is_community}}
<h3>{{$permissions}}</h3> <h3>{{$permissions}}</h3>
{{$aclselect nofilter}} {{$aclselect nofilter}}
{{/if}}
<div class="settings-submit-wrapper"> <div class="settings-submit-wrapper">
<input type="submit" name="submit" class="settings-submit" value="{{$submit}}"/> <input type="submit" name="submit" class="settings-submit" value="{{$submit}}"/>
</div> </div>

View file

@ -70,28 +70,29 @@
</div> </div>
<div id="privacy-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="privacy-settings"> <div id="privacy-settings-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="privacy-settings">
<div class="panel-body"> <div class="panel-body">
<input type="hidden" name="visibility" value="{{$visibility}}" />
{{include file="field_input.tpl" field=$maxreq}} {{include file="field_input.tpl" field=$maxreq}}
{{$profile_in_dir nofilter}} {{$profile_in_dir nofilter}}
{{include file="field_checkbox.tpl" field=$profile_in_net_dir}} {{include file="field_checkbox.tpl" field=$profile_in_net_dir}}
{{include file="field_checkbox.tpl" field=$hide_friends}} {{if not $is_community}}{{include file="field_checkbox.tpl" field=$hide_friends}}{{/if}}
{{include file="field_checkbox.tpl" field=$hide_wall}} {{include file="field_checkbox.tpl" field=$hide_wall}}
{{include file="field_checkbox.tpl" field=$unlisted}} {{if not $is_community}}{{include file="field_checkbox.tpl" field=$unlisted}}{{/if}}
{{include file="field_checkbox.tpl" field=$accessiblephotos}} {{include file="field_checkbox.tpl" field=$accessiblephotos}}
{{if not $is_community}}
{{include file="field_checkbox.tpl" field=$blockwall}} {{include file="field_checkbox.tpl" field=$blockwall}}
{{include file="field_checkbox.tpl" field=$blocktags}} {{include file="field_checkbox.tpl" field=$blocktags}}
{{/if}}
{{include file="field_checkbox.tpl" field=$unkmail}} {{include file="field_checkbox.tpl" field=$unkmail}}
{{include file="field_input.tpl" field=$cntunkmail}} {{include file="field_input.tpl" field=$cntunkmail}}
{{$group_select nofilter}} {{$group_select nofilter}}
{{if not $is_community}}
<h3>{{$permissions}}</h3> <h3>{{$permissions}}</h3>
{{$aclselect nofilter}} {{$aclselect nofilter}}
{{/if}}
</div> </div>
<div class="panel-footer"> <div class="panel-footer">
<button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button> <button type="submit" name="submit" class="btn btn-primary" value="{{$submit}}">{{$submit}}</button>