summaryrefslogtreecommitdiff
path: root/inc/search.php
diff options
context:
space:
mode:
authorAdrian Lang <mail@adrianlang.de>2011-09-04 13:52:26 +0200
committerAdrian Lang <mail@adrianlang.de>2011-09-04 15:05:39 +0200
commit923510088dda99cb2790b15308593e47369d4f01 (patch)
tree10d8e86204aef762295c40212845fa88d673db7e /inc/search.php
parent783d2e49b2d8e12ed3bc0693b56c013215099a4c (diff)
downloadrpg-923510088dda99cb2790b15308593e47369d4f01.tar.gz
rpg-923510088dda99cb2790b15308593e47369d4f01.tar.bz2
tmp: Introduce sneaky2
Diffstat (limited to 'inc/search.php')
-rw-r--r--inc/search.php19
1 files changed, 19 insertions, 0 deletions
diff --git a/inc/search.php b/inc/search.php
index bc7c35482..5ba28a1fc 100644
--- a/inc/search.php
+++ b/inc/search.php
@@ -596,6 +596,25 @@ function search_universal(&$data,$base,$file,$type,$lvl,$opts){
if($opts['firsthead']) $item['title'] = p_get_first_heading($item['id'],METADATA_DONT_RENDER);
}
+ if($type == 'd' && !$opts['skipacl'] && $opts['sneakyacl'] && $item['perm'] < AUTH_READ) {
+ if ($opts['sneakyacl'] === 2) {
+ // Perform shy sneaking, i. e. just show the ns if it contains
+ // something accessible
+ $old_data_count = count($data);
+ search($data,$base,'search_universal',$opts,$file,$lvl+1);
+ if (count($data) > $old_data_count) {
+ // Contains something visible
+ array_splice($data, $old_data_count, $return ? 0 : count($data),
+ array($item));
+ } else {
+ // Contains nothing visible, so hide
+ $data = array_slice($data, 0, $old_data_count);
+ }
+ }
+ // Stop recursing in any case since we did it ourself
+ return false;
+ }
+
// finally add the item
$data[] = $item;
return $return;