summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandi <andi@splitbrain.org>2005-01-15 21:57:41 +0100
committerandi <andi@splitbrain.org>2005-01-15 21:57:41 +0100
commitcb70c441a3bd183229b274110a093020fc6e9504 (patch)
tree83d88f4d666f1a0cb4f115d8a2210eb420fecc36
parentf1b8b9466439585257305794e05f53dc33ebfd7f (diff)
downloadrpg-cb70c441a3bd183229b274110a093020fc6e9504.tar.gz
rpg-cb70c441a3bd183229b274110a093020fc6e9504.tar.bz2
fancy index
darcs-hash:20050115205741-9977f-75c87471f0c801a8b623e2a0af53896331f80975.gz
-rw-r--r--images/closed.gifbin0 -> 54 bytes
-rw-r--r--images/open.gifbin0 -> 54 bytes
-rw-r--r--inc/html.php38
-rw-r--r--inc/search.php5
-rw-r--r--style.css8
5 files changed, 46 insertions, 5 deletions
diff --git a/images/closed.gif b/images/closed.gif
new file mode 100644
index 000000000..8414d4d69
--- /dev/null
+++ b/images/closed.gif
Binary files differ
diff --git a/images/open.gif b/images/open.gif
new file mode 100644
index 000000000..f5d5c7e56
--- /dev/null
+++ b/images/open.gif
Binary files differ
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;
}
diff --git a/style.css b/style.css
index 7bf145b06..79cd59468 100644
--- a/style.css
+++ b/style.css
@@ -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;