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 -N -r1.172 -r1.173 --- openacs-4/packages/xowiki/tcl/includelet-procs.tcl 22 Oct 2011 22:16:09 -0000 1.172 +++ openacs-4/packages/xowiki/tcl/includelet-procs.tcl 26 Oct 2011 01:53:04 -0000 1.173 @@ -4136,11 +4136,33 @@ -superclass ::xowiki::Includelet \ -parameter { {parameter_declaration { - {-title ""} - {-file:required} + {-title ""} + {-levels 0} + {-file:required} }} } + # the two method "href" and "page_number" are copied from "toc" + html-file instproc href {book_mode name} { + my instvar package_id __including_page + if {$book_mode} { + set href [$package_id url]#[toc anchor $name] + } else { + set href [$package_id pretty_link -parent_id [$__including_page parent_id] $name] + } + return $href + } + + html-file instproc page_number {page_order remove_levels} { + #my log "o: $page_order" + set displayed_page_order $page_order + for {set i 0} {$i < $remove_levels} {incr i} { + regsub {^[^.]+[.]} $displayed_page_order "" displayed_page_order + } + #return $displayed_page_order + return "" + } + html-file instproc render {} { my get_parameters @@ -4150,7 +4172,7 @@ if {$page eq ""} { error "could not resolve page from item ref $file" } - return [$page html_content] + return [$page html_content -add_sections_to_folder_tree $levels -owner [self]] } } Index: openacs-4/packages/xowiki/tcl/xowiki-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-procs.tcl,v diff -u -N -r1.442 -r1.443 --- openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 22 Oct 2011 22:16:09 -0000 1.442 +++ openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 26 Oct 2011 01:53:04 -0000 1.443 @@ -2228,7 +2228,7 @@ return [my set full_file_name] } - File instproc html_content {} { + File instproc html_content {{-add_sections_to_folder_tree 0} -owner} { set parent_id [my parent_id] set fileName [my full_file_name] @@ -2247,7 +2247,44 @@ #my msg "setting src to $prefix/$src" } } + # + # + # + if {$add_sections_to_folder_tree && [info command ::__xowiki__MenuBar] ne ""} { + $owner set book_mode 1 + set pages [::xo::OrderedComposite new -destroy_on_cleanup] + if {$add_sections_to_folder_tree == 1} { + set selector //h2 + } else { + set selector {//h2 | //h3} + } + + set order 0 + foreach n [$root selectNodes $selector] { + if {[$n hasAttribute id]} { + set name [$n getAttribute id] + } else { + set name "section $n" + } + set o [::xotcl::Object new] + $o set page_order [incr $order] + $o set title [$n asText] + + set e [$doc createElement a] + $e setAttribute name $name + [$n parentNode] insertBefore $e $n + + $o set name $name + $pages add $o + } + + #$o instvar page_order title name + + ::__xowiki__MenuBar additional_sub_menu -kind folder -pages $pages -owner $owner + } + + # # return content of body # set content ""