Hide own contacts

This commit is contained in:
Michael 2020-09-26 18:01:10 +00:00
parent 4657a8c97a
commit c0ddcfb0cd
4 changed files with 39 additions and 6 deletions

View 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);

View 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();
}

View 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.

View File

@ -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>