diff options
-rw-r--r-- | images/closed.gif | bin | 0 -> 54 bytes | |||
-rw-r--r-- | images/open.gif | bin | 0 -> 54 bytes | |||
-rw-r--r-- | inc/html.php | 38 | ||||
-rw-r--r-- | inc/search.php | 5 | ||||
-rw-r--r-- | style.css | 8 |
5 files changed, 46 insertions, 5 deletions
diff --git a/images/closed.gif b/images/closed.gif Binary files differnew file mode 100644 index 000000000..8414d4d69 --- /dev/null +++ b/images/closed.gif diff --git a/images/open.gif b/images/open.gif Binary files differnew file mode 100644 index 000000000..f5d5c7e56 --- /dev/null +++ b/images/open.gif 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'); } /** @@ -688,16 +688,46 @@ function html_list_index($item){ } /** + * Index List item + * + * This user function is used in html_build_lidt to build the + * <li> tags for namespaces when displaying the page index + * it gives different classes to opened or closed "folders" + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function html_li_index($item){ + if($item['type'] == "f"){ + return '<li class="level'.$item['level'].'">'; + }elseif($item['open']){ + return '<li class="open">'; + }else{ + return '<li class="closed">'; + } +} + +/** + * Default List item + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function html_li_default($item){ + return '<li class="level'.$item['level'].'">'; +} + +/** * 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 <li> tag. Both user function need to accept + * a single item. * * @author Andreas Gohr <andi@splitbrain.org> */ -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 .= '<li class="level'.$item['level'].'">'; + $ret .= $lifunc($item); //user function $ret .= '<span class="li">'; $ret .= $func($item); //user function $ret .= '</span>'; 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; } @@ -368,6 +368,14 @@ span.li { font-weight: normal; } +li.open { + list-style-image: url(images/open.gif); +} + +li.closed { + list-style-image: url(images/closed.gif); +} + .quote { border-left: 2px solid #8cacbb; padding-left: 3px; |