]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Settings/Display.php
Merge pull request #13724 from Raroun/Fix-for-Issue-#13637---Photo-caption-prevents...
[friendica.git] / src / Module / Settings / Display.php
index 68ac500212028083521bec817570b5b0b05260c5..623651f481471502b1d5a79df44a8aaaa5e08705 100644 (file)
@@ -28,7 +28,7 @@ use Friendica\Content\Conversation\Factory\Channel as ChannelFactory;
 use Friendica\Content\Conversation\Factory\Community as CommunityFactory;
 use Friendica\Content\Conversation\Factory\Network as NetworkFactory;
 use Friendica\Content\Conversation\Factory\Timeline as TimelineFactory;
-use Friendica\Content\Conversation\Factory\UserDefinedChannel as UserDefinedChannelFactory;
+use Friendica\Content\Conversation\Repository;
 use Friendica\Core\Config\Capability\IManageConfigValues;
 use Friendica\Core\Hook;
 use Friendica\Core\L10n;
@@ -59,7 +59,7 @@ class Display extends BaseSettings
        private $systemMessages;
        /** @var ChannelFactory */
        protected $channel;
-       /** @var UserDefinedChannelFactory */
+       /** @var Repository\UserDefinedChannel */
        protected $userDefinedChannel;
        /** @var CommunityFactory */
        protected $community;
@@ -68,7 +68,7 @@ class Display extends BaseSettings
        /** @var TimelineFactory */
        protected $timeline;
 
-       public function __construct(UserDefinedChannelFactory $userDefinedChannel, NetworkFactory $network, CommunityFactory $community, ChannelFactory $channel, TimelineFactory $timeline, SystemMessages $systemMessages, App $app, IManagePersonalConfigValues $pConfig, IManageConfigValues $config, IHandleUserSessions $session, App\Page $page, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [])
+       public function __construct(Repository\UserDefinedChannel $userDefinedChannel, NetworkFactory $network, CommunityFactory $community, ChannelFactory $channel, TimelineFactory $timeline, SystemMessages $systemMessages, App $app, IManagePersonalConfigValues $pConfig, IManageConfigValues $config, IHandleUserSessions $session, App\Page $page, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [])
        {
                parent::__construct($session, $page, $l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
 
@@ -94,21 +94,23 @@ class Display extends BaseSettings
 
                $user = User::getById($uid);
 
-               $theme                  = !empty($request['theme'])                  ? trim($request['theme'])                    : $user['theme'];
-               $mobile_theme           = !empty($request['mobile_theme'])           ? trim($request['mobile_theme'])             : '';
-               $enable_smile           = !empty($request['enable_smile'])           ? intval($request['enable_smile'])           : 0;
-               $enable                 = !empty($request['enable'])                 ? $request['enable']                         : [];
-               $bookmark               = !empty($request['bookmark'])               ? $request['bookmark']                       : [];
-               $channel_languages      = !empty($request['channel_languages'])      ? $request['channel_languages']              : [];
-               $first_day_of_week      = !empty($request['first_day_of_week'])      ? intval($request['first_day_of_week'])      : 0;
-               $calendar_default_view  = !empty($request['calendar_default_view'])  ? trim($request['calendar_default_view'])    : 'month';
-               $infinite_scroll        = !empty($request['infinite_scroll'])        ? intval($request['infinite_scroll'])        : 0;
-               $enable_smart_threading = !empty($request['enable_smart_threading']) ? intval($request['enable_smart_threading']) : 0;
-               $enable_dislike         = !empty($request['enable_dislike'])         ? intval($request['enable_dislike'])         : 0;
-               $display_resharer       = !empty($request['display_resharer'])       ? intval($request['display_resharer'])       : 0;
-               $stay_local             = !empty($request['stay_local'])             ? intval($request['stay_local'])             : 0;
-               $preview_mode           = !empty($request['preview_mode'])           ? intval($request['preview_mode'])           : 0;
-               $browser_update         = !empty($request['browser_update'])         ? intval($request['browser_update'])         : 0;
+               $theme                  = trim($request['theme']);
+               $mobile_theme           = trim($request['mobile_theme'] ?? '');
+               $enable_smile           = (bool)$request['enable_smile'];
+               $enable                 = (array)$request['enable'];
+               $bookmark               = (array)$request['bookmark'];
+               $channel_languages      = (array)$request['channel_languages'];
+               $first_day_of_week      = (bool)$request['first_day_of_week'];
+               $calendar_default_view  = trim($request['calendar_default_view']);
+               $infinite_scroll        = (bool)$request['infinite_scroll'];
+               $enable_smart_threading = (bool)$request['enable_smart_threading'];
+               $enable_dislike         = (bool)$request['enable_dislike'];
+               $display_resharer       = (bool)$request['display_resharer'];
+               $stay_local             = (bool)$request['stay_local'];
+               $show_page_drop         = (bool)$request['show_page_drop'];
+               $display_eventlist      = (bool)$request['display_eventlist'];
+               $preview_mode           = (int)$request['preview_mode'];
+               $browser_update         = (int)$request['browser_update'];
                if ($browser_update != -1) {
                        $browser_update = $browser_update * 1000;
                        if ($browser_update < 10000) {
@@ -156,6 +158,8 @@ class Display extends BaseSettings
                $this->pConfig->set($uid, 'system', 'hide_dislike'            , !$enable_dislike);
                $this->pConfig->set($uid, 'system', 'display_resharer'        , $display_resharer);
                $this->pConfig->set($uid, 'system', 'stay_local'              , $stay_local);
+               $this->pConfig->set($uid, 'system', 'show_page_drop'          , $show_page_drop);
+               $this->pConfig->set($uid, 'system', 'display_eventlist'       , $display_eventlist);
                $this->pConfig->set($uid, 'system', 'preview_mode'            , $preview_mode);
 
                $this->pConfig->set($uid, 'system', 'network_timelines'       , $network_timelines);
@@ -242,12 +246,14 @@ class Display extends BaseSettings
                        $browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000); // default if not set: 40 seconds
                }
 
-               $enable_smile           = !$this->pConfig->get($uid, 'system', 'no_smilies', 0);
-               $infinite_scroll        =  $this->pConfig->get($uid, 'system', 'infinite_scroll', 0);
-               $enable_smart_threading = !$this->pConfig->get($uid, 'system', 'no_smart_threading', 0);
-               $enable_dislike         = !$this->pConfig->get($uid, 'system', 'hide_dislike', 0);
-               $display_resharer       =  $this->pConfig->get($uid, 'system', 'display_resharer', 0);
-               $stay_local             =  $this->pConfig->get($uid, 'system', 'stay_local', 0);
+               $enable_smile           = !$this->pConfig->get($uid, 'system', 'no_smilies', false);
+               $infinite_scroll        =  $this->pConfig->get($uid, 'system', 'infinite_scroll', false);
+               $enable_smart_threading = !$this->pConfig->get($uid, 'system', 'no_smart_threading', false);
+               $enable_dislike         = !$this->pConfig->get($uid, 'system', 'hide_dislike', false);
+               $display_resharer       =  $this->pConfig->get($uid, 'system', 'display_resharer', false);
+               $stay_local             =  $this->pConfig->get($uid, 'system', 'stay_local', false);
+               $show_page_drop         =  $this->pConfig->get($uid, 'system', 'show_page_drop', true);
+               $display_eventlist      =  $this->pConfig->get($uid, 'system', 'display_eventlist', true);
 
                $preview_mode  =  $this->pConfig->get($uid, 'system', 'preview_mode', BBCode::PREVIEW_LARGE);
                $preview_modes = [
@@ -259,16 +265,16 @@ class Display extends BaseSettings
 
                $bookmarked_timelines = $this->pConfig->get($uid, 'system', 'network_timelines', $this->getAvailableTimelines($uid, true)->column('code'));
                $enabled_timelines    = $this->pConfig->get($uid, 'system', 'enabled_timelines', $this->getAvailableTimelines($uid, false)->column('code'));
-               $channel_languages = $this->pConfig->get($uid, 'channel', 'languages', [User::getLanguageCode($uid)]);
-               $languages         = $this->l10n->getAvailableLanguages(true);
+               $channel_languages = User::getWantedLanguages($uid);
+               $languages         = $this->l10n->getLanguageCodes(true);
 
                $timelines = [];
                foreach ($this->getAvailableTimelines($uid) as $timeline) {
                        $timelines[] = [
                                'label'        => $timeline->label,
                                'description'  => $timeline->description,
-                               'enable'       => ["enable{$timeline->code}", '', in_array($timeline->code, $enabled_timelines)],
-                               'bookmark'     => ["bookmark{$timeline->code}", '', in_array($timeline->code, $bookmarked_timelines)],
+                               'enable'       => ["enable[{$timeline->code}]", '', in_array($timeline->code, $enabled_timelines)],
+                               'bookmark'     => ["bookmark[{$timeline->code}]", '', in_array($timeline->code, $bookmarked_timelines)],
                        ];
                }
 
@@ -325,6 +331,8 @@ class Display extends BaseSettings
                        '$enable_dislike'           => ['enable_dislike'          , $this->t('Display the Dislike feature'), $enable_dislike, $this->t('Display the Dislike button and dislike reactions on posts and comments.')],
                        '$display_resharer'         => ['display_resharer'        , $this->t('Display the resharer'), $display_resharer, $this->t('Display the first resharer as icon and text on a reshared item.')],
                        '$stay_local'               => ['stay_local'              , $this->t('Stay local'), $stay_local, $this->t("Don't go to a remote system when following a contact link.")],
+                       '$show_page_drop'           => ['show_page_drop'          , $this->t('Show the post deletion checkbox'), $show_page_drop, $this->t("Display the checkbox for the post deletion on the network page.")],
+                       '$display_eventlist'        => ['display_eventlist'       , $this->t('DIsplay the event list'), $display_eventlist, $this->t("Display the birthday reminder and event list on the network page.")],
                        '$preview_mode'             => ['preview_mode'            , $this->t('Link preview mode'), $preview_mode, $this->t('Appearance of the link preview that is added to each post with a link.'), $preview_modes, false],
 
                        '$timeline_label'       => $this->t('Label'),
@@ -357,7 +365,7 @@ class Display extends BaseSettings
                        $timelines[] = $channel;
                }
 
-               foreach ($this->userDefinedChannel->getForUser($uid) as $channel) {
+               foreach ($this->userDefinedChannel->selectByUid($uid) as $channel) {
                        $timelines[] = $channel;
                }