Class ::xowiki::includelet::decoration=portlet

::xowiki::includelet::decoration=portlet[i] create ...

Class Relations

  • class: ::xotcl::Class[i]
  • superclass: ::xotcl::Object[i]
::xotcl::Class create ::xowiki::includelet::decoration=portlet \
     -superclass ::xotcl::Object

Methods (to be applied on instances)

  • render (scripted)

    set name       ${:name}
    set title      ${:title}
    set package_id ${:package_id}
    set class      [namespace tail [:info class]]
    set id         [expr {[info exists :id] ? "id='[:id]'" : ""}]
    set html       [next]
    set localized_title [ns_quotehtml [::xo::localize $title]]
    set href [::$package_id pretty_link -parent_id [::$package_id folder_id] $name]
    set link [expr {[string match "*:*" $name]
                    ? "<a href='[ns_quotehtml $href]'>$localized_title</a>"
                    : $localized_title}]
    ::xo::render_localizer
    
    switch [::xowiki::CSS toolkit] {
      bootstrap -
      bootstrap5 {
        if {$link ne ""} {
          set template [ns_trim -delimiter | {
            |<div class="[xowiki::CSS class card]">
            |  <div class="[xowiki::CSS class card-header]">$link</div>
            |  <div $id class="[xowiki::CSS class card-body]">$html</div>
            |</div>}]
        } else {
          set template [ns_trim -delimiter | {
            |<div class="[xowiki::CSS class card]">
            |  <div $id class="[xowiki::CSS class card-body]">$html</div>
            |</div>}]
        }
      }
      yui {
        set template [ns_trim -delimiter | {
          |<div class='portlet-header'>
          |  <div class='portlet-title-no-controls'>$link</div>
          |</div>
          |<div $id class='portlet'>$html</div>}]
      }
    }
    return [subst [ns_trim -delimiter | {
      |<div class='$class'>
      |  <div class='portlet-wrapper'>
      |    [subst $template]
      |  </div>
      |</div>}]]