diff options
-rw-r--r-- | include/contact_widgets.php | 10 | ||||
-rw-r--r-- | include/socgraph.php | 10 | ||||
-rw-r--r-- | mod/common.php | 77 | ||||
-rw-r--r-- | mod/contacts.php | 2 | ||||
-rw-r--r-- | view/contact_edit.tpl | 2 | ||||
-rw-r--r-- | view/remote_friends_common.tpl | 2 |
6 files changed, 78 insertions, 25 deletions
diff --git a/include/contact_widgets.php b/include/contact_widgets.php index 4dab6a53e..42d3afdee 100644 --- a/include/contact_widgets.php +++ b/include/contact_widgets.php @@ -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 )); diff --git a/include/socgraph.php b/include/socgraph.php index b7c4ccc71..592779089 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -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) ); diff --git a/mod/common.php b/mod/common.php index 852388c14..617b5b670 100644 --- a/mod/common.php +++ b/mod/common.php @@ -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; } diff --git a/mod/contacts.php b/mod/contacts.php index 3b428914c..769239fe0 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -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']), diff --git a/view/contact_edit.tpl b/view/contact_edit.tpl index 6c66536dd..eeedda3a4 100644 --- a/view/contact_edit.tpl +++ b/view/contact_edit.tpl @@ -33,7 +33,7 @@ <li> </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> diff --git a/view/remote_friends_common.tpl b/view/remote_friends_common.tpl index a5a36b137..fa66c4731 100644 --- a/view/remote_friends_common.tpl +++ b/view/remote_friends_common.tpl @@ -1,5 +1,5 @@ <div id="remote-friends-in-common" class="bigwidget"> - <div id="rfic-desc">$desc</div> + <div id="rfic-desc">$desc <a href="$base/common/rem/$uid/$cid">$more</a></div> {{ if $items }} {{ for $items as $item }} <div class="profile-match-wrapper"> |