Class ::xowiki::includelet::selection (public)

 ::xowiki::IncludeletClass ::xowiki::includelet::selection[i]

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 "&nbsp;""</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
[ hide source ] | [ make this the default ]
Show another procedure: