fancy index

darcs-hash:20050115205741-9977f-75c87471f0c801a8b623e2a0af53896331f80975.gz
This commit is contained in:
andi 2005-01-15 21:57:41 +01:00
parent f1b8b94664
commit cb70c441a3
5 changed files with 46 additions and 5 deletions

BIN
images/closed.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 B

BIN
images/open.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 B

View File

@ -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
* <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>';

View File

@ -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;
}

View File

@ -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;