]> git.mxchange.org Git - friendica.git/commitdiff
Hide own contacts
authorMichael <heluecht@pirati.ca>
Sat, 26 Sep 2020 18:01:10 +0000 (18:01 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 26 Sep 2020 18:01:10 +0000 (18:01 +0000)
include/conversation.php
src/Module/Conversation/Community.php
static/defaults.config.php
view/templates/widget/community_sharer.tpl [new file with mode: 0644]

index ed6710bdf7554bf20c3aa0c0307e2541752469fb..c50ce6b7ccfaacbc72f90457ed6aa1915dff63cc 100644 (file)
@@ -443,7 +443,9 @@ function conversation(App $a, array $items, $mode, $update, $preview = false, $o
                if (!$update) {
                        $live_update_div = '<div id="live-community"></div>' . "\r\n"
                                . "<script> var profile_uid = -1; var netargs = '" . substr(DI::args()->getCommand(), 10)
-                               ."/?f='; </script>\r\n";
+                               . '?f='
+                               . (!empty($_GET['no_sharer']) ? '&no_sharer=' . rawurlencode($_GET['no_sharer']) : '')
+                               . "'; </script>\r\n";
                }
        } elseif ($mode === 'contacts') {
                $items = conversation_add_children($items, false, $order, $uid);
index 9a8869e4a113c52c0ec5074b38f6397c71854946..75a8e158ac85652fa32bb14a9aa8aee64ce5811c 100644 (file)
@@ -124,6 +124,29 @@ class Community extends BaseModule
                        '$community'    => DI::l10n()->t('Communities'),
                ]);
 
+               if (local_user() && DI::config()->get('system', 'community_no_sharer')) {
+                       $path = self::$content . ($parameters['accounttype'] ? '/' . $parameters['accounttype'] : '');
+                       $query_parameters = [];
+       
+                       if (!empty($_GET['since_id'])) {
+                               $query_parameters['since_id'] = $_GET['since_id'];
+                       }
+                       if (!empty($_GET['max_id'])) {
+                               $query_parameters['max_id'] = $_GET['max_id'];
+                       }
+       
+                       $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'), [
+                               '$title'           => DI::l10n()->t('Own Contacts'),
+                               '$path_all'        => $path_all,
+                               '$path_no_sharer'  => $path_no_sharer,
+                               '$no_sharer'       => !empty($_REQUEST['no_sharer']),
+                               '$all'             => DI::l10n()->t('Include'),
+                               '$no_sharer_label' => DI::l10n()->t('Hide'),
+                       ]);
+               }
+
                if (Feature::isEnabled(local_user(), 'trending_tags')) {
                        DI::page()['aside'] .= TrendingTags::getHTML(self::$content);
                }
@@ -294,7 +317,7 @@ class Community extends BaseModule
                        if (!is_null(self::$accounttype)) {
                                $condition = ["`wall` AND `origin` AND `private` = ? AND `owner`.`contact-type` = ?", Item::PUBLIC, self::$accounttype];
                        } else {
-                               $condition = ["`wall` AND `origin` AND `private` = ?", Item::PUBLIC];
+                               $condition = ["`wall` AND `origin` AND `private` = ?", Item::PUBLIC];
                        }
                } elseif (self::$content == 'global') {
                        if (!is_null(self::$accounttype)) {
@@ -306,7 +329,7 @@ class Community extends BaseModule
                        return [];
                }
 
-               if (local_user() && DI::config()->get('system', 'community_no_followers')) {
+               if (local_user() && !empty($_REQUEST['no_sharer'])) {
                        $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();
                }
index 00255ff14cf6c8cc958f87bb59b785a477b7b184..fbd3787b7607830815fe3d06a9d29e7e63243425 100644 (file)
@@ -122,9 +122,9 @@ return [
                // Deny public access to the local user directory.
                'block_local_dir' => false,
 
-               // community_no_followers (Boolean)
-               // Don't display followers on the global community
-               'community_no_followers' => false,
+               // community_no_sharer (Boolean)
+               // Don't display sharing accounts on the global community
+               'community_no_sharer' => false,
 
                // cron_interval (Integer)
                // Minimal period in minutes between two calls of the "Cron" worker job.
diff --git a/view/templates/widget/community_sharer.tpl b/view/templates/widget/community_sharer.tpl
new file mode 100644 (file)
index 0000000..db255ba
--- /dev/null
@@ -0,0 +1,8 @@
+<div id="sidebar-community-no-sharer" class="widget">
+       <h3>{{$title}}</h3>
+
+       <ul class="sidebar-community-no-sharer-ul">
+               <li role="menuitem" class="sidebar-community-no-sharer-li{{if !$no_sharer}} selected{{/if}}"><a href="community/{{$path_all}}">{{$all}}</a></li>
+               <li role="menuitem" class="sidebar-community-no-sharer-li{{if $no_sharer}} selected{{/if}}"><a href="community/{{$path_no_sharer}}">{{$no_sharer_label}}</a></li>
+       </ul>
+</div>