first try common friends for visitors
This commit is contained in:
		| @@ -133,3 +133,42 @@ function categories_widget($baseurl,$selected = '') { | ||||
| 	)); | ||||
| } | ||||
|  | ||||
| function common_friends_visitor_widget($profile_uid) { | ||||
|  | ||||
| 	$a = get_app(); | ||||
|  | ||||
| 	if(local_user() == $profile_uid) | ||||
| 		return; | ||||
|  | ||||
| 	$cid = $zcid = 0; | ||||
|  | ||||
| 	if(can_write_wall($a,$profile_uid)) | ||||
| 		$cid = local_user(); | ||||
| 	else { | ||||
| 		if(get_my_url()) { | ||||
| 			$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;  | ||||
|  | ||||
| 	require_once('include/socgraph.php'); | ||||
|  | ||||
|  | ||||
| 	$t = count_common_friends_remote($profile_uid,$cid,$zcid); | ||||
| 	if(! $t) | ||||
| 		return; | ||||
|  | ||||
| 	$r = common_friends_remote($profile_uid,$cid,$zcid); | ||||
|  | ||||
| 	return replace_macros(get_markup_template('remote_friends_common.tpl'), array( | ||||
| 		'$desc' =>  sprintf( tt("%d friend in common", "%d friends in common", $t), $t), | ||||
| 		'$items = $r | ||||
| 	));  | ||||
|  | ||||
| }; | ||||
| @@ -199,6 +199,48 @@ function common_friends($uid,$cid) { | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| function count_common_friends_remote($uid,$cid,$zid) { | ||||
|  | ||||
| 	$r = q("SELECT count(*) as `total`  | ||||
| 		FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id` | ||||
| 		where ((`glink`.cid != 0 and `glink`.`cid` = %d) or ( `glink`.`zcid` != 0 and `glink`.`zcid` = %d )) | ||||
| 		and `glink`.`uid` = %d | ||||
| 		and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and id != %d ) ", | ||||
| 		intval($cid), | ||||
| 		intval($zid), | ||||
| 		intval($uid), | ||||
| 		intval($uid), | ||||
| 		intval($cid) | ||||
| 	); | ||||
|  | ||||
| 	if(count($r)) | ||||
| 		return $r[0]['total']; | ||||
| 	return 0; | ||||
|  | ||||
| } | ||||
|  | ||||
| function common_friends_remote($uid,$cid,$zid,$limit = 6) { | ||||
|  | ||||
| 	$r = q("SELECT `gcontact`.*  | ||||
| 		FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id` | ||||
| 		where ((`glink`.cid != 0 and `glink`.`cid` = %d) or ( `glink`.`zcid` != 0 and `glink`.`zcid` = %d )) | ||||
| 		and `glink`.`uid` = %d | ||||
| 		and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and id != %d )  | ||||
| 		order by `gcontact`.`name` asc limit 0, %d", | ||||
| 		intval($cid), | ||||
| 		intval($zid), | ||||
| 		intval($uid), | ||||
| 		intval($uid), | ||||
| 		intval($cid), | ||||
| 		intval($limit) | ||||
| 	); | ||||
|  | ||||
| 	return $r; | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| function count_all_friends($uid,$cid) { | ||||
|  | ||||
| 	$r = q("SELECT count(*) as `total` | ||||
|   | ||||
| @@ -143,6 +143,10 @@ function profile_content(&$a, $update = 0) { | ||||
| 			return $o; | ||||
| 		} | ||||
|  | ||||
|  | ||||
| 		$o .= common_friends_vistor_widget($a->profile['profile_uid']); | ||||
|  | ||||
|  | ||||
| 		if(x($_SESSION,'new_member') && $_SESSION['new_member'] && $is_owner) | ||||
| 			$o .= '<a href="newmember" id="newmember-tips" style="font-size: 1.2em;"><b>' . t('Tips for New Members') . '</b></a>' . EOL; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user