]> git.mxchange.org Git - friendica.git/commitdiff
"show more" friends in common
authorfriendica <info@friendica.com>
Fri, 4 May 2012 08:46:36 +0000 (01:46 -0700)
committerfriendica <info@friendica.com>
Fri, 4 May 2012 08:46:36 +0000 (01:46 -0700)
include/contact_widgets.php
include/socgraph.php
mod/common.php
mod/contacts.php
view/contact_edit.tpl
view/remote_friends_common.tpl

index 4dab6a53e81623de4cedb6c850683322718b69f1..42d3afdee7cd375e6f9e546a0349595d9533dd13 100644 (file)
@@ -175,12 +175,16 @@ function common_friends_visitor_widget($profile_uid) {
                return;
 
        if($cid)
-               $r = common_friends($profile_uid,$cid,5,true);
+               $r = common_friends($profile_uid,$cid,0,5,true);
        else
-               $r = common_friends_zcid($profile_uid,$zcid,5,true);
+               $r = common_friends_zcid($profile_uid,$zcid,0,5,true);
 
        return replace_macros(get_markup_template('remote_friends_common.tpl'), array(
-               '$desc' =>  sprintf( tt("%d friend in common", "%d friends in common", $t), $t),
+               '$desc' =>  sprintf( tt("%d contact in common", "%d contacts in common", $t), $t),
+               '$base' => $a->get_baseurl(),
+               '$uid' => $profile_uid,
+               '$cid' => $cid,
+               '$more' => t('show more'),
                '$items' => $r
        )); 
 
index b7c4ccc71e7680b1d94ff91e172960cf4926311d..592779089785a4fc36bee616e0a0cf6fcd20670a 100644 (file)
@@ -184,7 +184,7 @@ function count_common_friends($uid,$cid) {
 }
 
 
-function common_friends($uid,$cid,$limit=9999,$shuffle = false) {
+function common_friends($uid,$cid,$start = 0,$limit=9999,$shuffle = false) {
 
        if($shuffle)
                $sql_extra = " order by rand() ";
@@ -195,11 +195,12 @@ function common_friends($uid,$cid,$limit=9999,$shuffle = false) {
                FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id`
                where `glink`.`cid` = %d and `glink`.`uid` = %d
                and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 and id != %d ) 
-               $sql_extra limit 0, %d",
+               $sql_extra limit %d, %d",
                intval($cid),
                intval($uid),
                intval($uid),
                intval($cid),
+               intval($start),
                intval($limit)
        );
 
@@ -224,7 +225,7 @@ function count_common_friends_zcid($uid,$zcid) {
 
 }
 
-function common_friends_zcid($uid,$zcid,$limit = 9999,$shuffle) {
+function common_friends_zcid($uid,$zcid,$start = 0, $limit = 9999,$shuffle) {
 
        if($shuffle)
                $sql_extra = " order by rand() ";
@@ -235,9 +236,10 @@ function common_friends_zcid($uid,$zcid,$limit = 9999,$shuffle) {
                FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id`
                where `glink`.`zcid` = %d
                and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and blocked = 0 and hidden = 0 ) 
-               $sql_extra limit 0, %d",
+               $sql_extra limit %d, %d",
                intval($zcid),
                intval($uid),
+               intval($start),
                intval($limit)
        );
 
index 852388c1493125bdcc28fafcd6db6229322d0c14..617b5b670a17eddc1db76b356d3f9d71f6e54f1b 100644 (file)
@@ -5,25 +5,33 @@ require_once('include/socgraph.php');
 function common_content(&$a) {
 
        $o = '';
-       if(! local_user()) {
-               notice( t('Permission denied.') . EOL);
-               return;
-       }
 
-       if($a->argc > 1)
-               $cid = intval($a->argv[1]);
-       if(! $cid)
+       $cmd = $a->argv[1];
+       $uid = intval($a->argv[2]);
+       $cid = intval($a->argv[3]);
+       $zcid = 0;
+
+       if($cmd !== 'loc' && $cmd != 'rem')
+               return;
+       if(! $uid)
                return;
 
-       $c = q("select name, url, photo from contact where id = %d and uid = %d limit 1",
-               intval($cid),
-               intval(local_user())
-       );
+       if($cmd === 'loc' && $cid) {    
+               $c = q("select name, url, photo from contact where id = %d and uid = %d limit 1",
+                       intval($cid),
+                       intval($uid)
+               );
+       }
+       else {
+               $c = q("select name, url, photo from contact where self = 1 and uid = %d limit 1",
+                       intval($uid)
+               );
+       }       
 
        $a->page['aside'] .= '<div class="vcard">' 
                . '<div class="fn label">' . $c[0]['name'] . '</div>' 
                . '<div id="profile-photo-wrapper">'
-               . '<a href="/contacts/' . $cid . '"><img class="photo" width="175" height="175" 
+               . '<img class="photo" width="175" height="175" 
                src="' . $c[0]['photo'] . '" alt="' . $c[0]['name'] . '" /></div>'
                . '</div>';
        
@@ -33,13 +41,52 @@ function common_content(&$a) {
 
        $o .= '<h2>' . t('Common Friends') . '</h2>';
 
-//     $o .= '<h3>' . sprintf( t('You and %s'),$c[0]['name']) . '</h3>';
 
+       if(! $cid) {
+               if(get_my_url()) {
+                       $r = q("select id from contact where nurl = '%s' and uid = %d limit 1",
+                               dbesc(normalise_link(get_my_url())),
+                               intval($profile_uid)
+                       );
+                       if(count($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))
+                                       $zcid = $r[0]['id'];
+                       }
+               }
+       }
+
+
+
+       if($cid == 0 && $zcid == 0)
+               return; 
+
+
+       if($cid)
+               $t = count_common_friends($uid,$cid);
+       else
+               $t = count_common_friends_zcid($uid,$zcid);
+
+
+       $a->set_pager_total($t);
+
+       if(! $t) {
+               notice( t('No contacts in common.') . EOL);
+               return $o;
+       }
+
+
+       if($cid)
+               $r = common_friends($uid,$cid);
+       else
+               $r = common_friends_zcid($uid,$zcid);
 
-       $r = common_friends(local_user(),$cid);
 
        if(! count($r)) {
-               $o .= t('No friends in common.');
                return $o;
        }
 
index 3b428914c1dd31851d926e0ad4d885cbc377c1b2..769239fe0cd81c62c5fd41cb1841978044fa1fbe 100644 (file)
@@ -325,7 +325,7 @@ function contacts_content(&$a) {
                        '$lbl_info1' => t('Contact Information / Notes'),
                        '$infedit' => t('Edit contact notes'),
                        '$common_text' => $common_text,
-                       '$common_link' => $a->get_baseurl(true) . '/common/' . $contact['id'],
+                       '$common_link' => $a->get_baseurl(true) . '/common/loc/' . local_user() . '/' . $contact['id'],
                        '$all_friends' => $all_friends,
                        '$relation_text' => $relation_text,
                        '$visit' => sprintf( t('Visit %s\'s profile [%s]'),$contact['name'],$contact['url']),
index 6c66536dd3c228eb07af48166714be1f2fcfb71e..eeedda3a4ad228775e44bf79525e9f05273b3144 100644 (file)
@@ -33,7 +33,7 @@
                                <li>&nbsp;</li>
 
                                {{ if $common_text }}
-                                       <li><div id="contact-edit-common"><a href="common/$contact_id">$common_text</a></div></li>
+                                       <li><div id="contact-edit-common"><a href="$common_link">$common_text</a></div></li>
                                {{ endif }}
                                {{ if $all_friends }}
                                        <li><div id="contact-edit-allfriends"><a href="allfriends/$contact_id">$all_friends</a></div></li>
index a5a36b1376d19ad183abbfc1af0931deb8f3fdeb..fa66c4731a2cfc5702d4fee7893f0ded77ee8699 100644 (file)
@@ -1,5 +1,5 @@
 <div id="remote-friends-in-common" class="bigwidget">
-       <div id="rfic-desc">$desc</div>
+       <div id="rfic-desc">$desc &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="$base/common/rem/$uid/$cid">$more</a></div>
        {{ if $items }}
        {{ for $items as $item }}
        <div class="profile-match-wrapper">