]> git.mxchange.org Git - friendica.git/commitdiff
Configuration for widgets
authorMichael <heluecht@pirati.ca>
Sun, 24 Mar 2024 20:00:19 +0000 (20:00 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 25 Mar 2024 07:38:36 +0000 (07:38 +0000)
src/Content/Feature.php
src/Content/Nav.php
src/Module/Admin/Features.php
src/Module/Conversation/Network.php
src/Module/Settings/Features.php
view/lang/C/messages.po
view/theme/frio/templates/admin/features.tpl

index eeb95b33c7602a19f95afc3a979a22630412faba..5c047425ac88d779e30ba9bc89bbcce90adf62a9 100644 (file)
@@ -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 ($x === false) {
-                       $x = DI::config()->get('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 = 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)],
                        ],
index 001f9fb70e0ac8431c7cc4d124b3668540bd959b..3828a4954c63399e895c605a8c27dc1bdddbe84b 100644 (file)
@@ -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')];
                }
 
index 1c7d669962223233e7fea05afc18c3e299a6948f..5df6cefd87ff74f98b24a600c467dc1c07985f5c 100644 (file)
@@ -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;
                        }
                }
 
index d8cb9424b8c3e5db6216535e6bec78bd4c282b1b..94b1bc77f68cbc3e43c1d87a2ba8ecc2bba38df3 100644 (file)
@@ -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);
                }
index 906e03629a553efaf1e5d2b3064971941fb1d3a3..5da7721b7fd9c642c2213c1e619aa8dc35024c53 100644 (file)
@@ -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) {
index 5027f54afa521e9e5464ae398707979a134d5c9a..93fac341ddebe63f02fb81a15bbdc297565313a9 100644 (file)
@@ -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 <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\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 "<button type=\"button\" %2$s>%1$d people</button> reshared this"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/Content/Conversation.php:338
+#: src/Content/Conversation.php:337
 msgid "Visible to <strong>everybody</strong>"
 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,53 +1717,133 @@ 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
-msgid "List Groups"
+#: 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 "Show visitors public groups at the Advanced Profile Page"
+msgid ""
+"Display posts that have been created by accounts of the selected circle."
+msgstr ""
+
+#: 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 "Display posts that have been distributed by the selected group."
+msgstr ""
+
+#: src/Content/Feature.php:130 src/Content/Widget.php:507
+msgid "Archives"
+msgstr ""
+
+#: src/Content/Feature.php:130
+msgid "Display an archive where posts can be selected by month and year."
+msgstr ""
+
+#: 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 "Display a list of folders in which posts are stored."
+msgstr ""
+
+#: src/Content/Feature.php:136 src/Module/Conversation/Timeline.php:196
+msgid "Own Contacts"
+msgstr ""
+
+#: src/Content/Feature.php:136
+msgid ""
+"Include or exclude posts from subscribed accounts. This widget is not "
+"visible on all channels."
+msgstr ""
+
+#: 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:129
+#: src/Content/Feature.php:143
 msgid "Provide a personal tag cloud on your profile page"
 msgstr ""
 
-#: src/Content/Feature.php:130
+#: src/Content/Feature.php:144
 msgid "Display Membership Date"
 msgstr ""
 
-#: src/Content/Feature.php:130
+#: src/Content/Feature.php:144
 msgid "Display membership date in profile"
 msgstr ""
 
-#: src/Content/Feature.php:135
+#: src/Content/Feature.php:149
 msgid "Advanced Calendar Settings"
 msgstr ""
 
-#: src/Content/Feature.php:136
+#: src/Content/Feature.php:150
 msgid "Allow anonymous access to your calendar"
 msgstr ""
 
-#: src/Content/Feature.php:136
+#: 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: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/GroupManager.php:149
 msgid "External link to group"
 msgstr ""
@@ -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 ""
 
index 3fe63bdc285696b0ec712f73d9182f64f2d046ab..1dd12d6c064fbafe40b57506e391b1ada09ba458 100644 (file)
@@ -18,7 +18,9 @@
                                                        {{foreach $f.1 as $fcat}}
                                                                <div class="settings-block">
                                                                        {{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}}
                                                                </div>
                                                        {{/foreach}}
                                                </div>