]> git.mxchange.org Git - friendica.git/commitdiff
Only show supported networks in sidebar and contact list
authorMichael Vogel <icarus@dabo.de>
Sun, 29 Nov 2015 12:37:24 +0000 (13:37 +0100)
committerMichael Vogel <icarus@dabo.de>
Sun, 29 Nov 2015 12:37:24 +0000 (13:37 +0100)
include/acl_selectors.php
include/contact_widgets.php
mod/contacts.php

index a1154399a713035c43a8f83751006cdcd8228989..4ef3d05ea3959fb9ba46070436f7c33e2b034612 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 
 require_once("include/contact_selectors.php");
+require_once("include/contact_widgets.php");
 require_once("include/features.php");
 require_once("mod/proxy.php");
 
@@ -425,6 +426,8 @@ function acl_lookup(&$a, $out_type = 'json') {
                $group_count = 0;
        }
 
+       $sql_extra2 .= " ".unavailable_networks();
+
        if ($type=='' || $type=='c'){
                $r = q("SELECT COUNT(*) AS c FROM `contact`
                                WHERE `uid` = %d AND `self` = 0
index 810671a91cceee3e4ce78a646b56b7ef443a79d3..a7c82c33cf04c7a2c285b57837bc21ba680f1792 100644 (file)
@@ -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"))
+               $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 = '') {
 
        $a = get_app();
 
-       if(! local_user())
+       if(!local_user())
                return '';
 
-       if(! feature_enabled(local_user(),'networks'))
+       if(!feature_enabled(local_user(),'networks'))
                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())
        );
 
index 1dc886363ae1ddf699f4aa41a19a6a4d6c799e9f..9fdcf277b855bb716b37cb21599dcefbea02a5ac 100644 (file)
@@ -56,7 +56,7 @@ function contacts_init(&$a) {
        }
 
        $groups_widget .= group_side('contacts','group','full',0,$contact_id);
-       
+
        $a->page['aside'] .= replace_macros(get_markup_template("contacts-widget-sidebar.tpl"),array(
                '$vcard_widget' => $vcard_widget,
                '$findpeople_widget' => $findpeople_widget,
@@ -786,8 +786,9 @@ function contacts_content(&$a) {
                $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($a->pager['start']),
                intval($a->pager['itemspage'])