X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FConversation%2FCommunity.php;h=8be5361deb3bc49e2e859103e220c680a02c5f29;hb=8e6483970a46e77ffe0e306f72b884bcb11c1765;hp=d14967283890d1aba2fe6f321dd7c236553ed9e6;hpb=682fb7e4e21d861e48c526c71e64a4bfc2cc2964;p=friendica.git diff --git a/src/Module/Conversation/Community.php b/src/Module/Conversation/Community.php index d149672838..8be5361deb 100644 --- a/src/Module/Conversation/Community.php +++ b/src/Module/Conversation/Community.php @@ -51,7 +51,7 @@ class Community extends BaseModule $tabs = []; - if ((local_user() || in_array(self::$page_style, [CP_USERS_AND_GLOBAL, CP_USERS_ON_SERVER])) && empty(DI::config()->get('system', 'singleuser'))) { + if ((Session::isAuthenticated() || in_array(self::$page_style, [CP_USERS_AND_GLOBAL, CP_USERS_ON_SERVER])) && empty(DI::config()->get('system', 'singleuser'))) { $tabs[] = [ 'label' => DI::l10n()->t('Local Community'), 'url' => 'community/local', @@ -62,7 +62,7 @@ class Community extends BaseModule ]; } - if (local_user() || in_array(self::$page_style, [CP_USERS_AND_GLOBAL, CP_GLOBAL_COMMUNITY])) { + if (Session::isAuthenticated() || in_array(self::$page_style, [CP_USERS_AND_GLOBAL, CP_GLOBAL_COMMUNITY])) { $tabs[] = [ 'label' => DI::l10n()->t('Global Community'), 'url' => 'community/global', @@ -81,12 +81,12 @@ class Community extends BaseModule $items = self::getItems(); if (!DBA::isResult($items)) { - info(DI::l10n()->t('No results.')); + notice(DI::l10n()->t('No results.')); return $o; } // We need the editor here to be able to reshare an item. - if (local_user()) { + if (Session::isAuthenticated()) { $x = [ 'is_owner' => true, 'allow_location' => DI::app()->user['allow_location'], @@ -104,6 +104,7 @@ class Community extends BaseModule $o .= conversation(DI::app(), $items, 'community', false, false, 'commented', local_user()); $pager = new BoundariesPager( + DI::l10n(), DI::args()->getQueryString(), $items[0]['commented'], $items[count($items) - 1]['commented'], @@ -178,7 +179,7 @@ class Community extends BaseModule } // Check if we are allowed to display the content to visitors - if (!local_user()) { + if (!Session::isAuthenticated()) { $available = self::$page_style == CP_USERS_AND_GLOBAL; if (!$available) { @@ -194,11 +195,12 @@ class Community extends BaseModule } } - // check if we serve a mobile device and get the user settings accordingly if (DI::mode()->isMobile()) { - self::$itemsPerPage = DI::pConfig()->get(local_user(), 'system', 'itemspage_mobile_network', 20); + self::$itemsPerPage = DI::pConfig()->get(local_user(), 'system', 'itemspage_mobile_network', + DI::config()->get('system', 'itemspage_network_mobile')); } else { - self::$itemsPerPage = DI::pConfig()->get(local_user(), 'system', 'itemspage_network', 40); + self::$itemsPerPage = DI::pConfig()->get(local_user(), 'system', 'itemspage_network', + DI::config()->get('system', 'itemspage_network')); } // now that we have the user settings, see if the theme forces @@ -271,64 +273,45 @@ class Community extends BaseModule * @param $itemspage * @return array * @throws \Exception + * @TODO Move to repository/factory */ private static function selectItems($since_id, $max_id, $itemspage) { $r = false; if (self::$content == 'local') { - $values = []; - - $sql_accounttype = ''; - $sql_boundaries = ''; if (!is_null(self::$accounttype)) { - $sql_accounttype = " AND `user`.`account-type` = ?"; - $values[] = [self::$accounttype]; - } - - if (isset($since_id)) { - $sql_boundaries .= " AND `thread`.`commented` > ?"; - $values[] = $since_id; - } - - if (isset($max_id)) { - $sql_boundaries .= " AND `thread`.`commented` < ?"; - $values[] = $max_id; + $condition = ["`wall` AND `origin` AND `private` = ? AND `owner`.`contact-type` = ?", Item::PUBLIC, self::$accounttype]; + } else { + $condition = ["`wall` AND `origin` AND `private` = ?", Item::PUBLIC]; } - - $values[] = $itemspage; - - /// @todo Use "unsearchable" here as well (instead of "hidewall") - $r = DBA::p("SELECT `item`.`uri`, `author`.`url` AS `author-link`, `thread`.`commented` FROM `thread` - STRAIGHT_JOIN `user` ON `user`.`uid` = `thread`.`uid` AND NOT `user`.`hidewall` - STRAIGHT_JOIN `item` ON `item`.`id` = `thread`.`iid` - STRAIGHT_JOIN `contact` AS `author` ON `author`.`id`=`item`.`author-id` - WHERE `thread`.`visible` AND NOT `thread`.`deleted` AND NOT `thread`.`moderated` - AND NOT `thread`.`private` AND `thread`.`wall` AND `thread`.`origin` - $sql_accounttype - $sql_boundaries - ORDER BY `thread`.`commented` DESC - LIMIT ?", $values); } elseif (self::$content == 'global') { if (!is_null(self::$accounttype)) { - $condition = ["`uid` = ? AND NOT `author`.`unsearchable` AND NOT `owner`.`unsearchable` AND `owner`.`contact-type` = ?", 0, self::$accounttype]; + $condition = ["`uid` = ? AND `private` = ? AND `owner`.`contact-type` = ?", 0, Item::PUBLIC, self::$accounttype]; } else { - $condition = ["`uid` = ? AND NOT `author`.`unsearchable` AND NOT `owner`.`unsearchable`", 0]; + $condition = ["`uid` = ? AND `private` = ?", 0, Item::PUBLIC]; } + } else { + return []; + } - if (isset($max_id)) { - $condition[0] .= " AND `commented` < ?"; - $condition[] = $max_id; - } + if (local_user() && DI::config()->get('system', 'community_no_followers')) { + $condition[0] .= " AND NOT EXISTS (SELECT `uri-id` FROM `thread` AS t1 WHERE `t1`.`uri-id` = `thread`.`uri-id` AND `t1`.`uid` = ?)"; + $condition[] = local_user(); + } - if (isset($since_id)) { - $condition[0] .= " AND `commented` > ?"; - $condition[] = $since_id; - } + if (isset($max_id)) { + $condition[0] .= " AND `commented` < ?"; + $condition[] = $max_id; + } - $r = Item::selectThreadForUser(0, ['uri', 'commented'], $condition, ['order' => ['commented' => true], 'limit' => $itemspage]); + if (isset($since_id)) { + $condition[0] .= " AND `commented` > ?"; + $condition[] = $since_id; } + $r = Item::selectThreadForUser(0, ['uri', 'commented', 'author-link'], $condition, ['order' => ['commented' => true], 'limit' => $itemspage]); + return DBA::toArray($r); } }