]> git.mxchange.org Git - friendica.git/commitdiff
There is now a single way to display group postings
authorMichael <heluecht@pirati.ca>
Tue, 2 Jan 2024 20:45:02 +0000 (20:45 +0000)
committerMichael <heluecht@pirati.ca>
Tue, 2 Jan 2024 20:45:02 +0000 (20:45 +0000)
src/Content/GroupManager.php
src/Module/Conversation/Network.php
view/templates/widget/group_list.tpl
view/theme/quattro/templates/widget/group_list.tpl
view/theme/vier/theme.php

index fc43080d90b5c52c809a339c0eddb906c4089f36..45a182a484e1651f7c5cfa2689ae34cbfe285032 100644 (file)
@@ -106,14 +106,12 @@ class GroupManager
         * Sidebar widget to show subscribed Friendica groups. If activated
         * in the settings, it appears in the network page sidebar
         *
-        * @param string $baseurl Base module path
-        * @param int    $uid     The ID of the User
-        * @param int    $cid     The contact id which is used to mark a group as "selected"
+        * @param int $uid The ID of the User
         * @return string
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function widget(string $baseurl, int $uid, int $cid = 0)
+       public static function widget(int $uid)
        {
                $o = '';
 
@@ -130,14 +128,11 @@ class GroupManager
                        $entries = [];
 
                        foreach ($contacts as $contact) {
-                               $selected = (($cid == $contact['id']) ? ' group-selected' : '');
-
                                $entry = [
-                                       'url' => $baseurl . '/' . $contact['id'],
+                                       'url' => 'contact/' . $contact['id'] . '/conversations',
                                        'external_url' => Contact::magicLinkByContact($contact),
                                        'name' => $contact['name'],
                                        'cid' => $contact['id'],
-                                       'selected'      => $selected,
                                        'micro' => DI::baseUrl()->remove(Contact::getMicro($contact)),
                                        'id' => ++$id,
                                ];
index 89c9ccb1973ddb626eb813a38221822d44c50dac..12b500fd4bc6791db9cc9c5b9bc534e5782ba51f 100644 (file)
@@ -50,25 +50,19 @@ use Friendica\Database\DBA;
 use Friendica\Database\Database;
 use Friendica\Model\Contact;
 use Friendica\Model\Circle;
-use Friendica\Model\Item;
 use Friendica\Model\Profile;
-use Friendica\Model\Verb;
-use Friendica\Module\Contact as ModuleContact;
 use Friendica\Module\Response;
 use Friendica\Module\Security\Login;
 use Friendica\Network\HTTPException;
 use Friendica\Navigation\SystemMessages;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Profiler;
-use Friendica\Protocol\Activity;
 use Psr\Log\LoggerInterface;
 
 class Network extends Timeline
 {
        /** @var int */
        protected $circleId;
-       /** @var int */
-       protected $groupContactId;
        /** @var string */
        protected $network;
        /** @var string */
@@ -140,9 +134,9 @@ class Network extends Timeline
                $o = '';
 
                $this->page['aside'] .= Circle::sidebarWidget($module, $module . '/circle', 'standard', $this->circleId);
-               $this->page['aside'] .= GroupManager::widget($module . '/group', $this->session->getLocalUserId(), $this->groupContactId);
+               $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->groupContactId ? $this->network : '');
+               $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());
@@ -164,24 +158,13 @@ class Network extends Timeline
 
                        $content = '';
 
-                       if ($this->groupContactId) {
-                               // If $this->groupContactId belongs to a community group or a private group, add a mention to the status editor
-                               $condition = ["`id` = ? AND `contact-type` = ?", $this->groupContactId, Contact::TYPE_COMMUNITY];
-                               $contact = $this->database->selectFirst('contact', ['addr'], $condition);
-                               if (!empty($contact['addr'])) {
-                                       $content = '!' . $contact['addr'];
-                               }
-                       }
-
                        $default_permissions = [];
                        if ($this->circleId) {
                                $default_permissions['allow_gid'] = [$this->circleId];
                        }
 
                        $allowedCids = [];
-                       if ($this->groupContactId) {
-                               $allowedCids[] = (int) $this->groupContactId;
-                       } elseif ($this->network) {
+                       if ($this->network) {
                                $condition = [
                                        'uid'     => $this->session->getLocalUserId(),
                                        'network' => $this->network,
@@ -203,9 +186,9 @@ class Network extends Timeline
                        }
 
                        $x = [
-                               'lockstate' => $this->circleId || $this->groupContactId || $this->network || ACL::getLockstateForUserId($this->session->getLocalUserId()) ? 'lock' : 'unlock',
+                               'lockstate' => $this->circleId || $this->network || ACL::getLockstateForUserId($this->session->getLocalUserId()) ? 'lock' : 'unlock',
                                'acl' => ACL::getFullSelectorHTML($this->page, $this->session->getLocalUserId(), true, $default_permissions),
-                               'bang' => (($this->circleId || $this->groupContactId || $this->network) ? '!' : ''),
+                               'bang' => (($this->circleId || $this->network) ? '!' : ''),
                                'content' => $content,
                        ];
 
@@ -220,16 +203,6 @@ class Network extends Timeline
                                $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('section_title.tpl'), [
                                        '$title' => $this->l10n->t('Circle: %s', $circle['name'])
                                ]) . $o;
-                       } elseif ($this->groupContactId) {
-                               $contact = Contact::getById($this->groupContactId);
-                               if ($this->database->isResult($contact)) {
-                                       $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('contact/list.tpl'), [
-                                               'contacts' => [ModuleContact::getContactTemplateVars($contact)],
-                                               'id' => $this->args->get(0),
-                                       ]) . $o;
-                               } else {
-                                       $this->systemMessages->addNotice($this->l10n->t('Invalid contact.'));
-                               }
                        } elseif (Profile::shouldDisplayEventList($this->session->getLocalUserId(), $this->mode)) {
                                $o .= Profile::getBirthdays($this->session->getLocalUserId());
                                $o .= Profile::getEventsReminderHTML($this->session->getLocalUserId(), $this->session->getPublicContactId());
@@ -321,15 +294,13 @@ class Network extends Timeline
 
                $this->circleId = (int)($this->parameters['circle_id'] ?? 0);
 
-               $this->groupContactId = (int)($this->parameters['contact_id'] ?? 0);
-
                if (!$this->selectedTab) {
                        $this->selectedTab = self::getTimelineOrderBySession($this->session, $this->pConfig);
                } elseif (!$this->networkFactory->isTimeline($this->selectedTab) && !$this->channel->isTimeline($this->selectedTab) && !$this->userDefinedChannel->isTimeline($this->selectedTab, $this->session->getLocalUserId()) && !$this->community->isTimeline($this->selectedTab)) {
                        throw new HTTPException\BadRequestException($this->l10n->t('Network feed not available.'));
                }
 
-               if (($this->network || $this->circleId || $this->groupContactId) && ($this->channel->isTimeline($this->selectedTab) || $this->userDefinedChannel->isTimeline($this->selectedTab, $this->session->getLocalUserId()) || $this->community->isTimeline($this->selectedTab))) {
+               if (($this->network || $this->circleId) && ($this->channel->isTimeline($this->selectedTab) || $this->userDefinedChannel->isTimeline($this->selectedTab, $this->session->getLocalUserId()) || $this->community->isTimeline($this->selectedTab))) {
                        $this->selectedTab = NetworkEntity::RECEIVED;
                }
 
@@ -433,10 +404,6 @@ class Network extends Timeline
 
                if ($this->circleId) {
                        $conditionStrings = DBA::mergeConditions($conditionStrings, ["`contact-id` IN (SELECT `contact-id` FROM `group_member` WHERE `gid` = ?)", $this->circleId]);
-               } elseif ($this->groupContactId) {
-                       $conditionStrings = DBA::mergeConditions($conditionStrings,
-                               ["((`contact-id` = ?) OR `uri-id` IN (SELECT `parent-uri-id` FROM `post-user-view` WHERE (`contact-id` = ? AND `gravity` = ? AND `verb` = ? AND `uid` = ?)))",
-                               $this->groupContactId, $this->groupContactId, Item::GRAVITY_ACTIVITY, Activity::ANNOUNCE, $this->session->getLocalUserId()]);
                }
 
                // Currently only the order modes "received" and "commented" are in use
@@ -505,7 +472,7 @@ class Network extends Timeline
                // We aren't going to try and figure out at the item, circle, and page
                // level which items you've seen and which you haven't. If you're looking
                // at the top level network page just mark everything seen.
-               if (!$this->circleId && !$this->groupContactId && !$this->star && !$this->mention) {
+               if (!$this->circleId && !$this->star && !$this->mention) {
                        $condition = ['unseen' => true, 'uid' => $this->session->getLocalUserId()];
                        $this->setItemsSeenByCondition($condition);
                } elseif (!empty($parents)) {
index c939d074ae4ec1242b95c6fbedb755b2cff848dc..2d29855de5651cb67eae18db7a79ad831523f0e7 100644 (file)
@@ -34,7 +34,7 @@ function showHideGroupList() {
                        <a href="{{$group.external_url}}" title="{{$group.link_desc}}" class="label sparkle" target="_blank" rel="noopener noreferrer">
                                <img class="group-list-img" src="{{$group.micro}}" alt="{{$group.link_desc}}" />
                        </a>
-                       <a class="group-widget-link {{if $group.selected}}group-selected{{/if}}" id="group-widget-link-{{$group.id}}" href="{{$group.url}}">{{$group.name}}</a>
+                       <a class="group-widget-link" id="group-widget-link-{{$group.id}}" href="{{$group.url}}">{{$group.name}}</a>
                </li>
                {{/if}}
 
@@ -44,7 +44,7 @@ function showHideGroupList() {
                        <a href="{{$group.external_url}}" title="{{$group.link_desc}}" class="label sparkle" target="_blank" rel="noopener noreferrer">
                                <img class="group-list-img" src="{{$group.micro}}" alt="{{$group.link_desc}}" />
                        </a>
-                       <a class="group-widget-link {{if $group.selected}}group-selected{{/if}}" id="group-widget-link-{{$group.id}}" href="{{$group.url}}">{{$group.name}}</a>
+                       <a class="group-widget-link" id="group-widget-link-{{$group.id}}" href="{{$group.url}}">{{$group.name}}</a>
                </li>
                {{/if}}
                {{/foreach}}
index e86c2dab22d316bbfb7f3cade8a86cab6f706e81..c4898785cb834f3e18738ea99c52f043b327defb 100644 (file)
@@ -19,7 +19,7 @@ function showHideGroupList() {
        <ul id="group-list-sidebar-ul" role="menu">
                {{foreach $groups as $group}}
                {{if $group.id <= $visible_groups}}
-               <li class="group-widget-entry group-{{$group.cid}} tool {{if $group.selected}}selected{{/if}}" id="group-widget-entry-{{$group.id}}" role="menuitem">
+               <li class="group-widget-entry group-{{$group.cid}} tool" id="group-widget-entry-{{$group.id}}" role="menuitem">
                        <span class="notify badge pull-right"></span>
                        <a href="{{$group.external_url}}" title="{{$group.link_desc}}" class="label sparkle" target="_blank" rel="noopener noreferrer">
                                <img class="group-list-img" src="{{$group.micro}}" alt="{{$group.link_desc}}" />
@@ -29,7 +29,7 @@ function showHideGroupList() {
                {{/if}}
 
                {{if $group.id > $visible_groups}}
-               <li class="group-widget-entry group-{{$group.cid}} tool {{if $group.selected}}selected{{/if}}" id="group-widget-entry-extended-{{$group.id}}" role="menuitem" style="display: none;">
+               <li class="group-widget-entry group-{{$group.cid}} tool" id="group-widget-entry-extended-{{$group.id}}" role="menuitem" style="display: none;">
                        <span class="notify badge pull-right"></span>
                        <a href="{{$group.external_url}}" title="{{$group.link_desc}}" class="label sparkle" target="_blank" rel="noopener noreferrer">
                                <img class="group-list-img" src="{{$group.micro}}" alt="{{$group.link_desc}}" />
index e264251624eab708b72b37988fc9cc497c5ddb09..6a431b16c0312622ba8fc9e71c73fb083bd0eb40 100644 (file)
@@ -208,7 +208,7 @@ function vier_community_info()
 
        //Community_Pages at right_aside
        if ($show_pages && DI::userSession()->getLocalUserId()) {
-               $aside['$page'] = GroupManager::widget('network/group', DI::userSession()->getLocalUserId());;
+               $aside['$page'] = GroupManager::widget(DI::userSession()->getLocalUserId());
        }
        // END Community Page