From bda4ca4c0d9f247675f4c241ecb0d402bb380d8f Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 22 Jan 2013 00:20:25 -0800 Subject: hidden directory entries --- boot.php | 2 ++ include/zot.php | 14 +++++++++++--- mod/dirsearch.php | 11 ++++++++--- mod/profiles.php | 2 +- mod/zfinger.php | 3 ++- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/boot.php b/boot.php index eb5d54961..6d38a21a6 100644 --- a/boot.php +++ b/boot.php @@ -266,6 +266,8 @@ define ( 'HUBLOC_FLAGS_PRIMARY', 0x0001); define ( 'HUBLOC_FLAGS_UNVERIFIED', 0x0002); +define ( 'XCHAN_FLAGS_HIDDEN', 0x0001); + /** * Tag/term types diff --git a/include/zot.php b/include/zot.php index 38bac5e93..2623d68c4 100644 --- a/include/zot.php +++ b/include/zot.php @@ -531,14 +531,22 @@ function import_xchan($arr) { dbesc($xchan_hash) ); + if($r) { if($r[0]['xchan_photo_date'] != $arr['photo_updated']) - $update_photos = true; - if(($r[0]['xchan_name_date'] != $arr['name_updated']) || ($r[0]['xchan_connurl'] != $arr['connections_url'])) { - $r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s', xchan_connurl = '%s' where xchan_hash = '%s' limit 1", + $import_photos = true; + + if(($r[0]['xchan_flags'] & XCHAN_FLAGS_HIDDEN) != $arr['searchable']) + $new_flags = $r[0]['xchan_flags'] ^ XCHAN_FLAGS_HIDDEN; + else + $new_flags = $r[0]['xchan_flags']; + + if(($r[0]['xchan_name_date'] != $arr['name_updated']) || ($r[0]['xchan_connurl'] != $arr['connections_url']) || ($r[0]['xchan_flags'] != $new_flags)) { + $r = q("update xchan set xchan_name = '%s', xchan_name_date = '%s', xchan_connurl = '%s', xchan_flags = %d where xchan_hash = '%s' limit 1", dbesc($arr['name']), dbesc($arr['name_updated']), dbesc($arr['connections_url']), + intval($new_flags), dbesc($xchan_hash) ); } diff --git a/mod/dirsearch.php b/mod/dirsearch.php index b3893afe7..57132519c 100644 --- a/mod/dirsearch.php +++ b/mod/dirsearch.php @@ -74,12 +74,16 @@ function dirsearch_content(&$a) { // If &return_total=1, we count matching entries and return that as 'total_items' for use in pagination. // By default we return one page (default 80 items maximum) and do not count total entries + $logic = ((strlen($sql_extra)) ? 0 : 1); + if($limit) $qlimit = " LIMIT $limit "; else { $qlimit = " LIMIT " . intval($startrec) . " , " . intval($perpage); if($return_total) { - $r = q("SELECT COUNT(xchan_hash) AS `total` FROM xchan left join xprof on xchan_hash = xprof_hash where 1 $sql_extra"); + $r = q("SELECT COUNT(xchan_hash) AS `total` FROM xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra and not ( xchan_flags & %d) ", + intval(XCHAN_FLAGS_HIDDEN) + ); if($r) { $ret['total_items'] = $r[0]['total']; } @@ -87,9 +91,10 @@ function dirsearch_content(&$a) { } $order = " ORDER BY `xchan_name` ASC "; - $logic = ((strlen($sql_extra)) ? 0 : 1); - $r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra $order $qlimit "); + $r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra and not ( xchan_flags & %d ) $order $qlimit ", + intval(XCHAN_FLAGS_HIDDEN) + ); $ret['page'] = $page + 1; $ret['records'] = count($r); diff --git a/mod/profiles.php b/mod/profiles.php index 12c86e3a2..e857c4216 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -620,7 +620,7 @@ function profiles_content(&$a) { foreach($r as $rr) { $o .= replace_macros($tpl, array( - '$photo' => $a->get_cached_avatar_image($rr['thumb']), + '$photo' => $rr['thumb'], '$id' => $rr['id'], '$alt' => t('Profile Image'), '$profile_name' => $rr['profile_name'], diff --git a/mod/zfinger.php b/mod/zfinger.php index 3452db68c..2fb169ef1 100644 --- a/mod/zfinger.php +++ b/mod/zfinger.php @@ -72,7 +72,8 @@ function zfinger_init(&$a) { $id = $e['channel_id']; $searchable = (($e['channel_pageflags'] & PAGE_HIDDEN) ? false : true); - + if($e['xchan_flags'] & XCHAN_FLAGS_HIDDEN) + $searchable = false; // This is for birthdays and keywords, but must check access permissions -- cgit v1.2.3