]> git.mxchange.org Git - friendica.git/commitdiff
Merge branch 'master', remote-tracking branch 'remotes/upstream/master'
authorSimon L'nu <simon.lnu@gmail.com>
Wed, 2 May 2012 05:54:59 +0000 (01:54 -0400)
committerSimon L'nu <simon.lnu@gmail.com>
Wed, 2 May 2012 05:54:59 +0000 (01:54 -0400)
* remotes/upstream/master:
  final touches - show friends in common with total strangers from different sites
  fix size
  cross fingers
  reduce the scope a bit
  add template
  fn not found
  really fat fingers today - though none of this has gone further than my own site
  another one
  typo
  first try common friends for visitors

* master:

include/contact_widgets.php
include/gprobe.php
include/socgraph.php
mod/profile.php
view/match.tpl
view/remote_friends_common.tpl [new file with mode: 0644]

index 96b02f29391c816926739db27dc07fb86d552bc1..cfe27c5c9ba36997b4bb52e1583decd39360910b 100644 (file)
@@ -133,3 +133,47 @@ 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');
+
+       if($cid)
+               $t = count_common_friends($profile_uid,$cid);
+       else
+               $t = count_common_friends($profile_uid,$cid);
+       if(! $t)
+               return;
+
+       if($cid)
+               $r = common_friends($profile_uid,$cid,5);
+       else
+               $r = common_friends_zcid($profile_uid,$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
+       )); 
+
+};
\ No newline at end of file
index fdf786ca81e3e09acbd42e0cedba935589ca2fd4..5ca42729a701c60159bfd2b0213831ee86bef229 100644 (file)
@@ -2,6 +2,7 @@
 
 require_once("boot.php");
 require_once('include/Scrape.php');
+require_once('include/socgraph.php');
 
 function gprobe_run($argv, $argc){
        global $a, $db;
index 4a1c8a1cad26fc052a92c43777bcb27546971157..a08d58074187eead84b196a7263671c302a169ab 100644 (file)
@@ -182,23 +182,58 @@ function count_common_friends($uid,$cid) {
 }
 
 
-function common_friends($uid,$cid) {
+function common_friends($uid,$cid,$limit=9999) {
 
        $r = q("SELECT `gcontact`.* 
                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 id != %d ) 
-               order by `gcontact`.`name` asc ",
+               order by `gcontact`.`name` asc limit 0, %d",
                intval($cid),
                intval($uid),
                intval($uid),
-               intval($cid)
+               intval($cid),
+               intval($limit)
        );
 
        return $r;
 
 }
 
+
+function count_common_friends_zcid($uid,$zcid) {
+
+       $r = q("SELECT count(*) as `total` 
+               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 ) ",
+               intval($zcid),
+               intval($uid)
+       );
+
+       if(count($r))
+               return $r[0]['total'];
+       return 0;
+
+}
+
+function common_friends_zcid($uid,$zcid,$limit = 6) {
+
+       $r = q("SELECT `gcontact`.* 
+               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 ) 
+               order by `gcontact`.`name` asc limit 0, %d",
+               intval($zcid),
+               intval($uid),
+               intval($limit)
+       );
+
+       return $r;
+
+}
+
+
 function count_all_friends($uid,$cid) {
 
        $r = q("SELECT count(*) as `total`
index e9d4ca344e978899b1787f9d3850148f20f5279f..69f044e89f4561f02bf4cfe357cd129cf22eec70 100644 (file)
@@ -143,6 +143,10 @@ function profile_content(&$a, $update = 0) {
                        return $o;
                }
 
+
+               $o .= common_friends_visitor_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;
 
index 5f2fc7a302f1b4b0d109edff5660fa07e03981a2..b052845ae744d23afb35276708d5b333d02dcc55 100644 (file)
@@ -13,4 +13,4 @@
        <div class="profile-match-connect"><a href="$connlnk" title="$conntxt">$conntxt</a></div>
        {{ endif }}
 
-</div>
\ No newline at end of file
+</div>
diff --git a/view/remote_friends_common.tpl b/view/remote_friends_common.tpl
new file mode 100644 (file)
index 0000000..a5a36b1
--- /dev/null
@@ -0,0 +1,21 @@
+<div id="remote-friends-in-common" class="bigwidget">
+       <div id="rfic-desc">$desc</div>
+       {{ if $items }}
+       {{ for $items as $item }}
+       <div class="profile-match-wrapper">
+               <div class="profile-match-photo">
+                       <a href="$item.url">
+                               <img src="$item.photo" width="80" height="80" alt="$item.name" title="$item.name" />
+                       </a>
+               </div>
+               <div class="profile-match-break"></div>
+               <div class="profile-match-name">
+                       <a href="$itemurl" title="$item.name">$item.name</a>
+               </div>
+               <div class="profile-match-end"></div>
+       </div>
+       {{ endfor }}
+       {{ endif }}
+       <div id="rfic-end" class="clear"></div>
+</div>
+