]> git.mxchange.org Git - friendica.git/blobdiff - include/contact_widgets.php
merged 2 if() into one as requested by CR
[friendica.git] / include / contact_widgets.php
index 9401adccad88f76c4859624b20880af7e5c35272..d077a065e16590def2a304749bcc57f5fd6a50ba 100644 (file)
@@ -1,11 +1,12 @@
 <?php
 
-function follow_widget() {
+function follow_widget($value = "") {
 
        return replace_macros(get_markup_template('follow.tpl'),array(
                '$connect' => t('Add New Contact'),
                '$desc' => t('Enter address or web location'),
                '$hint' => t('Example: bob@example.com, http://example.com/barbara'),
+               '$value' => $value,
                '$follow' => t('Connect')
        ));
 
@@ -19,12 +20,12 @@ function findpeople_widget() {
        if(get_config('system','invitation_only')) {
                $x = get_pconfig(local_user(),'system','invites_remaining');
                if($x || is_site_admin()) {
-                       $a->page['aside'] .= '<div class="side-link" id="side-invite-remain">' 
-                       . sprintf( tt('%d invitation available','%d invitations available',$x), $x) 
+                       $a->page['aside'] .= '<div class="side-link" id="side-invite-remain">'
+                       . sprintf( tt('%d invitation available','%d invitations available',$x), $x)
                        . '</div>' . $inv;
                }
        }
+
        return replace_macros(get_markup_template('peoplefind.tpl'),array(
                '$findpeople' => t('Find People'),
                '$desc' => t('Enter name or interest'),
@@ -39,27 +40,71 @@ 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 (!plugin_enabled("pnut"))
+               $networks[] = NETWORK_PNUT;
+
+       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",
+       }
+
+       $extra_sql = unavailable_networks();
+
+       $r = q("SELECT DISTINCT(`network`) FROM `contact` WHERE `uid` = %d AND `network` != '' $extra_sql ORDER BY `network`",
                intval(local_user())
        );
 
        $nets = array();
-       if(count($r)) {
+       if (dbm::is_result($r)) {
                require_once('include/contact_selectors.php');
-               foreach($r as $rr) {
-                               if($rr['network'])
-                                       $nets[] = array('ref' => $rr['network'], 'name' => network_to_name($rr['network']), 'selected' => (($selected == $rr['network']) ? 'selected' : '' ));
+               foreach ($r as $rr) {
+                       /// @TODO If 'network' is not there, this triggers an E_NOTICE
+                       if ($rr['network']) {
+                               $nets[] = array('ref' => $rr['network'], 'name' => network_to_name($rr['network']), 'selected' => (($selected == $rr['network']) ? 'selected' : '' ));
+                       }
                }
        }
 
@@ -78,21 +123,23 @@ function networks_widget($baseurl,$selected = '') {
 }
 
 function fileas_widget($baseurl,$selected = '') {
-       $a = get_app();
-       if(! local_user())
+       if (! local_user()) {
                return '';
+       }
 
-       if(! feature_enabled(local_user(),'filing'))
+       if (! feature_enabled(local_user(),'filing')) {
                return '';
+       }
 
        $saved = get_pconfig(local_user(),'system','filetags');
-       if(! strlen($saved))
+       if (! strlen($saved)) {
                return;
+       }
 
        $matches = false;
        $terms = array();
-    $cnt = preg_match_all('/\[(.*?)\]/',$saved,$matches,PREG_SET_ORDER);
-    if($cnt) {
+       $cnt = preg_match_all('/\[(.*?)\]/',$saved,$matches,PREG_SET_ORDER);
+       if ($cnt) {
                foreach($matches as $mtch) {
                        $unescaped = xmlify(file_tag_decode($mtch[1]));
                        $terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : ''));
@@ -114,12 +161,14 @@ function categories_widget($baseurl,$selected = '') {
 
        $a = get_app();
 
-       if(! feature_enabled($a->profile['profile_uid'],'categories'))
+       if (! feature_enabled($a->profile['profile_uid'],'categories')) {
                return '';
+       }
 
        $saved = get_pconfig($a->profile['profile_uid'],'system','filetags');
-       if(! strlen($saved))
+       if (! strlen($saved)) {
                return;
+       }
 
        $matches = false;
        $terms = array();
@@ -166,20 +215,20 @@ function common_friends_visitor_widget($profile_uid) {
                                dbesc(normalise_link(get_my_url())),
                                intval($profile_uid)
                        );
-                       if(count($r))
+                       if (dbm::is_result($r))
                                $cid = $r[0]['id'];
                        else {
                                $r = q("select id from gcontact where nurl = '%s' limit 1",
                                        dbesc(normalise_link(get_my_url()))
                                );
-                               if(count($r))
+                               if (dbm::is_result($r))
                                        $zcid = $r[0]['id'];
                        }
                }
        }
 
        if($cid == 0 && $zcid == 0)
-               return; 
+               return;
 
        require_once('include/socgraph.php');
 
@@ -197,12 +246,12 @@ function common_friends_visitor_widget($profile_uid) {
 
        return replace_macros(get_markup_template('remote_friends_common.tpl'), array(
                '$desc' =>  sprintf( tt("%d contact in common", "%d contacts in common", $t), $t),
-               '$base' => $a->get_baseurl(),
+               '$base' => App::get_baseurl(),
                '$uid' => $profile_uid,
                '$cid' => (($cid) ? $cid : '0'),
                '$linkmore' => (($t > 5) ? 'true' : ''),
                '$more' => t('show more'),
                '$items' => $r
-       )); 
+       ));
 
 };