diff options
-rw-r--r-- | boot.php | 1 | ||||
-rw-r--r-- | include/contact_widgets.php | 46 | ||||
-rw-r--r-- | include/socgraph.php | 37 | ||||
-rw-r--r-- | mod/register.php | 4 | ||||
-rw-r--r-- | mod/zfinger.php | 10 | ||||
-rw-r--r-- | view/tpl/remote_friends_common.tpl | 6 | ||||
-rw-r--r-- | view/tpl/smarty3/remote_friends_common.tpl | 6 |
7 files changed, 28 insertions, 82 deletions
@@ -2089,7 +2089,6 @@ function construct_page(&$a) { $arr = $a->get_widgets(); ksort($arr,SORT_NUMERIC); - logger('get_widgets: ' . print_r($arr,true)); if(count($arr)) { foreach($arr as $x) { if(! array_key_exists($x['location'],$a->page)) diff --git a/include/contact_widgets.php b/include/contact_widgets.php index cb3dc0740..1a52668b0 100644 --- a/include/contact_widgets.php +++ b/include/contact_widgets.php @@ -104,58 +104,24 @@ function common_friends_visitor_widget($profile_uid) { if(local_user() == $profile_uid) return; - $cid = $zcid = 0; - - if(is_array($_SESSION['remote'])) { - foreach($_SESSION['remote'] as $visitor) { - if($visitor['uid'] == $profile_uid) { - $cid = $visitor['cid']; - break; - } - } - } + $observer_hash = get_observer_hash(); -// FIXME -// 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((! $observer_hash) || (! perm_is_allowed($profile_uid,$observer_hash,'view_contacts'))) + return; require_once('include/socgraph.php'); - if($cid) - $t = count_common_friends($profile_uid,$cid); - else - $t = count_common_friends_zcid($profile_uid,$zcid); + $t = count_common_friends($profile_uid,$observer_hash); if(! $t) return; - if($cid) - $r = common_friends($profile_uid,$cid,0,5,true); - else - $r = common_friends_zcid($profile_uid,$zcid,0,5,true); + $r = common_friends($profile_uid,$observer_hash,0,5,true); return replace_macros(get_markup_template('remote_friends_common.tpl'), array( '$desc' => sprintf( tt("%d contact in common", "%d contacts in common", $t), $t), '$base' => $a->get_baseurl(), '$uid' => $profile_uid, - '$cid' => (($cid) ? $cid : '0'), + '$cid' => $observer, '$linkmore' => (($t > 5) ? 'true' : ''), '$more' => t('show more'), '$items' => $r diff --git a/include/socgraph.php b/include/socgraph.php index b6d32e52d..6b7ee1066 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -137,48 +137,39 @@ function poco_load($xchan = null,$url = null) { } logger("poco_load: loaded $total entries",LOGGER_DEBUG); - q("delete from xlink where xlink_xchan = '%s' and xlink_updated` < UTC_TIMESTAMP - INTERVAL 2 DAY", + q("delete from xlink where xlink_xchan = '%s' and xlink_updated` < UTC_TIMESTAMP() - INTERVAL 2 DAY", dbesc($xchan) ); } -function count_common_friends($uid,$cid) { +function count_common_friends($uid,$xchan) { - $r = q("SELECT count(*) as `total` - 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 ) ", - intval($cid), - intval($uid), - intval($uid), - intval($cid) + $r = q("SELECT count(xlink_id) as total from xlink where xlink_xchan = '%s' and xlink_link in + (select abook_chan from abook where abook_xchan != '%s' and abook_channel = %d and abook_flags = 0 )", + dbesc($xchan), + dbesc($xchan), + intval($uid) ); -// logger("count_common_friends: $uid $cid {$r[0]['total']}"); - if(count($r)) + if($r) return $r[0]['total']; return 0; - } -function common_friends($uid,$cid,$start = 0,$limit=9999,$shuffle = false) { +function common_friends($uid,$xchan,$start = 0,$limit=100000000,$shuffle = false) { if($shuffle) $sql_extra = " order by rand() "; else - $sql_extra = " order by `gcontact`.`name` asc "; + $sql_extra = " order by xchan_name asc "; - $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 blocked = 0 and hidden = 0 and id != %d ) - $sql_extra limit %d, %d", - intval($cid), - intval($uid), + $r = q("SELECT * from xchan left join xlink on xlink_xchan = xchan_hash where xlink_xchan = '%s' and xlink_link in + (select abook_chan from abook where abook_xchan != '%s' and abook_channel = %d and abook_flags = 0 ) $sql_extra limit %d, %d", + dbesc($xchan), + dbesc($xchan), intval($uid), - intval($cid), intval($start), intval($limit) ); diff --git a/mod/register.php b/mod/register.php index dbf8d25b7..494e72b8f 100644 --- a/mod/register.php +++ b/mod/register.php @@ -30,7 +30,7 @@ function register_post(&$a) { $max_dailies = intval(get_config('system','max_daily_registrations')); if($max_dailies) { - $r = q("select count(*) as total from account where account_created > UTC_TIMESTAMP - INTERVAL 1 day"); + $r = q("select count(account_id) as total from account where account_created > UTC_TIMESTAMP() - INTERVAL 1 day"); if($r && $r[0]['total'] >= $max_dailies) { notice( t('Maximum daily site registrations exceeded. Please try again tomorrow.') . EOL); return; @@ -129,7 +129,7 @@ function register_content(&$a) { $max_dailies = intval(get_config('system','max_daily_registrations')); if($max_dailies) { - $r = q("select count(*) as total from account where account_created > UTC_TIMESTAMP - INTERVAL 1 day"); + $r = q("select count(account_id) as total from account where account_created > UTC_TIMESTAMP() - INTERVAL 1 day"); if($r && $r[0]['total'] >= $max_dailies) { logger('max daily registrations exceeded.'); notice( t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.') . EOL); diff --git a/mod/zfinger.php b/mod/zfinger.php index b7a89b12b..398699b20 100644 --- a/mod/zfinger.php +++ b/mod/zfinger.php @@ -126,12 +126,6 @@ function zfinger_init(&$a) { $ret['target_sig'] = $zsig; $ret['searchable'] = $searchable; -// wtf -// if(! $e['xchan_connurl']) - -// FIXME encrypt permissions when targeted so that only the target can view them, requires sending the pubkey and also checking that the target_sig is signed with that pubkey and isn't a forgery. - - logger('zot-info: ' . print_r($e,true)); $permissions = get_all_perms($e['channel_id'],(($ztarget && $zsig) ? base64url_encode(hash('whirlpool',$ztarget . $zsig,true)) @@ -143,10 +137,6 @@ function zfinger_init(&$a) { if($permissions['view_profile']) $ret['profile'] = $profile; -// if($feed && $permissions['view_stream']) -// $ret['messages'] = $zot_feed($e['channel_id'],(($ztarget && $zsig) -// ? base64url_encode(hash('whirlpool',$ztarget . $zsig,true)) -// : '' ),$mindate); // array of (verified) hubs this channel uses diff --git a/view/tpl/remote_friends_common.tpl b/view/tpl/remote_friends_common.tpl index 9e0562878..09ce3588e 100644 --- a/view/tpl/remote_friends_common.tpl +++ b/view/tpl/remote_friends_common.tpl @@ -4,13 +4,13 @@ {{ 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 href="$base/chanview?f=&url=$item.xchan_url"> + <img src="$item.xchan_photo_m" width="80" height="80" alt="$item.xchan_name" title="$item.xchan_name" /> </a> </div> <div class="profile-match-break"></div> <div class="profile-match-name"> - <a href="$itemurl" title="$item.name">$item.name</a> + <a href="$base/chanview?f=&url=$item.xchan_url" title="$item.xchan_name">$item.xchan_name</a> </div> <div class="profile-match-end"></div> </div> diff --git a/view/tpl/smarty3/remote_friends_common.tpl b/view/tpl/smarty3/remote_friends_common.tpl index 5844aac87..b1156a1a8 100644 --- a/view/tpl/smarty3/remote_friends_common.tpl +++ b/view/tpl/smarty3/remote_friends_common.tpl @@ -9,13 +9,13 @@ {{foreach $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 href="{{$base}}/chanview?f=&url={{$item.xchan_url}}"> + <img src="{{$item.xchan_photo_m}}" width="80" height="80" alt="{{$item.xchan_name}}" title="{{$item.xchan_name}}" /> </a> </div> <div class="profile-match-break"></div> <div class="profile-match-name"> - <a href="{{$itemurl}}" title="{{$item.name}}">{{$item.name}}</a> + <a href="{{$base}}/chanview?f=&url={{$item.xchan_url}}" title="{{$item.xchan_name}}">{{$item.xchan_name}}</a> </div> <div class="profile-match-end"></div> </div> |