diff --git a/src/Content/Feature.php b/src/Content/Feature.php index eeb95b33c7..5c047425ac 100644 --- a/src/Content/Feature.php +++ b/src/Content/Feature.php @@ -26,13 +26,22 @@ use Friendica\DI; class Feature { + const ACCOUNTS = 'accounts'; const ADD_ABSTRACT = 'add_abstract'; + const ARCHIVE = 'archive'; const CATEGORIES = 'categories'; + const CHANNELS = 'channels'; + const CIRCLES = 'circles'; + const COMMUNITY = 'community'; const EXPLICIT_MENTIONS = 'explicit_mentions'; + const FOLDERS = 'folders'; const GROUPS = 'forumlist_profile'; const MEMBER_SINCE = 'profile_membersince'; + const NETWORKS = 'networks'; + const NOSHARER = 'nosharer'; const PHOTO_LOCATION = 'photo_location'; const PUBLIC_CALENDAR = 'public_calendar'; + const SEARCHES = 'searches'; const TAGCLOUD = 'tagadelic'; const TRENDING_TAGS = 'trending_tags'; @@ -46,21 +55,14 @@ class Feature */ public static function isEnabled(int $uid, $feature): bool { - $x = DI::config()->get('feature_lock', $feature, false); - - if ($x === false) { - $x = DI::pConfig()->get($uid, 'feature', $feature, false); + if (!DI::config()->get('feature_lock', $feature, false)) { + $enabled = DI::config()->get('feature', $feature) ?? self::getDefault($feature); + $enabled = DI::pConfig()->get($uid, 'feature', $feature) ?? $enabled; + } else { + $enabled = true; } - if ($x === false) { - $x = DI::config()->get('feature', $feature, false); - } - - if ($x === false) { - $x = self::getDefault($feature); - } - - $arr = ['uid' => $uid, 'feature' => $feature, 'enabled' => $x]; + $arr = ['uid' => $uid, 'feature' => $feature, 'enabled' => $enabled]; Hook::callAll('isEnabled', $arr); return (bool)$arr['enabled']; } @@ -74,8 +76,7 @@ class Feature */ private static function getDefault($feature) { - $f = self::get(); - foreach ($f as $cat) { + foreach (self::get() as $cat) { foreach ($cat as $feat) { if (is_array($feat) && $feat[0] === $feature) { return $feat[3]; @@ -105,8 +106,8 @@ class Feature 'general' => [ DI::l10n()->t('General Features'), //array('expire', DI::l10n()->t('Content Expiration'), DI::l10n()->t('Remove old posts/comments after a period of time')), - [self::PHOTO_LOCATION, DI::l10n()->t('Photo Location'), DI::l10n()->t("Photo metadata is normally stripped. This extracts the location \x28if present\x29 prior to stripping metadata and links it to a map."), false, DI::config()->get('feature_lock', self::PHOTO_LOCATION, false)], - [self::TRENDING_TAGS, DI::l10n()->t('Trending Tags'), DI::l10n()->t('Show a community page widget with a list of the most popular tags in recent public posts.'), false, DI::config()->get('feature_lock', self::TRENDING_TAGS, false)], + [self::PHOTO_LOCATION, DI::l10n()->t('Photo Location'), DI::l10n()->t("Photo metadata is normally stripped. This extracts the location \x28if present\x29 prior to stripping metadata and links it to a map."), false, DI::config()->get('feature_lock', self::PHOTO_LOCATION, false)], + [self::COMMUNITY, DI::l10n()->t('Display the community in the navigation'), DI::l10n()->t('If enabled, the community can be accessed via the navigation menu. Independant from this setting, the community timelines can always be accessed via the channels.'), true, DI::config()->get('feature_lock', self::COMMUNITY, false)], ], // Post composition @@ -122,10 +123,24 @@ class Feature [self::CATEGORIES, DI::l10n()->t('Post Categories'), DI::l10n()->t('Add categories to your posts'), false, DI::config()->get('feature_lock', self::CATEGORIES, false)], ], + // Widget visibility on the network stream + 'network' => [ + DI::l10n()->t('Network Widgets'), + [self::CIRCLES, DI::l10n()->t('Circles'), DI::l10n()->t('Display posts that have been created by accounts of the selected circle.'), true, false, true], + [self::GROUPS, DI::l10n()->t('Groups'), DI::l10n()->t('Display posts that have been distributed by the selected group.'), true, false, true], + [self::ARCHIVE, DI::l10n()->t('Archives'), DI::l10n()->t('Display an archive where posts can be selected by month and year.'), true, false, true], + [self::NETWORKS, DI::l10n()->t('Protocols'), DI::l10n()->t('Display posts with the selected protocols.'), true, false, true], + [self::ACCOUNTS, DI::l10n()->t('Account Types'), DI::l10n()->t('Display posts done by accounts with the selected account type.'), true, false, true], + [self::CHANNELS, DI::l10n()->t('Channels'), DI::l10n()->t('Display posts in the system channels and user defined channels.'), true, false, true], + [self::SEARCHES, DI::l10n()->t('Saved Searches'), DI::l10n()->t('Display posts that contain subscribed hashtags.'), true, false, true], + [self::FOLDERS, DI::l10n()->t('Saved Folders'), DI::l10n()->t('Display a list of folders in which posts are stored.'), true, false, true], + [self::NOSHARER, DI::l10n()->t('Own Contacts'), DI::l10n()->t('Include or exclude posts from subscribed accounts. This widget is not visible on all channels.'), true, false, true], + [self::TRENDING_TAGS, DI::l10n()->t('Trending Tags'), DI::l10n()->t('Display a list of the most popular tags in recent public posts.'), false, false, true], + ], + // Advanced Profile Settings 'advanced_profile' => [ DI::l10n()->t('Advanced Profile Settings'), - [self::GROUPS, DI::l10n()->t('List Groups'), DI::l10n()->t('Show visitors public groups at the Advanced Profile Page'), false, DI::config()->get('feature_lock', 'forumlist_profile', false)], [self::TAGCLOUD, DI::l10n()->t('Tag Cloud'), DI::l10n()->t('Provide a personal tag cloud on your profile page'), false, DI::config()->get('feature_lock', self::TAGCLOUD, false)], [self::MEMBER_SINCE, DI::l10n()->t('Display Membership Date'), DI::l10n()->t('Display membership date in profile'), false, DI::config()->get('feature_lock', self::MEMBER_SINCE, false)], ], diff --git a/src/Content/Nav.php b/src/Content/Nav.php index 001f9fb70e..3828a4954c 100644 --- a/src/Content/Nav.php +++ b/src/Content/Nav.php @@ -284,8 +284,8 @@ class Nav $gdirpath = Profile::zrl($this->config->get('system', 'directory'), true); } - if (($this->session->getLocalUserId() || $this->config->get('system', 'community_page_style') != Community::DISABLED_VISITOR) && - !($this->config->get('system', 'community_page_style') == Community::DISABLED)) { + if (Feature::isEnabled($this->session->getLocalUserId(), Feature::COMMUNITY) && (($this->session->getLocalUserId() || $this->config->get('system', 'community_page_style') != Community::DISABLED_VISITOR) && + !($this->config->get('system', 'community_page_style') == Community::DISABLED))) { $nav['community'] = ['community', $this->l10n->t('Community'), '', $this->l10n->t('Conversations on this and other servers')]; } diff --git a/src/Module/Admin/Features.php b/src/Module/Admin/Features.php index 1c7d669962..5df6cefd87 100644 --- a/src/Module/Admin/Features.php +++ b/src/Module/Admin/Features.php @@ -34,23 +34,16 @@ class Features extends BaseAdmin self::checkFormSecurityTokenRedirectOnError('/admin/features', 'admin_manage_features'); - $features = Feature::get(false); - - foreach ($features as $fname => $fdata) { + foreach (Feature::get(false) as $fdata) { foreach (array_slice($fdata, 1) as $f) { $feature = $f[0]; $feature_state = 'feature_' . $feature; $featurelock = 'featurelock_' . $feature; - if (!empty($_POST[$feature_state])) { - $val = intval($_POST[$feature_state]); - } else { - $val = 0; - } - DI::config()->set('feature', $feature, $val); + DI::config()->set('feature', $feature, !empty($_POST[$feature_state])); if (!empty($_POST[$featurelock])) { - DI::config()->set('feature_lock', $feature, 1); + DI::config()->set('feature_lock', $feature, true); } else { DI::config()->delete('feature_lock', $feature); } @@ -71,10 +64,11 @@ class Features extends BaseAdmin $features[$fname][0] = $fdata[0]; foreach (array_slice($fdata, 1) as $f) { $set = DI::config()->get('feature', $f[0], $f[3]); - $features[$fname][1][] = [ - ['feature_' . $f[0], $f[1], $set, $f[2]], - ['featurelock_' . $f[0], DI::l10n()->t('Lock feature %s', $f[1]), $f[4], ''] - ]; + $feature = [['feature_' . $f[0], $f[1], $set, $f[2]]]; + if (empty($f[5])) { + $feature[] = ['featurelock_' . $f[0], DI::l10n()->t('Lock feature %s', $f[1]), $f[4], '']; + } + $features[$fname][1][] = $feature; } } diff --git a/src/Module/Conversation/Network.php b/src/Module/Conversation/Network.php index d8cb9424b8..94b1bc77f6 100644 --- a/src/Module/Conversation/Network.php +++ b/src/Module/Conversation/Network.php @@ -130,20 +130,34 @@ class Network extends Timeline $o = ''; - $this->page['aside'] .= Circle::sidebarWidget($module, $module . '/circle', 'standard', $this->circleId); - $this->page['aside'] .= GroupManager::widget($this->session->getLocalUserId()); - $this->page['aside'] .= Widget::postedByYear($module . '/archive', $this->session->getLocalUserId(), false); - $this->page['aside'] .= Widget::networks($module, $this->network); - $this->page['aside'] .= Widget::accountTypes($module, $this->accountTypeString); - $this->page['aside'] .= Widget::channels($module, $this->selectedTab, $this->session->getLocalUserId()); - $this->page['aside'] .= Widget\SavedSearches::getHTML($this->args->getQueryString()); - $this->page['aside'] .= Widget::fileAs('filed', ''); - + if (Feature::isEnabled($this->session->getLocalUserId(), Feature::CIRCLES)) { + $this->page['aside'] .= Circle::sidebarWidget($module, $module . '/circle', 'standard', $this->circleId); + } + if (Feature::isEnabled($this->session->getLocalUserId(), Feature::GROUPS)) { + $this->page['aside'] .= GroupManager::widget($this->session->getLocalUserId()); + } + if (Feature::isEnabled($this->session->getLocalUserId(), Feature::ARCHIVE)) { + $this->page['aside'] .= Widget::postedByYear($module . '/archive', $this->session->getLocalUserId(), false); + } + if (Feature::isEnabled($this->session->getLocalUserId(), Feature::NETWORKS)) { + $this->page['aside'] .= Widget::networks($module, $this->network); + } + if (Feature::isEnabled($this->session->getLocalUserId(), Feature::ACCOUNTS)) { + $this->page['aside'] .= Widget::accountTypes($module, $this->accountTypeString); + } + if (Feature::isEnabled($this->session->getLocalUserId(), Feature::CHANNELS)) { + $this->page['aside'] .= Widget::channels($module, $this->selectedTab, $this->session->getLocalUserId()); + } + if (Feature::isEnabled($this->session->getLocalUserId(), Feature::SEARCHES)) { + $this->page['aside'] .= Widget\SavedSearches::getHTML($this->args->getQueryString()); + } + if (Feature::isEnabled($this->session->getLocalUserId(), Feature::FOLDERS)) { + $this->page['aside'] .= Widget::fileAs('filed', ''); + } if (($this->channel->isTimeline($this->selectedTab) || $this->userDefinedChannel->isTimeline($this->selectedTab, $this->session->getLocalUserId())) && - !in_array($this->selectedTab, [Channel::FOLLOWERS, Channel::FORYOU, Channel::DISCOVER])) { + !in_array($this->selectedTab, [Channel::FOLLOWERS, Channel::FORYOU, Channel::DISCOVER]) && Feature::isEnabled($this->session->getLocalUserId(), Feature::NOSHARER)) { $this->page['aside'] .= $this->getNoSharerWidget('network'); } - if (Feature::isEnabled($this->session->getLocalUserId(), Feature::TRENDING_TAGS)) { $this->page['aside'] .= TrendingTags::getHTML($this->selectedTab); } diff --git a/src/Module/Settings/Features.php b/src/Module/Settings/Features.php index 906e03629a..5da7721b7f 100644 --- a/src/Module/Settings/Features.php +++ b/src/Module/Settings/Features.php @@ -49,7 +49,7 @@ class Features extends BaseSettings BaseSettings::checkFormSecurityTokenRedirectOnError('/settings/features', 'settings_features'); foreach ($request as $k => $v) { if (strpos($k, 'feature_') === 0) { - $this->pConfig->set($this->session->getLocalUserId(), 'feature', substr($k, 8), ((intval($v)) ? 1 : 0)); + $this->pConfig->set($this->session->getLocalUserId(), 'feature', substr($k, 8), (bool)$v); } } } @@ -58,9 +58,8 @@ class Features extends BaseSettings { parent::content($request); - $arr = []; - $features = Feature::get(); - foreach ($features as $name => $feature) { + $arr = []; + foreach (Feature::get() as $name => $feature) { $arr[$name] = []; $arr[$name][0] = $feature[0]; foreach (array_slice($feature, 1) as $f) { diff --git a/view/lang/C/messages.po b/view/lang/C/messages.po index 5027f54afa..93fac341dd 100644 --- a/view/lang/C/messages.po +++ b/view/lang/C/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: 2024.06-dev\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-24 13:55+0000\n" +"POT-Creation-Date: 2024-03-25 07:19+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -280,7 +280,7 @@ msgstr "" msgid "Your message:" msgstr "" -#: mod/message.php:199 mod/message.php:354 src/Content/Conversation.php:370 +#: mod/message.php:199 mod/message.php:354 src/Content/Conversation.php:369 #: src/Module/Post/Edit.php:131 msgid "Upload photo" msgstr "" @@ -290,7 +290,7 @@ msgid "Insert web link" msgstr "" #: mod/message.php:201 mod/message.php:357 mod/photos.php:1297 -#: src/Content/Conversation.php:401 src/Content/Conversation.php:1586 +#: src/Content/Conversation.php:400 src/Content/Conversation.php:1583 #: src/Module/Item/Compose.php:206 src/Module/Post/Edit.php:145 #: src/Object/Post.php:624 msgid "Please wait" @@ -478,7 +478,7 @@ msgstr "" msgid "Do not show a status post for this upload" msgstr "" -#: mod/photos.php:732 mod/photos.php:1093 src/Content/Conversation.php:403 +#: mod/photos.php:732 mod/photos.php:1093 src/Content/Conversation.php:402 #: src/Module/Calendar/Event/Form.php:253 src/Module/Post/Edit.php:183 msgid "Permissions" msgstr "" @@ -491,7 +491,7 @@ msgstr "" msgid "Delete Album" msgstr "" -#: mod/photos.php:799 mod/photos.php:899 src/Content/Conversation.php:419 +#: mod/photos.php:799 mod/photos.php:899 src/Content/Conversation.php:417 #: src/Module/Contact/Follow.php:173 src/Module/Contact/Revoke.php:109 #: src/Module/Contact/Unfollow.php:126 #: src/Module/Media/Attachment/Browser.php:77 @@ -610,23 +610,23 @@ msgid "Comment" msgstr "" #: mod/photos.php:1139 mod/photos.php:1195 mod/photos.php:1275 -#: src/Content/Conversation.php:416 src/Module/Calendar/Event/Form.php:248 +#: src/Content/Conversation.php:414 src/Module/Calendar/Event/Form.php:248 #: src/Module/Item/Compose.php:201 src/Module/Post/Edit.php:165 #: src/Object/Post.php:1182 msgid "Preview" msgstr "" -#: mod/photos.php:1140 src/Content/Conversation.php:369 +#: mod/photos.php:1140 src/Content/Conversation.php:368 #: src/Module/Post/Edit.php:130 src/Object/Post.php:1170 msgid "Loading..." msgstr "" -#: mod/photos.php:1232 src/Content/Conversation.php:1501 +#: mod/photos.php:1232 src/Content/Conversation.php:1498 #: src/Object/Post.php:274 msgid "Select" msgstr "" -#: mod/photos.php:1233 src/Content/Conversation.php:1502 +#: mod/photos.php:1233 src/Content/Conversation.php:1499 #: src/Module/Moderation/Users/Active.php:136 #: src/Module/Moderation/Users/Blocked.php:136 #: src/Module/Moderation/Users/Index.php:151 @@ -1239,281 +1239,281 @@ msgid_plural " reshared this" msgstr[0] "" msgstr[1] "" -#: src/Content/Conversation.php:338 +#: src/Content/Conversation.php:337 msgid "Visible to everybody" msgstr "" -#: src/Content/Conversation.php:339 src/Module/Item/Compose.php:200 +#: src/Content/Conversation.php:338 src/Module/Item/Compose.php:200 #: src/Object/Post.php:1181 msgid "Please enter a image/video/audio/webpage URL:" msgstr "" -#: src/Content/Conversation.php:340 +#: src/Content/Conversation.php:339 msgid "Tag term:" msgstr "" -#: src/Content/Conversation.php:341 src/Module/Filer/SaveTag.php:73 +#: src/Content/Conversation.php:340 src/Module/Filer/SaveTag.php:73 msgid "Save to Folder:" msgstr "" -#: src/Content/Conversation.php:342 +#: src/Content/Conversation.php:341 msgid "Where are you right now?" msgstr "" -#: src/Content/Conversation.php:343 +#: src/Content/Conversation.php:342 msgid "Delete item(s)?" msgstr "" -#: src/Content/Conversation.php:355 src/Module/Item/Compose.php:175 +#: src/Content/Conversation.php:354 src/Module/Item/Compose.php:175 msgid "Created at" msgstr "" -#: src/Content/Conversation.php:365 +#: src/Content/Conversation.php:364 msgid "New Post" msgstr "" -#: src/Content/Conversation.php:368 +#: src/Content/Conversation.php:367 msgid "Share" msgstr "" -#: src/Content/Conversation.php:371 src/Module/Post/Edit.php:132 +#: src/Content/Conversation.php:370 src/Module/Post/Edit.php:132 msgid "upload photo" msgstr "" -#: src/Content/Conversation.php:372 src/Module/Post/Edit.php:133 +#: src/Content/Conversation.php:371 src/Module/Post/Edit.php:133 msgid "Attach file" msgstr "" -#: src/Content/Conversation.php:373 src/Module/Post/Edit.php:134 +#: src/Content/Conversation.php:372 src/Module/Post/Edit.php:134 msgid "attach file" msgstr "" -#: src/Content/Conversation.php:374 src/Module/Item/Compose.php:190 +#: src/Content/Conversation.php:373 src/Module/Item/Compose.php:190 #: src/Module/Post/Edit.php:171 src/Object/Post.php:1171 msgid "Bold" msgstr "" -#: src/Content/Conversation.php:375 src/Module/Item/Compose.php:191 +#: src/Content/Conversation.php:374 src/Module/Item/Compose.php:191 #: src/Module/Post/Edit.php:172 src/Object/Post.php:1172 msgid "Italic" msgstr "" -#: src/Content/Conversation.php:376 src/Module/Item/Compose.php:192 +#: src/Content/Conversation.php:375 src/Module/Item/Compose.php:192 #: src/Module/Post/Edit.php:173 src/Object/Post.php:1173 msgid "Underline" msgstr "" -#: src/Content/Conversation.php:377 src/Module/Item/Compose.php:193 +#: src/Content/Conversation.php:376 src/Module/Item/Compose.php:193 #: src/Module/Post/Edit.php:174 src/Object/Post.php:1175 msgid "Quote" msgstr "" -#: src/Content/Conversation.php:378 src/Module/Item/Compose.php:194 +#: src/Content/Conversation.php:377 src/Module/Item/Compose.php:194 #: src/Module/Post/Edit.php:175 src/Object/Post.php:1176 msgid "Add emojis" msgstr "" -#: src/Content/Conversation.php:379 src/Module/Item/Compose.php:195 +#: src/Content/Conversation.php:378 src/Module/Item/Compose.php:195 #: src/Object/Post.php:1174 msgid "Content Warning" msgstr "" -#: src/Content/Conversation.php:380 src/Module/Item/Compose.php:196 +#: src/Content/Conversation.php:379 src/Module/Item/Compose.php:196 #: src/Module/Post/Edit.php:176 src/Object/Post.php:1177 msgid "Code" msgstr "" -#: src/Content/Conversation.php:381 src/Module/Item/Compose.php:197 +#: src/Content/Conversation.php:380 src/Module/Item/Compose.php:197 #: src/Object/Post.php:1178 msgid "Image" msgstr "" -#: src/Content/Conversation.php:382 src/Module/Item/Compose.php:198 +#: src/Content/Conversation.php:381 src/Module/Item/Compose.php:198 #: src/Module/Post/Edit.php:177 src/Object/Post.php:1179 msgid "Link" msgstr "" -#: src/Content/Conversation.php:383 src/Module/Item/Compose.php:199 +#: src/Content/Conversation.php:382 src/Module/Item/Compose.php:199 #: src/Module/Post/Edit.php:178 src/Object/Post.php:1180 msgid "Link or Media" msgstr "" -#: src/Content/Conversation.php:384 +#: src/Content/Conversation.php:383 msgid "Video" msgstr "" -#: src/Content/Conversation.php:385 src/Module/Item/Compose.php:202 +#: src/Content/Conversation.php:384 src/Module/Item/Compose.php:202 #: src/Module/Post/Edit.php:141 msgid "Set your location" msgstr "" -#: src/Content/Conversation.php:386 src/Module/Post/Edit.php:142 +#: src/Content/Conversation.php:385 src/Module/Post/Edit.php:142 msgid "set location" msgstr "" -#: src/Content/Conversation.php:387 src/Module/Post/Edit.php:143 +#: src/Content/Conversation.php:386 src/Module/Post/Edit.php:143 msgid "Clear browser location" msgstr "" -#: src/Content/Conversation.php:388 src/Module/Post/Edit.php:144 +#: src/Content/Conversation.php:387 src/Module/Post/Edit.php:144 msgid "clear location" msgstr "" -#: src/Content/Conversation.php:390 src/Module/Item/Compose.php:207 +#: src/Content/Conversation.php:389 src/Module/Item/Compose.php:207 #: src/Module/Post/Edit.php:157 msgid "Set title" msgstr "" -#: src/Content/Conversation.php:392 src/Module/Item/Compose.php:208 +#: src/Content/Conversation.php:391 src/Module/Item/Compose.php:208 #: src/Module/Post/Edit.php:159 msgid "Categories (comma-separated list)" msgstr "" -#: src/Content/Conversation.php:397 src/Module/Item/Compose.php:224 +#: src/Content/Conversation.php:396 src/Module/Item/Compose.php:224 msgid "Scheduled at" msgstr "" -#: src/Content/Conversation.php:402 src/Module/Post/Edit.php:146 +#: src/Content/Conversation.php:401 src/Module/Post/Edit.php:146 msgid "Permission settings" msgstr "" -#: src/Content/Conversation.php:412 src/Module/Post/Edit.php:155 +#: src/Content/Conversation.php:410 src/Module/Post/Edit.php:155 msgid "Public post" msgstr "" -#: src/Content/Conversation.php:426 src/Content/Widget/VCard.php:130 +#: src/Content/Conversation.php:424 src/Content/Widget/VCard.php:130 #: src/Model/Profile.php:482 src/Module/Admin/Logs/View.php:92 #: src/Module/Post/Edit.php:181 msgid "Message" msgstr "" -#: src/Content/Conversation.php:427 src/Module/Post/Edit.php:182 +#: src/Content/Conversation.php:425 src/Module/Post/Edit.php:182 #: src/Module/Settings/TwoFactor/Trusted.php:143 msgid "Browser" msgstr "" -#: src/Content/Conversation.php:429 src/Module/Post/Edit.php:185 +#: src/Content/Conversation.php:427 src/Module/Post/Edit.php:185 msgid "Open Compose page" msgstr "" -#: src/Content/Conversation.php:597 +#: src/Content/Conversation.php:594 msgid "remove" msgstr "" -#: src/Content/Conversation.php:601 +#: src/Content/Conversation.php:598 msgid "Delete Selected Items" msgstr "" -#: src/Content/Conversation.php:729 src/Content/Conversation.php:732 -#: src/Content/Conversation.php:735 src/Content/Conversation.php:738 -#: src/Content/Conversation.php:741 +#: src/Content/Conversation.php:726 src/Content/Conversation.php:729 +#: src/Content/Conversation.php:732 src/Content/Conversation.php:735 +#: src/Content/Conversation.php:738 #, php-format msgid "You had been addressed (%s)." msgstr "" -#: src/Content/Conversation.php:744 +#: src/Content/Conversation.php:741 #, php-format msgid "You are following %s." msgstr "" -#: src/Content/Conversation.php:749 +#: src/Content/Conversation.php:746 #, php-format msgid "You subscribed to %s." msgstr "" -#: src/Content/Conversation.php:751 +#: src/Content/Conversation.php:748 msgid "You subscribed to one or more tags in this post." msgstr "" -#: src/Content/Conversation.php:771 +#: src/Content/Conversation.php:768 #, php-format msgid "%s reshared this." msgstr "" -#: src/Content/Conversation.php:773 +#: src/Content/Conversation.php:770 msgid "Reshared" msgstr "" -#: src/Content/Conversation.php:773 +#: src/Content/Conversation.php:770 #, php-format msgid "Reshared by %s <%s>" msgstr "" -#: src/Content/Conversation.php:776 +#: src/Content/Conversation.php:773 #, php-format msgid "%s is participating in this thread." msgstr "" -#: src/Content/Conversation.php:779 +#: src/Content/Conversation.php:776 msgid "Stored for general reasons" msgstr "" -#: src/Content/Conversation.php:782 +#: src/Content/Conversation.php:779 msgid "Global post" msgstr "" -#: src/Content/Conversation.php:785 +#: src/Content/Conversation.php:782 msgid "Sent via an relay server" msgstr "" -#: src/Content/Conversation.php:785 +#: src/Content/Conversation.php:782 #, php-format msgid "Sent via the relay server %s <%s>" msgstr "" -#: src/Content/Conversation.php:788 +#: src/Content/Conversation.php:785 msgid "Fetched" msgstr "" -#: src/Content/Conversation.php:788 +#: src/Content/Conversation.php:785 #, php-format msgid "Fetched because of %s <%s>" msgstr "" -#: src/Content/Conversation.php:791 +#: src/Content/Conversation.php:788 msgid "Stored because of a child post to complete this thread." msgstr "" -#: src/Content/Conversation.php:794 +#: src/Content/Conversation.php:791 msgid "Local delivery" msgstr "" -#: src/Content/Conversation.php:797 +#: src/Content/Conversation.php:794 msgid "Stored because of your activity (like, comment, star, ...)" msgstr "" -#: src/Content/Conversation.php:800 +#: src/Content/Conversation.php:797 msgid "Distributed" msgstr "" -#: src/Content/Conversation.php:803 +#: src/Content/Conversation.php:800 msgid "Pushed to us" msgstr "" -#: src/Content/Conversation.php:1529 src/Object/Post.php:261 +#: src/Content/Conversation.php:1526 src/Object/Post.php:261 msgid "Pinned item" msgstr "" -#: src/Content/Conversation.php:1546 src/Object/Post.php:563 +#: src/Content/Conversation.php:1543 src/Object/Post.php:563 #: src/Object/Post.php:564 #, php-format msgid "View %s's profile @ %s" msgstr "" -#: src/Content/Conversation.php:1559 src/Object/Post.php:551 +#: src/Content/Conversation.php:1556 src/Object/Post.php:551 msgid "Categories:" msgstr "" -#: src/Content/Conversation.php:1560 src/Object/Post.php:552 +#: src/Content/Conversation.php:1557 src/Object/Post.php:552 msgid "Filed under:" msgstr "" -#: src/Content/Conversation.php:1568 src/Object/Post.php:577 +#: src/Content/Conversation.php:1565 src/Object/Post.php:577 #, php-format msgid "%s from %s" msgstr "" -#: src/Content/Conversation.php:1584 +#: src/Content/Conversation.php:1581 msgid "View in context" msgstr "" @@ -1669,13 +1669,14 @@ msgid "" msgstr "" #: src/Content/Feature.php:109 -msgid "Trending Tags" +msgid "Display the community in the navigation" msgstr "" #: src/Content/Feature.php:109 msgid "" -"Show a community page widget with a list of the most popular tags in recent " -"public posts." +"If enabled, the community can be accessed via the navigation menu. " +"Independant from this setting, the community timelines can always be " +"accessed via the channels." msgstr "" #: src/Content/Feature.php:114 @@ -1716,51 +1717,131 @@ msgid "Add categories to your posts" msgstr "" #: src/Content/Feature.php:127 -msgid "Advanced Profile Settings" +msgid "Network Widgets" +msgstr "" + +#: src/Content/Feature.php:128 src/Content/Widget.php:216 +#: src/Model/Circle.php:601 src/Module/Contact.php:400 +#: src/Module/Welcome.php:76 +msgid "Circles" msgstr "" #: src/Content/Feature.php:128 -msgid "List Groups" +msgid "" +"Display posts that have been created by accounts of the selected circle." msgstr "" -#: src/Content/Feature.php:128 -msgid "Show visitors public groups at the Advanced Profile Page" +#: src/Content/Feature.php:129 src/Content/GroupManager.php:147 +#: src/Content/Nav.php:278 src/Content/Text/HTML.php:881 +#: src/Content/Widget.php:538 src/Model/User.php:1385 +msgid "Groups" msgstr "" #: src/Content/Feature.php:129 -msgid "Tag Cloud" +msgid "Display posts that have been distributed by the selected group." msgstr "" -#: src/Content/Feature.php:129 -msgid "Provide a personal tag cloud on your profile page" +#: src/Content/Feature.php:130 src/Content/Widget.php:507 +msgid "Archives" msgstr "" #: src/Content/Feature.php:130 -msgid "Display Membership Date" +msgid "Display an archive where posts can be selected by month and year." msgstr "" -#: src/Content/Feature.php:130 -msgid "Display membership date in profile" +#: src/Content/Feature.php:131 src/Content/Widget.php:289 +msgid "Protocols" +msgstr "" + +#: src/Content/Feature.php:131 +msgid "Display posts with the selected protocols." +msgstr "" + +#: src/Content/Feature.php:132 src/Content/Widget.php:544 +#: src/Module/Settings/Account.php:442 +msgid "Account Types" +msgstr "" + +#: src/Content/Feature.php:132 +msgid "Display posts done by accounts with the selected account type." +msgstr "" + +#: src/Content/Feature.php:133 src/Content/Widget.php:593 +#: src/Module/Admin/Site.php:474 src/Module/BaseSettings.php:125 +#: src/Module/Settings/Channels.php:219 src/Module/Settings/Display.php:318 +msgid "Channels" +msgstr "" + +#: src/Content/Feature.php:133 +msgid "Display posts in the system channels and user defined channels." +msgstr "" + +#: src/Content/Feature.php:134 src/Content/Widget/SavedSearches.php:60 +msgid "Saved Searches" +msgstr "" + +#: src/Content/Feature.php:134 +msgid "Display posts that contain subscribed hashtags." +msgstr "" + +#: src/Content/Feature.php:135 src/Content/Widget.php:319 +msgid "Saved Folders" msgstr "" #: src/Content/Feature.php:135 -msgid "Advanced Calendar Settings" +msgid "Display a list of folders in which posts are stored." msgstr "" -#: src/Content/Feature.php:136 -msgid "Allow anonymous access to your calendar" +#: src/Content/Feature.php:136 src/Module/Conversation/Timeline.php:196 +msgid "Own Contacts" msgstr "" #: src/Content/Feature.php:136 msgid "" -"Allows anonymous visitors to consult your calendar and your public events. " -"Contact birthday events are private to you." +"Include or exclude posts from subscribed accounts. This widget is not " +"visible on all channels." msgstr "" -#: src/Content/GroupManager.php:147 src/Content/Nav.php:278 -#: src/Content/Text/HTML.php:881 src/Content/Widget.php:538 -#: src/Model/User.php:1385 -msgid "Groups" +#: src/Content/Feature.php:137 +msgid "Trending Tags" +msgstr "" + +#: src/Content/Feature.php:137 +msgid "Display a list of the most popular tags in recent public posts." +msgstr "" + +#: src/Content/Feature.php:142 +msgid "Advanced Profile Settings" +msgstr "" + +#: src/Content/Feature.php:143 +msgid "Tag Cloud" +msgstr "" + +#: src/Content/Feature.php:143 +msgid "Provide a personal tag cloud on your profile page" +msgstr "" + +#: src/Content/Feature.php:144 +msgid "Display Membership Date" +msgstr "" + +#: src/Content/Feature.php:144 +msgid "Display membership date in profile" +msgstr "" + +#: src/Content/Feature.php:149 +msgid "Advanced Calendar Settings" +msgstr "" + +#: src/Content/Feature.php:150 +msgid "Allow anonymous access to your calendar" +msgstr "" + +#: src/Content/Feature.php:150 +msgid "" +"Allows anonymous visitors to consult your calendar and your public events. " +"Contact birthday events are private to you." msgstr "" #: src/Content/GroupManager.php:149 @@ -2296,11 +2377,6 @@ msgstr "" msgid "Local Directory" msgstr "" -#: src/Content/Widget.php:216 src/Model/Circle.php:601 -#: src/Module/Contact.php:400 src/Module/Welcome.php:76 -msgid "Circles" -msgstr "" - #: src/Content/Widget.php:218 msgid "Everyone" msgstr "" @@ -2318,18 +2394,10 @@ msgstr "" msgid "All Contacts" msgstr "" -#: src/Content/Widget.php:289 -msgid "Protocols" -msgstr "" - #: src/Content/Widget.php:291 msgid "All Protocols" msgstr "" -#: src/Content/Widget.php:319 -msgid "Saved Folders" -msgstr "" - #: src/Content/Widget.php:321 src/Content/Widget.php:352 msgid "Everything" msgstr "" @@ -2345,10 +2413,6 @@ msgid_plural "%d contacts in common" msgstr[0] "" msgstr[1] "" -#: src/Content/Widget.php:507 -msgid "Archives" -msgstr "" - #: src/Content/Widget.php:515 msgid "On this date" msgstr "" @@ -2369,20 +2433,10 @@ msgstr "" msgid "Relays" msgstr "" -#: src/Content/Widget.php:544 src/Module/Settings/Account.php:442 -msgid "Account Types" -msgstr "" - #: src/Content/Widget.php:546 src/Module/Moderation/BaseUsers.php:69 msgid "All" msgstr "" -#: src/Content/Widget.php:593 src/Module/Admin/Site.php:474 -#: src/Module/BaseSettings.php:125 src/Module/Settings/Channels.php:219 -#: src/Module/Settings/Display.php:318 -msgid "Channels" -msgstr "" - #: src/Content/Widget/CalendarExport.php:56 msgid "Export" msgstr "" @@ -2414,10 +2468,6 @@ msgstr "" msgid "Remove term" msgstr "" -#: src/Content/Widget/SavedSearches.php:60 -msgid "Saved Searches" -msgstr "" - #: src/Content/Widget/TrendingTags.php:52 #, php-format msgid "Trending Tags (last %d hour)" @@ -3030,18 +3080,18 @@ msgstr "" msgid "The debug logfile '%s' is not usable. No logging possible (error: '%s')" msgstr "" -#: src/Core/Renderer.php:89 src/Core/Renderer.php:118 src/Core/Renderer.php:147 -#: src/Core/Renderer.php:181 src/Render/FriendicaSmartyEngine.php:60 +#: src/Core/Renderer.php:92 src/Core/Renderer.php:121 src/Core/Renderer.php:150 +#: src/Core/Renderer.php:184 src/Render/FriendicaSmartyEngine.php:60 msgid "" "Friendica can't display this page at the moment, please contact the " "administrator." msgstr "" -#: src/Core/Renderer.php:143 +#: src/Core/Renderer.php:146 msgid "template engine cannot be registered without a name." msgstr "" -#: src/Core/Renderer.php:177 +#: src/Core/Renderer.php:180 msgid "template engine is not registered!" msgstr "" @@ -3988,14 +4038,14 @@ msgstr "" msgid "Addon %s failed to install." msgstr "" -#: src/Module/Admin/Addons/Index.php:69 src/Module/Admin/Features.php:86 +#: src/Module/Admin/Addons/Index.php:69 src/Module/Admin/Features.php:80 #: src/Module/Admin/Logs/Settings.php:87 src/Module/Admin/Site.php:460 #: src/Module/Admin/Themes/Index.php:113 src/Module/Admin/Tos.php:86 #: src/Module/Settings/Account.php:551 src/Module/Settings/Addons.php:78 #: src/Module/Settings/Connectors.php:160 #: src/Module/Settings/Connectors.php:246 #: src/Module/Settings/Delegation.php:193 src/Module/Settings/Display.php:312 -#: src/Module/Settings/Features.php:76 +#: src/Module/Settings/Features.php:75 msgid "Save Settings" msgstr "" @@ -4070,12 +4120,12 @@ msgstr "" msgid "Attempt to execute this update step automatically" msgstr "" -#: src/Module/Admin/Features.php:76 +#: src/Module/Admin/Features.php:69 #, php-format msgid "Lock feature %s" msgstr "" -#: src/Module/Admin/Features.php:84 +#: src/Module/Admin/Features.php:78 msgid "Manage Additional Features" msgstr "" @@ -4085,7 +4135,7 @@ msgstr "" msgid "Other" msgstr "" -#: src/Module/Admin/Federation.php:160 src/Module/Admin/Federation.php:409 +#: src/Module/Admin/Federation.php:160 src/Module/Admin/Federation.php:408 msgid "unknown" msgstr "" @@ -4149,7 +4199,7 @@ msgstr "" msgid "Federation Statistics" msgstr "" -#: src/Module/Admin/Federation.php:225 +#: src/Module/Admin/Federation.php:224 #, php-format msgid "" "Currently this node is aware of %2$s node (%3$s active users last month, " @@ -5848,7 +5898,7 @@ msgstr "" msgid "Missing parameters" msgstr "" -#: src/Module/Api/Mastodon/Statuses/Bookmark.php:51 +#: src/Module/Api/Mastodon/Statuses/Bookmark.php:50 msgid "Only starting posts can be bookmarked" msgstr "" @@ -6621,8 +6671,8 @@ msgstr "" #: src/Module/Contact/Follow.php:170 src/Module/Contact/Profile.php:407 #: src/Module/Contact/Unfollow.php:129 -#: src/Module/Moderation/Blocklist/Contact.php:133 -#: src/Module/Moderation/Reports.php:104 +#: src/Module/Moderation/Blocklist/Contact.php:131 +#: src/Module/Moderation/Reports.php:102 #: src/Module/Notifications/Introductions.php:129 #: src/Module/Notifications/Introductions.php:198 msgid "Profile URL" @@ -7065,28 +7115,24 @@ msgstr "" msgid "Not available." msgstr "" -#: src/Module/Conversation/Network.php:200 +#: src/Module/Conversation/Network.php:214 msgid "No such circle" msgstr "" -#: src/Module/Conversation/Network.php:204 +#: src/Module/Conversation/Network.php:218 #, php-format msgid "Circle: %s" msgstr "" -#: src/Module/Conversation/Network.php:223 +#: src/Module/Conversation/Network.php:237 #, php-format msgid "Error %d (%s) while fetching the timeline." msgstr "" -#: src/Module/Conversation/Network.php:300 +#: src/Module/Conversation/Network.php:314 msgid "Network feed not available." msgstr "" -#: src/Module/Conversation/Timeline.php:196 -msgid "Own Contacts" -msgstr "" - #: src/Module/Conversation/Timeline.php:200 msgid "Include" msgstr "" @@ -7973,28 +8019,28 @@ msgstr "" msgid "Reason" msgstr "" -#: src/Module/Moderation/Blocklist/Contact.php:130 +#: src/Module/Moderation/Blocklist/Contact.php:128 #, php-format msgid "%s total blocked contact" msgid_plural "%s total blocked contacts" msgstr[0] "" msgstr[1] "" -#: src/Module/Moderation/Blocklist/Contact.php:133 +#: src/Module/Moderation/Blocklist/Contact.php:131 msgid "URL of the remote contact to block." msgstr "" -#: src/Module/Moderation/Blocklist/Contact.php:134 +#: src/Module/Moderation/Blocklist/Contact.php:132 msgid "Also purge contact" msgstr "" -#: src/Module/Moderation/Blocklist/Contact.php:134 +#: src/Module/Moderation/Blocklist/Contact.php:132 msgid "" "Removes all content related to this contact from the node. Keeps the contact " "record. This action cannot be undone." msgstr "" -#: src/Module/Moderation/Blocklist/Contact.php:135 +#: src/Module/Moderation/Blocklist/Contact.php:133 #: src/Module/Moderation/Blocklist/Server/Import.php:124 msgid "Block Reason" msgstr "" @@ -8540,14 +8586,14 @@ msgstr "" msgid "Category" msgstr "" -#: src/Module/Moderation/Reports.php:101 +#: src/Module/Moderation/Reports.php:99 #, php-format msgid "%s total report" msgid_plural "%s total reports" msgstr[0] "" msgstr[1] "" -#: src/Module/Moderation/Reports.php:104 +#: src/Module/Moderation/Reports.php:102 msgid "URL of the reported contact." msgstr "" @@ -10775,7 +10821,7 @@ msgstr "" msgid "Default calendar view:" msgstr "" -#: src/Module/Settings/Features.php:74 +#: src/Module/Settings/Features.php:73 msgid "Additional Features" msgstr "" diff --git a/view/theme/frio/templates/admin/features.tpl b/view/theme/frio/templates/admin/features.tpl index 3fe63bdc28..1dd12d6c06 100644 --- a/view/theme/frio/templates/admin/features.tpl +++ b/view/theme/frio/templates/admin/features.tpl @@ -18,7 +18,9 @@ {{foreach $f.1 as $fcat}}
{{include file="field_checkbox.tpl" field=$fcat.0}} - {{include file="field_checkbox.tpl" field=$fcat.1}} + {{if $fcat.1}} + {{include file="field_checkbox.tpl" field=$fcat.1}} + {{/if}}
{{/foreach}}