From cb70c441a3bd183229b274110a093020fc6e9504 Mon Sep 17 00:00:00 2001 From: andi Date: Sat, 15 Jan 2005 21:57:41 +0100 Subject: fancy index darcs-hash:20050115205741-9977f-75c87471f0c801a8b623e2a0af53896331f80975.gz --- inc/html.php | 38 ++++++++++++++++++++++++++++++++++---- inc/search.php | 5 ++++- 2 files changed, 38 insertions(+), 5 deletions(-) (limited to 'inc') diff --git a/inc/html.php b/inc/html.php index 7624e238c..37fad428a 100644 --- a/inc/html.php +++ b/inc/html.php @@ -663,7 +663,7 @@ function html_index($ns){ $data = array(); search($data,$conf['datadir'],'search_index',array('ns' => $ns)); - print html_buildlist($data,'idx','html_list_index'); + print html_buildlist($data,'idx','html_list_index','html_li_index'); } /** @@ -687,17 +687,47 @@ function html_list_index($item){ return $ret; } +/** + * Index List item + * + * This user function is used in html_build_lidt to build the + *
  • tags for namespaces when displaying the page index + * it gives different classes to opened or closed "folders" + * + * @author Andreas Gohr + */ +function html_li_index($item){ + if($item['type'] == "f"){ + return '
  • '; + }elseif($item['open']){ + return '
  • '; + }else{ + return '
  • '; + } +} + +/** + * Default List item + * + * @author Andreas Gohr + */ +function html_li_default($item){ + return '
  • '; +} + /** * Build an unordered list * * Build an unordered list from the given $data array * Each item in the array has to have a 'level' property * the item itself gets printed by the given $func user - * function + * function. The second and optional function is used to + * print the
  • tag. Both user function need to accept + * a single item. * * @author Andreas Gohr */ -function html_buildlist($data,$class,$func){ +function html_buildlist($data,$class,$func,$lifunc='html_li_default'){ $level = 0; $opens = 0; $ret = ''; @@ -723,7 +753,7 @@ function html_buildlist($data,$class,$func){ $level = $item['level']; //print item - $ret .= '
  • '; + $ret .= $lifunc($item); //user function $ret .= ''; $ret .= $func($item); //user function $ret .= ''; diff --git a/inc/search.php b/inc/search.php index c620b7133..46b36f816 100644 --- a/inc/search.php +++ b/inc/search.php @@ -79,6 +79,8 @@ function search(&$data,$base,$func,$opts,$dir='',$lvl=1){ function search_index(&$data,$base,$file,$type,$lvl,$opts){ $return = true; + $item = array(); + if($type == 'd' && !preg_match('#^'.$file.'(/|$)#','/'.$opts['ns'])){ //add but don't recurse $return = false; @@ -95,7 +97,8 @@ function search_index(&$data,$base,$file,$type,$lvl,$opts){ $data[]=array( 'id' => $id, 'type' => $type, - 'level' => $lvl ); + 'level' => $lvl, + 'open' => $return ); return $return; } -- cgit v1.2.3