Class ::xowiki::includelet::selection (public)
::xowiki::IncludeletClass ::xowiki::includelet::selection
Defined in /var/www/openacs.org/packages/xowiki/tcl/includelet-procs.tcl
Provide a selection of pages
- Testcases:
- No testcase defined.
Source code: namespace eval ::xowiki::includelet {} ::nsf::object::alloc ::xowiki::IncludeletClass ::xowiki::includelet::selection {set :__default_metaclass ::xotcl::Class set :__default_superclass ::xotcl::Object set :aggregating false set :cacheable false set :localized true set :personalized true} ::xowiki::includelet::selection instproc render {} { :get_parameters set :package_id $package_id set :edit_links $edit_links if {[info exists source]} { :get_page_order -source $source } else { :get_page_order -pages $pages -ordered_pages $ordered_pages } set publish_status_clause [expr {[info exists publish_status] ? [::xowiki::Includelet publish_status_clause -base_table p $publish_status] : ""}] set pages [::xowiki::Page instantiate_objects -sql "select page_id, name, title, item_id from xowiki_page_live_revision p where parent_id = [ns_dbquotevalue [::$package_id folder_id]] and name in ([ns_dbquotelist [array names :page_order]]) $publish_status_clause [::xowiki::Page container_already_rendered item_id]" ] foreach p [$pages children] { $p set page_order $:page_order([$p set name]) } if {$range ne ""} { lassign [split $range -] from to foreach p [$pages children] { if {[$pages __value_compare [$p set page_order] $from 0] == -1 || [$pages __value_compare [$p set page_order] $to 0] > 0} { $pages delete $p } } } $pages orderby -type index page_order return [:render_children $pages $menu_buttons] } ::xowiki::includelet::selection instproc render_children {pages menu_buttons} { set output "" foreach o [$pages children] { $o instvar page_order title page_id name set level [expr {[regsub {[.]} $page_order . page_order] + 1}] set edit_markup "" set p [::xo::db::CrClass get_instance_from_db -item_id 0 -revision_id $page_id] $p references clear switch [$p info class] { ::xowiki::Form { set content [$p render] } default { set content [$p render -with_footer false] set content [string map [list "\{\{" "\\\{\{"] $content] } } set menu [list] foreach b $menu_buttons { if {[info commands ::xowiki::includelet::$b] eq ""} { set b $b-item-button } set html [$p include [list $b -book_mode true]] if {$html ne ""} {lappend menu $html} } set label "$page_order $title" append output "<h$level class='book'>" "<div style='float: right'>" [join $menu " "] "</div>" "<a name='[ns_quotehtml [toc anchor $name]]'></a>[ns_quotehtml $label]</h$level>" $content } return $output } ::xowiki::includelet::selection instparametercmd parameter_declaration ::xowiki::includelet::selection instparametercmd __decoration ::nsf::relation::set ::xowiki::includelet::selection superclass ::xowiki::Includelet ::nsf::relation::set ::xowiki::includelet::selection class-mixin ::xowiki::includelet::PageReorderSupport ::nx::slotObj -container slot ::xowiki::includelet::selection ::xowiki::includelet::selection::slot eval {set :__parameter { {__decoration plain} {parameter_declaration { {-edit_links:boolean true} {-pages ""} {-ordered_pages ""} {-source} {-publish_status ready} {-menu_buttons edit} {-range ""} }} }} ::nsf::object::alloc ::xotcl::Attribute ::xowiki::includelet::selection::slot::__decoration {set :accessor public set :configurable true set :convert false set :default plain set :defaultmethods {} set :disposition alias set :domain ::xowiki::includelet::selection set :incremental 0 set :manager ::xowiki::includelet::selection::slot::__decoration set :methodname __decoration set :multiplicity 1..1 set :name __decoration set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::xowiki::includelet::selection::slot::parameter_declaration {set :accessor public set :configurable true set :convert false set :default { {-edit_links:boolean true} {-pages ""} {-ordered_pages ""} {-source} {-publish_status ready} {-menu_buttons edit} {-range ""} } set :defaultmethods {} set :disposition alias set :domain ::xowiki::includelet::selection set :incremental 0 set :manager ::xowiki::includelet::selection::slot::parameter_declaration set :methodname parameter_declaration set :multiplicity 1..1 set :name parameter_declaration set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init}XQL Not present: Generic, PostgreSQL, Oracle