]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Conversation/Community.php
Update function / rearrange tab order
[friendica.git] / src / Module / Conversation / Community.php
index 539905503f50259b774e4c04db119e244235a897..9772248428e4bb404177ff2dc8c5c1d0adb60a70 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -24,13 +24,13 @@ namespace Friendica\Module\Conversation;
 
 use Friendica\BaseModule;
 use Friendica\Content\BoundariesPager;
+use Friendica\Content\Conversation;
 use Friendica\Content\Feature;
 use Friendica\Content\Nav;
 use Friendica\Content\Text\HTML;
 use Friendica\Content\Widget;
 use Friendica\Content\Widget\TrendingTags;
 use Friendica\Core\Renderer;
-use Friendica\Core\Session;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Item;
@@ -74,7 +74,7 @@ class Community extends BaseModule
                        '$global_community_hint' => DI::l10n()->t("This community stream shows all public posts received by this node. They may not reflect the opinions of this node’s users.")
                ]);
 
-               if (DI::pConfig()->get(local_user(), 'system', 'infinite_scroll')) {
+               if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll')) {
                        $tpl = Renderer::getMarkupTemplate('infinite_scroll_head.tpl');
                        $o .= Renderer::replaceMacros($tpl, ['$reload_uri' => DI::args()->getQueryString()]);
                }
@@ -82,7 +82,7 @@ class Community extends BaseModule
                if (empty($_GET['mode']) || ($_GET['mode'] != 'raw')) {
                        $tabs = [];
 
-                       if ((Session::isAuthenticated() || in_array(self::$page_style, [self::LOCAL_AND_GLOBAL, self::LOCAL])) && empty(DI::config()->get('system', 'singleuser'))) {
+                       if ((DI::userSession()->isAuthenticated() || in_array(self::$page_style, [self::LOCAL_AND_GLOBAL, self::LOCAL])) && empty(DI::config()->get('system', 'singleuser'))) {
                                $tabs[] = [
                                        'label' => DI::l10n()->t('Local Community'),
                                        'url' => 'community/local',
@@ -92,8 +92,8 @@ class Community extends BaseModule
                                        'accesskey' => 'l'
                                ];
                        }
-       
-                       if (Session::isAuthenticated() || in_array(self::$page_style, [self::LOCAL_AND_GLOBAL, self::GLOBAL])) {
+
+                       if (DI::userSession()->isAuthenticated() || in_array(self::$page_style, [self::LOCAL_AND_GLOBAL, self::GLOBAL])) {
                                $tabs[] = [
                                        'label' => DI::l10n()->t('Global Community'),
                                        'url' => 'community/global',
@@ -110,14 +110,14 @@ class Community extends BaseModule
                        Nav::setSelected('community');
 
                        DI::page()['aside'] .= Widget::accountTypes('community/' . self::$content, self::$accountTypeString);
-       
-                       if (local_user() && DI::config()->get('system', 'community_no_sharer')) {
+
+                       if (DI::userSession()->getLocalUserId() && DI::config()->get('system', 'community_no_sharer')) {
                                $path = self::$content;
                                if (!empty($this->parameters['accounttype'])) {
                                        $path .= '/' . $this->parameters['accounttype'];
                                }
                                $query_parameters = [];
-               
+
                                if (!empty($_GET['min_id'])) {
                                        $query_parameters['min_id'] = $_GET['min_id'];
                                }
@@ -127,7 +127,7 @@ class Community extends BaseModule
                                if (!empty($_GET['last_commented'])) {
                                        $query_parameters['max_id'] = $_GET['last_commented'];
                                }
-               
+
                                $path_all = $path . (!empty($query_parameters) ? '?' . http_build_query($query_parameters) : '');
                                $path_no_sharer = $path . '?' . http_build_query(array_merge($query_parameters, ['no_sharer' => true]));
                                DI::page()['aside'] .= Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/community_sharer.tpl'), [
@@ -137,15 +137,16 @@ class Community extends BaseModule
                                        '$no_sharer'       => !empty($_REQUEST['no_sharer']),
                                        '$all'             => DI::l10n()->t('Include'),
                                        '$no_sharer_label' => DI::l10n()->t('Hide'),
+                                       '$base'            => 'community',
                                ]);
                        }
-       
-                       if (Feature::isEnabled(local_user(), 'trending_tags')) {
+
+                       if (Feature::isEnabled(DI::userSession()->getLocalUserId(), 'trending_tags')) {
                                DI::page()['aside'] .= TrendingTags::getHTML(self::$content);
                        }
 
                        // We need the editor here to be able to reshare an item.
-                       if (Session::isAuthenticated()) {
+                       if (DI::userSession()->isAuthenticated()) {
                                $o .= DI::conversation()->statusEditor([], 0, true);
                        }
                }
@@ -157,7 +158,7 @@ class Community extends BaseModule
                        return $o;
                }
 
-               $o .= DI::conversation()->create($items, 'community', false, false, 'commented', local_user());
+               $o .= DI::conversation()->render($items, Conversation::MODE_COMMUNITY, false, false, 'commented', DI::userSession()->getLocalUserId());
 
                $pager = new BoundariesPager(
                        DI::l10n(),
@@ -167,7 +168,7 @@ class Community extends BaseModule
                        self::$itemsPerPage
                );
 
-               if (DI::pConfig()->get(local_user(), 'system', 'infinite_scroll')) {
+               if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'infinite_scroll')) {
                        $o .= HTML::scrollLoader();
                } else {
                        $o .= $pager->renderMinimal(count($items));
@@ -184,7 +185,7 @@ class Community extends BaseModule
         */
        protected function parseRequest()
        {
-               if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) {
+               if (DI::config()->get('system', 'block_public') && !DI::userSession()->isAuthenticated()) {
                        throw new HTTPException\ForbiddenException(DI::l10n()->t('Public access denied.'));
                }
 
@@ -213,7 +214,7 @@ class Community extends BaseModule
                }
 
                // Check if we are allowed to display the content to visitors
-               if (!Session::isAuthenticated()) {
+               if (!DI::userSession()->isAuthenticated()) {
                        $available = self::$page_style == self::LOCAL_AND_GLOBAL;
 
                        if (!$available) {
@@ -230,10 +231,10 @@ class Community extends BaseModule
                }
 
                if (DI::mode()->isMobile()) {
-                       self::$itemsPerPage = DI::pConfig()->get(local_user(), 'system', 'itemspage_mobile_network',
+                       self::$itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_mobile_network',
                                DI::config()->get('system', 'itemspage_network_mobile'));
                } else {
-                       self::$itemsPerPage = DI::pConfig()->get(local_user(), 'system', 'itemspage_network',
+                       self::$itemsPerPage = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'itemspage_network',
                                DI::config()->get('system', 'itemspage_network'));
                }
 
@@ -245,8 +246,8 @@ class Community extends BaseModule
                }
 
                self::$min_id = $_GET['min_id'] ?? null;
-               self::$max_id   = $_GET['max_id']   ?? null;
-               self::$max_id   = $_GET['last_commented'] ?? self::$max_id;
+               self::$max_id = $_GET['max_id'] ?? null;
+               self::$max_id = $_GET['last_commented'] ?? self::$max_id;
        }
 
        /**
@@ -302,7 +303,7 @@ class Community extends BaseModule
        }
 
        /**
-        * Database query for the comunity page
+        * Database query for the community page
         *
         * @param $min_id
         * @param $max_id
@@ -335,11 +336,11 @@ class Community extends BaseModule
                        $condition[0] .= " AND `id` = ?";
                        $condition[] = $item_id;
                } else {
-                       if (local_user() && !empty($_REQUEST['no_sharer'])) {
-                               $condition[0] .= " AND NOT `uri-id` IN (SELECT `uri-id` FROM `post-user` WHERE `post-user`.`uid` = ?)";
-                               $condition[] = local_user();
+                       if (DI::userSession()->getLocalUserId() && !empty($_REQUEST['no_sharer'])) {
+                               $condition[0] .= " AND NOT `uri-id` IN (SELECT `uri-id` FROM `post-user` WHERE `post-user`.`uid` = ? AND `post-user`.`uri-id` = `post-thread-user-view`.`uri-id`)";
+                               $condition[] = DI::userSession()->getLocalUserId();
                        }
-       
+
                        if (isset($max_id)) {
                                $condition[0] .= " AND `commented` < ?";
                                $condition[] = $max_id;
@@ -356,7 +357,7 @@ class Community extends BaseModule
                        }
                }
 
-               $r = Post::selectThreadForUser(0, ['uri-id', 'commented', 'author-link'], $condition, $params);
+               $r = Post::selectThreadForUser(DI::userSession()->getLocalUserId() ?: 0, ['uri-id', 'commented', 'author-link'], $condition, $params);
 
                $items = Post::toArray($r);
                if (empty($items)) {