Index: openacs-4/packages/xowiki/tcl/includelet-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/includelet-procs.tcl,v diff -u -r1.69 -r1.70 --- openacs-4/packages/xowiki/tcl/includelet-procs.tcl 23 Oct 2008 12:27:31 -0000 1.69 +++ openacs-4/packages/xowiki/tcl/includelet-procs.tcl 23 Oct 2008 14:25:44 -0000 1.70 @@ -1556,6 +1556,7 @@ {-category_id} {-locale ""} {-source ""} + {-match ""} }} id } @@ -1577,7 +1578,7 @@ return $anchor } - toc instproc build_toc {package_id locale source} { + toc instproc build_toc {package_id locale source match} { my instvar navigation page_name book_mode array set navigation {parent "" position 0 current ""} @@ -1607,6 +1608,12 @@ $extra_where_clause $locale_clause"] set pages [::xowiki::Page instantiate_objects -sql $sql] + if {$match ne "" && $page_order_att ne ""} { + foreach p [$pages children] { + if {![string match $match [$p set page_order]]} {$pages delete $p} + } + } + if {$source ne ""} { # add the page_order to the objects foreach p [$pages children] { @@ -1917,7 +1924,7 @@ "list" {set s ""; set list_mode 1} "default" {set s ""} } - set pages [my build_toc $package_id $locale $source] + set pages [my build_toc $package_id $locale $source $match] if {$list_mode} { return [my render_list $pages] @@ -1940,6 +1947,7 @@ {-ordered_pages ""} {-source} {-menu_buttons edit} + {-match ""} }} } @@ -1966,6 +1974,12 @@ foreach p [$pages children] { $p set page_order $page_order([$p set name]) } + + if {$match ne ""} { + foreach p [$pages children] { + if {![string match $match [$p set page_order]]} {$pages delete $p} + } + } $pages mixin add ::xo::OrderedComposite::IndexCompare $pages orderby page_order @@ -2066,6 +2080,7 @@ {-category_id} {-menu_buttons edit} {-locale ""} + {-match ""} }} } @@ -2101,6 +2116,12 @@ } set return_url [::xo::cc url] + if {$match ne ""} { + foreach p [$pages children] { + if {![string match $match [$p set page_order]]} {$pages delete $p} + } + } + foreach o [$pages children] { $o instvar page_order title page_id name title set level [expr {[regsub -all {[.]} $page_order . page_order] + 1}]