From 034038849cfa710f8b65bc5ab0121cc4865b8b28 Mon Sep 17 00:00:00 2001
From: friendica <info@friendica.com>
Date: Mon, 28 Nov 2011 19:28:33 -0800
Subject: [PATCH] mysql error report fix (no mysqli), suggested friends for new
 members settings

---
 include/dba.php      |  8 +++--
 include/poller.php   |  2 ++
 include/socgraph.php | 76 +++++++++++++++++++++++++++++++++++++++-----
 mod/settings.php     | 12 ++++++-
 view/settings.tpl    |  2 ++
 5 files changed, 88 insertions(+), 12 deletions(-)

diff --git a/include/dba.php b/include/dba.php
index 3fa615d903..b89cf53766 100644
--- a/include/dba.php
+++ b/include/dba.php
@@ -76,9 +76,11 @@ class dba {
 
 			$mesg = '';
 
-			if($this->mysqli && $this->db->errno)
-				logger('dba: ' . $this->db->error);
-			else
+			if($this->mysqli) {
+				if($this->db->errno)
+					logger('dba: ' . $this->db->error);
+			}
+			elseif(mysql_errno($this->db))
 				logger('dba: ' . mysql_error($this->db));
 
 			if($result === false)
diff --git a/include/poller.php b/include/poller.php
index d9e5282f2d..d568bbd037 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -60,6 +60,8 @@ function poller_run($argv, $argc){
 
 		update_contact_birthdays();
 
+		update_suggestions();
+
 		set_config('system','last_expire_day',$d2);
 		proc_run('php','include/expire.php');
 	}
diff --git a/include/socgraph.php b/include/socgraph.php
index 87a7543de7..07dafe7f88 100644
--- a/include/socgraph.php
+++ b/include/socgraph.php
@@ -22,17 +22,26 @@ require_once('include/datetime.php');
 
 function poco_load($cid,$uid = 0,$url = null) {
 	$a = get_app();
-	if((! $url) || (! $uid)) {
-		$r = q("select `poco`, `uid` from `contact` where `id` = %d limit 1",
-			intval($cid)
-		);
-		if(count($r)) {
-			$url = $r[0]['poco'];
-			$uid = $r[0]['uid'];
+
+	if($cid) {
+		if((! $url) || (! $uid)) {
+			$r = q("select `poco`, `uid` from `contact` where `id` = %d limit 1",
+				intval($cid)
+			);
+			if(count($r)) {
+				$url = $r[0]['poco'];
+				$uid = $r[0]['uid'];
+			}
 		}
+		if(! $uid)
+			return;
 	}
-	if((! $url) || (! $uid))
+
+	if(! $url)
 		return;
+
+	logger('poco_load: ' . $url, LOGGER_DATA);
+
 	$s = fetch_url($url . '/@me/@all?fields=displayName,urls,photos');
 
 	if(($a->get_curl_code() > 299) || (! $s))
@@ -65,6 +74,7 @@ function poco_load($cid,$uid = 0,$url = null) {
 		$x = q("select * from `gcontact` where `nurl` = '%s' limit 1",
 			dbesc(normalise_link($profile_url))
 		);
+
 		if(count($x)) {
 			$gcid = $x[0]['id'];
 
@@ -212,6 +222,56 @@ function suggestion_query($uid, $start = 0, $limit = 40) {
 		intval($limit)
 	);
 
+	if(count($r))
+		return $r;
+
+	$r = q("SELECT gcontact.* from gcontact 
+		left join glink on glink.gcid = gcontact.id 
+		where uid = 0 and cid = 0 and not gcontact.nurl in ( select nurl from contact where uid = %d)
+		and not gcontact.id in ( select gcid from gcign where uid = %d )
+		order by rand limit %d, %d ",
+		intval($uid),
+		intval($start),
+		intval($limit)
+	);
+
 	return $r;
 
 }
+
+function update_suggestions() {
+
+	$a = get_app();
+
+	$done = array();
+
+	poco_load(0,0,$a->get_baseurl() . '/poco');
+
+	$done[] = $a->get_baseurl() . '/poco';
+
+	if(strlen(get_config('system','directory_submit_url'))) {
+		$x = fetch_url('http://dir.friendica.com/pubsites');
+		if($x) {
+			$j = json_decode($x);
+			if($j->entries) {
+				foreach($j->entries as $entry) {
+					$url = $entry->url . '/poco';
+					if(! in_array($url,$done))
+						poco_load(0,0,$entry->url . '/poco');
+				}
+			}
+		}
+	}
+
+	$r = q("select distinct(poco) as poco from contact where network = '%s'",
+		dbesc(NETWORK_DFRN)
+	);
+
+	if(count($r)) {
+		foreach($r as $rr) {
+			$base = substr($rr['poco'],0,strrpos($rr['poco'],'/'));
+			if(! in_array($base,$done))
+				poco_load(0,0,$base);
+		}
+	}
+}
diff --git a/mod/settings.php b/mod/settings.php
index 51db9b06eb..3f5e0f2edc 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -614,6 +614,10 @@ function settings_content(&$a) {
 	
 	$expire_photos = get_pconfig(local_user(), 'expire','photos');
 	$expire_photos = (($expire_photos===false)?0:$expire_photos); // default if not set: 0
+
+
+	$suggestme = get_pconfig(local_user(), 'system','suggestme');
+	$suggestme = (($suggestme===false)?0:$suggestme); // default if not set: 0
 	
 	if(! strlen($a->user['timezone']))
 		$timezone = date_default_timezone_get();
@@ -689,6 +693,12 @@ function settings_content(&$a) {
 	));
 
 
+	$suggestme = replace_macros($opt_tpl,array(
+			'$field' 	=> array('suggestme',  t('Allow us to suggest you as a potential friend to new members?'), $suggestme, '', array(t('No'),t('Yes'))),
+
+	));
+
+
 	$invisible = (((! $profile['publish']) && (! $profile['net-publish']))
 		? true : false);
 
@@ -770,7 +780,7 @@ function settings_content(&$a) {
 		'$permdesc' => t("\x28click to open/close\x29"),
 		'$visibility' => $profile['net-publish'],
 		'$aclselect' => populate_acl($a->user,$celeb),
-
+		'$suggestme' => $suggestme,
 		'$blockwall'=> $blockwall, // array('blockwall', t('Allow friends to post to your profile page:'), !$blockwall, ''),
 		'$blocktags'=> $blocktags, // array('blocktags', t('Allow friends to tag your posts:'), !$blocktags, ''),
 		'$expire'	=> $expire_arr,
diff --git a/view/settings.tpl b/view/settings.tpl
index 1a8d738286..3b10943f34 100644
--- a/view/settings.tpl
+++ b/view/settings.tpl
@@ -55,6 +55,8 @@ $blockwall
 
 $blocktags
 
+$suggestme
+
 {{inc field_input.tpl with $field=$expire.days }}{{endinc}}
 <div class="field input">
 	<span class="field_help"><a href="#advaced-expire-popup" id="advenced-expire" class='popupbox' title="$expire.advanced">$expire.label</a></span>
-- 
2.39.5