aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--boot.php2
-rw-r--r--include/zot.php14
-rw-r--r--mod/dirsearch.php11
-rw-r--r--mod/profiles.php2
-rw-r--r--mod/zfinger.php3
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