Index: openacs-4/packages/xowiki/tcl/category-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/category-procs.tcl,v
diff -u -r1.16 -r1.17
--- openacs-4/packages/xowiki/tcl/category-procs.tcl 4 Jan 2009 19:24:39 -0000 1.16
+++ openacs-4/packages/xowiki/tcl/category-procs.tcl 13 May 2009 13:23:27 -0000 1.17
@@ -31,21 +31,17 @@
}
CatTree instproc open_tree {} {;}
- CatTree instproc render {{-tree_style:boolean false}} {
- set content ""
- if {$tree_style} {
- #::xo::Page requireCSS "/resources/acs-templating/mktree.css"
- ::xo::Page requireCSS "/resources/xowiki/cattree.css"
- ::xo::Page requireJS "/resources/acs-templating/mktree.js"
-
- foreach c [my children] {append content [$c render] \n}
- return "
"
- } else {
- Category instmixin Category::section_style
- foreach c [my children] {append content [$c render] \n}
- Category instmixin ""
- return $content
+ CatTree instproc render {{-style mktree}} {
+ set renderer CategoryStyle=$style
+ if {![my isclass $renderer]} {
+ error "No such renderer $renderer (avalialble [info cmd ::xowiki::CategoryStyle=*]"
}
+
+ Category instmixin $renderer
+ set content [$renderer render [self]]
+ Category instmixin ""
+
+ return $content
}
#
@@ -91,15 +87,23 @@
#
# These are the list-specific rendering functions
#
-
- Category instproc render_item {{-highlight:boolean false} item} {
+ Class create CategoryStyle=mktree
+ CategoryStyle=mktree proc render {cattree} {
+ #::xo::Page requireCSS "/resources/acs-templating/mktree.css"
+ ::xo::Page requireCSS "/resources/xowiki/cattree.css"
+ ::xo::Page requireJS "/resources/acs-templating/mktree.js"
+
+ foreach c [$cattree children] {append content [$c render] \n}
+ return ""
+ }
+ CategoryStyle=mktree instproc render_item {{-highlight:boolean false} item} {
if {$highlight} {
return "$item\n"
} else {
return "$item\n"
}
}
- Category instproc render_category {{-open:boolean false} cat_content} {
+ CategoryStyle=mktree instproc render_category {{-open:boolean false} cat_content} {
set open_state [expr {[my set open_requests]>0?"class='liOpen'" : "class='liClosed'"}]
set c [expr {[my exists count] ? "([my count])" : ""}]
return "[my label] $c\n \n"
@@ -108,16 +112,21 @@
#
# These are the section-specific rendering functions
#
-
- Class Category::section_style
- Category::section_style instproc render_item {{-highlight:boolean false} item} {
+
+ Class create CategoryStyle=sections
+ CategoryStyle=sections proc render {cattree} {
+ set content ""
+ foreach c [$cattree children] {append content [$c render] \n}
+ return $content
+ }
+ CategoryStyle=sections instproc render_item {{-highlight:boolean false} item} {
if {$highlight} {
return "$item
\n"
} else {
return "$item
\n"
}
}
- Category::section_style instproc render_category {{-open:boolean false} cat_content} {
+ CategoryStyle=sections instproc render_category {{-open:boolean false} cat_content} {
set section [expr {[my level] + 2}]
return "[my label]\n\
$cat_content
\n"