]> git.mxchange.org Git - friendica.git/blobdiff - mod/viewcontacts.php
Merge pull request #2148 from annando/issue-1871
[friendica.git] / mod / viewcontacts.php
index 8e261e71151d1e23e706ceabd89026779caa45c7..04520e0d9309cc163ffe86c165625ef0e96233cd 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+require_once('include/Contact.php');
 require_once('include/contact_selectors.php');
 
 function viewcontacts_init(&$a) {
@@ -7,11 +8,28 @@ function viewcontacts_init(&$a) {
                return;
        }
 
-       profile_load($a,$a->argv[1]);
+       nav_set_selected('home');
+
+       if($a->argc > 1) {
+               $nick = $a->argv[1];
+               $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1",
+                       dbesc($nick)
+               );
+
+               if(! count($r))
+                       return;
+
+               $a->data['user'] = $r[0];
+               $a->profile_uid = $r[0]['uid'];
+               $is_owner = (local_user() && (local_user() == $a->profile_uid));
+
+               profile_load($a,$a->argv[1]);
+       }
 }
 
 
 function viewcontacts_content(&$a) {
+       require_once("mod/proxy.php");
 
        if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
                notice( t('Public access denied.') . EOL);
@@ -21,22 +39,37 @@ function viewcontacts_content(&$a) {
        if(((! count($a->profile)) || ($a->profile['hide-friends']))) {
                notice( t('Permission denied.') . EOL);
                return;
-       } 
+       }
+
+       $o = "";
 
+       // tabs
+       $o .= profile_tabs($a,$is_owner, $a->data['user']['nickname']);
 
-       $r = q("SELECT COUNT(*) as `total` FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0 ",
-               intval($a->profile['uid'])
+       $r = q("SELECT COUNT(*) AS `total` FROM `contact`
+               WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0
+                       AND `network` IN ('%s', '%s', '%s')",
+               intval($a->profile['uid']),
+               dbesc(NETWORK_DFRN),
+               dbesc(NETWORK_DIASPORA),
+               dbesc(NETWORK_OSTATUS)
        );
        if(count($r))
                $a->set_pager_total($r[0]['total']);
 
-       $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0 ORDER BY `name` ASC LIMIT %d , %d ",
+       $r = q("SELECT * FROM `contact`
+               WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0
+                       AND `network` IN ('%s', '%s', '%s')
+               ORDER BY `name` ASC LIMIT %d, %d",
                intval($a->profile['uid']),
+               dbesc(NETWORK_DFRN),
+               dbesc(NETWORK_DIASPORA),
+               dbesc(NETWORK_OSTATUS),
                intval($a->pager['start']),
                intval($a->pager['itemspage'])
        );
-       if(! count($r)) {
-               info( t('No contacts.') . EOL );
+       if(!count($r)) {
+               info(t('No contacts.').EOL);
                return $o;
        }
 
@@ -46,7 +79,7 @@ function viewcontacts_content(&$a) {
                if($rr['self'])
                        continue;
 
-           $url = $rr['url'];
+               $url = $rr['url'];
 
                // route DFRN profiles through the redirect
 
@@ -57,23 +90,30 @@ function viewcontacts_content(&$a) {
                else
                        $url = zrl($url);
 
+               $contact_details = get_contact_details_by_url($rr['url'], $a->profile['uid']);
+
                $contacts[] = array(
                        'id' => $rr['id'],
                        'img_hover' => sprintf( t('Visit %s\'s profile [%s]'), $rr['name'], $rr['url']),
-                       'thumb' => $rr['thumb'], 
-                       'name' => substr($rr['name'],0,20),
-                       'username' => $rr['name'],
+                       'photo_menu' => contact_photo_menu($rr),
+                       'thumb' => proxy_url($rr['thumb'], false, PROXY_SIZE_THUMB),
+                       'name' => htmlentities(substr($rr['name'],0,20)),
+                       'username' => htmlentities($rr['name']),
+                       'details'       => $contact_details['location'],
+                       'tags'          => $contact_details['keywords'],
+                       'about'         => $contact_details['about'],
+                       'account_type'  => (($contact_details['community']) ? t('Forum') : ''),
                        'url' => $url,
                        'sparkle' => '',
-                       'itemurl' => $rr['url'],
-                       'network' => network_to_name($rr['network']),
+                       'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
+                       'network' => network_to_name($rr['network'], $rr['url']),
                );
        }
 
 
        $tpl = get_markup_template("viewcontact_template.tpl");
        $o .= replace_macros($tpl, array(
-               '$title' => t('View Contacts'),
+               '$title' => t('Contacts'),
                '$contacts' => $contacts,
                '$paginate' => paginate($a),
        ));