Merge pull request #2118 from annando/1511-supported-networks

Only show supported networks in sidebar and contact list
This commit is contained in:
Tobias Diekershoff 2015-11-29 16:03:10 +01:00
commit 3f2a55c267
3 changed files with 51 additions and 10 deletions

View file

@ -1,6 +1,7 @@
<?php <?php
require_once("include/contact_selectors.php"); require_once("include/contact_selectors.php");
require_once("include/contact_widgets.php");
require_once("include/features.php"); require_once("include/features.php");
require_once("mod/proxy.php"); require_once("mod/proxy.php");
@ -425,6 +426,8 @@ function acl_lookup(&$a, $out_type = 'json') {
$group_count = 0; $group_count = 0;
} }
$sql_extra2 .= " ".unavailable_networks();
if ($type=='' || $type=='c'){ if ($type=='' || $type=='c'){
$r = q("SELECT COUNT(*) AS c FROM `contact` $r = q("SELECT COUNT(*) AS c FROM `contact`
WHERE `uid` = %d AND `self` = 0 WHERE `uid` = %d AND `self` = 0

View file

@ -20,12 +20,12 @@ function findpeople_widget() {
if(get_config('system','invitation_only')) { if(get_config('system','invitation_only')) {
$x = get_pconfig(local_user(),'system','invites_remaining'); $x = get_pconfig(local_user(),'system','invites_remaining');
if($x || is_site_admin()) { if($x || is_site_admin()) {
$a->page['aside'] .= '<div class="side-link" id="side-invite-remain">' $a->page['aside'] .= '<div class="side-link" id="side-invite-remain">'
. sprintf( tt('%d invitation available','%d invitations available',$x), $x) . sprintf( tt('%d invitation available','%d invitations available',$x), $x)
. '</div>' . $inv; . '</div>' . $inv;
} }
} }
return replace_macros(get_markup_template('peoplefind.tpl'),array( return replace_macros(get_markup_template('peoplefind.tpl'),array(
'$findpeople' => t('Find People'), '$findpeople' => t('Find People'),
'$desc' => t('Enter name or interest'), '$desc' => t('Enter name or interest'),
@ -40,18 +40,55 @@ function findpeople_widget() {
} }
function unavailable_networks() {
$network_filter = "";
$networks = array();
if (!plugin_enabled("appnet"))
$networks[] = NETWORK_APPNET;
if (!plugin_enabled("fbpost") AND !plugin_enabled("facebook"))
$networks[] = NETWORK_FACEBOOK;
if (!plugin_enabled("statusnet"))
$networks[] = NETWORK_STATUSNET;
if (!plugin_enabled("pumpio"))
$networks[] = NETWORK_PUMPIO;
if (!plugin_enabled("twitter"))
$networks[] = NETWORK_TWITTER;
if (get_config("system","ostatus_disabled"))
$networks[] = NETWORK_OSTATUS;
if (!get_config("system","diaspora_enabled"))
$networks[] = NETWORK_DIASPORA;
if (!sizeof($networks))
return "";
$network_filter = implode("','", $networks);
$network_filter = "AND `network` NOT IN ('$network_filter')";
return $network_filter;
}
function networks_widget($baseurl,$selected = '') { function networks_widget($baseurl,$selected = '') {
$a = get_app(); $a = get_app();
if(! local_user()) if(!local_user())
return ''; return '';
if(! feature_enabled(local_user(),'networks')) if(!feature_enabled(local_user(),'networks'))
return ''; return '';
$r = q("SELECT DISTINCT(`network`) FROM `contact` WHERE `uid` = %d AND `self` = 0 ORDER BY `network`", $extra_sql = unavailable_networks();
$r = q("SELECT DISTINCT(`network`) FROM `contact` WHERE `uid` = %d AND NOT `self` $extra_sql ORDER BY `network`",
intval(local_user()) intval(local_user())
); );
@ -180,7 +217,7 @@ function common_friends_visitor_widget($profile_uid) {
} }
if($cid == 0 && $zcid == 0) if($cid == 0 && $zcid == 0)
return; return;
require_once('include/socgraph.php'); require_once('include/socgraph.php');
@ -204,6 +241,6 @@ function common_friends_visitor_widget($profile_uid) {
'$linkmore' => (($t > 5) ? 'true' : ''), '$linkmore' => (($t > 5) ? 'true' : ''),
'$more' => t('show more'), '$more' => t('show more'),
'$items' => $r '$items' => $r
)); ));
}; };

View file

@ -56,7 +56,7 @@ function contacts_init(&$a) {
} }
$groups_widget .= group_side('contacts','group','full',0,$contact_id); $groups_widget .= group_side('contacts','group','full',0,$contact_id);
$a->page['aside'] .= replace_macros(get_markup_template("contacts-widget-sidebar.tpl"),array( $a->page['aside'] .= replace_macros(get_markup_template("contacts-widget-sidebar.tpl"),array(
'$vcard_widget' => $vcard_widget, '$vcard_widget' => $vcard_widget,
'$findpeople_widget' => $findpeople_widget, '$findpeople_widget' => $findpeople_widget,
@ -786,8 +786,9 @@ function contacts_content(&$a) {
$total = $r[0]['total']; $total = $r[0]['total'];
} }
$sql_extra3 = unavailable_networks();
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `pending` = 0 $sql_extra $sql_extra2 ORDER BY `name` ASC LIMIT %d , %d ", $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `pending` = 0 $sql_extra $sql_extra2 $sql_extra3 ORDER BY `name` ASC LIMIT %d , %d ",
intval($_SESSION['uid']), intval($_SESSION['uid']),
intval($a->pager['start']), intval($a->pager['start']),
intval($a->pager['itemspage']) intval($a->pager['itemspage'])