Saltar al contenido principal
Inicio del contenido principal
Methods: Source: Variables:
[All Methods | Documented Methods | Hide Methods] [Display Source | Hide Source] [Show Variables | Hide Variables]

::xotcl::Class[i] ::xowiki::Includelet

Class Hierarchy of ::xowiki::Includelet

  • ::xotcl::Object[i]
    Meta-class:
    ::xotcl::Class[i]
    Methods for instances:
    __api_make_doc, __api_make_forward_doc, __nextC, __timediff, abstract, ad_doc, ad_forward, ad_proc, appendC, arrayC, asHTML, autonameC, checkC, classC, cleanupC, configureC, contains, copy, db_1rowC, debug, defaultmethod, destroyC, destroy_on_cleanup, evalC, existsC, extractConfigureArg, filterC, filterguardC, filtersearchC, forwardC, hasclass, incrC, infoC, init, instvarC, invarC, isclassC, ismetaclassC, ismixinC, isobjectC, istypeC, lappendC, log, method, mixinC, mixinguardC, move, msg, noinitC, parametercmdC, procC, procsearchC, qn, requireNamespaceC, self, serialize, setC, substC, traceC, unsetC, uplevelC, upvarC, volatileC, vwaitC
    Methods to be applied on the class (in addition to the methods provided by the meta-class):
    __exitHandler, getExitHandler, setExitHandler, unsetExitHandler
    • ::xo::Context[i]
      Meta-class:
      ::xotcl::Class[i]
      Parameter for instances:
      actual_query (default " "), locale, package_id (default "0"), parameter_declaration (default "")
      Methods for instances:
      exists_query_parameter, export_vars, get_all_query_parameter, get_parameters, initialize, original_url_and_query, process_query_parameter, query_parameter
      Methods to be applied on the class:
      Methods provided by the meta-class
      • ::xowiki::Includelet[i]
        Meta-class:
        ::xotcl::Class[i]
        Parameter for instances:
        __decoration (default "portlet"), id, name (default ""), parameter_declaration (default ""), title (default "")
        Methods for instances:
        category_clause, get_page_order, include_head_entries, initialize, js_name, resolve_page_name, screen_name
        Methods to be applied on the class (in addition to the methods provided by the meta-class):
        available_includelets, describe_includelets, detail_link, html_id, html_to_text, incr_page_order, js_name, locale_clause, publish_status_clause, require_YUI_CSS, require_YUI_JS

Class Relations

  • superclass: ::xo::Context[i]
  • subclass: ::xowiki::includelet::available-includelets[i], ::xowiki::includelet::book[i], ::xowiki::includelet::bookmarklet-button[i], ::xowiki::includelet::categories[i], ::xowiki::includelet::categories-recent[i], ::xowiki::includelet::creation-date[i], ::xowiki::includelet::delicious[i], ::xowiki::includelet::digg[i], ::xowiki::includelet::form-menu[i], ::xowiki::includelet::form-usages[i], ::xowiki::includelet::get[i], ::xowiki::includelet::graph[i], ::xowiki::includelet::iframe[i], ::xowiki::includelet::item-button[i], ::xowiki::includelet::last-visited[i], ::xowiki::includelet::most-frequent-visitors[i], ::xowiki::includelet::most-popular[i], ::xowiki::includelet::my-categories[i], ::xowiki::includelet::my-general-comments[i], ::xowiki::includelet::my-references[i], ::xowiki::includelet::my-refers[i], ::xowiki::includelet::my-tags[i], ::xowiki::includelet::my-yahoo-publisher[i], ::xowiki::includelet::presence[i], ::xowiki::includelet::recent[i], ::xowiki::includelet::rss-button[i], ::xowiki::includelet::rss-client[i], ::xowiki::includelet::selection[i], ::xowiki::includelet::set-parameter[i], ::xowiki::includelet::tags[i], ::xowiki::includelet::timeline[i], ::xowiki::includelet::toc[i], ::xowiki::includelet::unread-items[i]
::xotcl::Class create ::xowiki::Includelet \
     -superclass ::xo::Context \
     -parameter {{__decoration "portlet"} id {name ""} {parameter_declaration {}} {title ""}}

Methods

  • proc available_includelets

    ::xowiki::Includelet proc available_includelets {} {
        if {[my array exists html]} {my array unset html}
        my describe_includelets [::xowiki::Includelet info subclass]
        set result "<UL>"
        foreach d [lsort [my array names html]] {
          append result "<LI>" [my set html($d)] "</LI>" \n
        }
        append result "</UL>"
        return $result
      }
  • proc describe_includelets

    ::xowiki::Includelet proc describe_includelets includelet_classes {
        my log "--plc=$includelet_classes "
        foreach cl $includelet_classes {
          set result ""
          append result "{{<b>[namespace tail $cl]</b>"
          foreach p [$cl info parameter] {
            if {[llength $p] != 2} continue
            foreach {name value} $p break
            if {$name eq "parameter_declaration"} {
              foreach pp $value {
                #append result ""
                switch [llength $pp] {
                  1 {append result " $pp"}
                  2 {
                    set v [lindex $pp 1]
                    if {$v eq ""} {set v {""}}
                    append result " [lindex $pp 0] <em>$v</em>"
                  }
                }
                #append result "\n"
              }
            }
          }
          append result "}}\n"
          my set html([namespace tail $cl]) $result
          my describe_includelets [$cl info subclass]
        }
      }
  • proc detail_link

    ::xowiki::Includelet proc detail_link {{-absolute:boolean false} -package_id -name -instance_attributes} {
        array set __ia $instance_attributes
        if {[info exists __ia(detail_link)] && $__ia(detail_link) ne ""} {
          set link $__ia(detail_link)
        } else {
          set link [::$package_id pretty_link $name]
        }
        return $link
      }
  • proc html_id

    ::xowiki::Includelet proc html_id name {
        # Construct a valid HTML id or name. 
        # For details, see http://www.w3.org/TR/html4/types.html
        #
        # For XOTcl object names, strip first the colons
        set name [string trimleft $name :]
        
        # make sure, the ID starts with characters
        if {![regexp {^[A-Za-z]} $name]} {
          set name id_$name
        }
    
        # replace unwanted characters
        regsub -all {[^A-Za-z0-9_:.-]} $name _ name
        return $name
      }
  • proc html_to_text

    ::xowiki::Includelet proc html_to_text string {
        return [string map [list "&amp;" &] $string]
      }
  • proc incr_page_order

    ::xowiki::Includelet proc incr_page_order p {
        regexp {^(.*[.]?)([^.])$} $p _ prefix suffix
        if {[string is integer -strict $suffix]} {
          incr suffix
        } elseif {[string is lower -strict $suffix]} {
          regexp {^(.*)(.)$} $suffix _ before last
          if {$last eq "z"} {
    	set last "aa"
          } else {
    	set last [format %c [expr {[scan $last %c] + 1}]]
          }
          set suffix $before$last
        } elseif {[string is upper -strict $suffix]} {
          regexp {^(.*)(.)$} $suffix _ before last
          if {$last eq "Z"} {
    	set last "AA"
          } else {
    	set last [format %c [expr {[scan $last %c] + 1}]]
          }
          set suffix $before$last
        }
        return $prefix$suffix
      }
  • proc js_name

    ::xowiki::Includelet proc js_name name {
        return [string map [list : _ # _] $name]
      }
  • proc locale_clause

    ::xowiki::Includelet proc locale_clause {-revisions -items package_id locale} {
        set default_locale [$package_id default_locale]
        set system_locale ""
    
        set with_system_locale [regexp {(.*)[+]system} $locale _ locale]
        if {$locale eq "default"} {
          set locale $default_locale
          set include_system_locale 0
        }
        #my msg "--L with_system_locale=$with_system_locale, locale=$locale, default_locale=$default_locale"
    
        set locale_clause ""    
        if {$locale ne ""} {
          set locale_clause " and $revisions.nls_language = '$locale'" 
          if {$with_system_locale} {
            set system_locale [lang::system::locale -package_id $package_id]
            #my msg "system_locale=$system_locale, default_locale=$default_locale"
            if {$system_locale ne $default_locale} {
              set locale_clause " and ($revisions.nls_language = '$locale' 
    		or $revisions.nls_language = '$system_locale' and not exists
    		  (select 1 from cr_items i where i.name = '[string range $locale 0 1]:' || 
    		  substring($items.name,4) and i.parent_id = $items.parent_id))"
            }
          } 
        }
    
        #my msg "--locale $locale, def=$default_locale sys=$system_locale, cl=$locale_clause locale_clause=$locale_clause"
        return [list $locale $locale_clause]
      }
  • proc publish_status_clause

    ::xowiki::Includelet proc publish_status_clause {{-base_table ci} value} {
        if {$value eq "all"} {
          # legacy
          set publish_status_clause ""
        } else {
          array set valid_state [list production 1 ready 1 life 1 expired 1]
          set clauses [list]
          foreach state [split $value |] {
            if {![info exists valid_state($state)]} {
              error "no such state: '$state'; valid states are: production, ready, life, expired"
            }
            lappend clauses "$base_table.publish_status='$state'"
          }
          set publish_status_clause " and ([join $clauses { or }])"
        }
        return $publish_status_clause
      }
  • proc require_YUI_CSS

    ::xowiki::Includelet proc require_YUI_CSS {{-version 2.6.0} {-ajaxhelper true} path} {
        if {$ajaxhelper} {
          ::xo::Page requireCSS "/resources/ajaxhelper/yui/$path"
        } else {
          ::xo::Page requireCSS "http://yui.yahooapis.com/$version/build/$path"
        }
      }
  • proc require_YUI_JS

    ::xowiki::Includelet proc require_YUI_JS {{-version 2.6.0} {-ajaxhelper true} path} {
        if {$ajaxhelper} {
          ::xo::Page requireJS "/resources/ajaxhelper/yui/$path"
        } else {
          ::xo::Page requireJS "http://yui.yahooapis.com/$version/build/$path"
        }
      }
  • instproc category_clause

    ::xowiki::Includelet instproc category_clause {category_spec {item_ref p.item_id}} {
        # the category_spec has the syntax "a,b,c|d,e", where the values are category_ids
        # pipe symbols are or-operations, commas are and-operations;
        # no parenthesis are permitted
        set extra_where_clause ""
        set or_names [list]
        set ors [list]
        foreach cid_or [split $category_spec |] {
          set ands [list]
          set and_names [list]
          foreach cid_and [split $cid_or ,] {
            lappend and_names [::category::get_name $cid_and]
            lappend ands "exists (select 1 from category_object_map  where object_id = $item_ref and category_id = $cid_and)"
          }
          lappend or_names "[join $and_names { and }]"
          lappend ors "([join $ands { and }])"
        }
        set cnames "[join $or_names { or }]"
        set extra_where_clause "and ([join $ors { or }])"
        #my log "--cnames $category_spec -> $cnames"
        return [list $cnames $extra_where_clause]
      }
  • instproc get_page_order

    ::xowiki::Includelet instproc get_page_order {-source -ordered_pages -pages} {
        my instvar page_order pages ordered_pages
        # 
        # first check, if we can load the page_order from the page
        # denoted by source
        #
        if {[info exists source]} {
          set p [my resolve_page_name $source]
          if {$p ne ""} {
    	array set ia [$p set instance_attributes]
    	if {[info exists ia(pages)]} {
    	  set pages $ia(pages)
    	} elseif {[info exists ia(ordered_pages)]} {
    	  set ordered_pages $ia(ordered_pages)
    	}
          }
        }
        
        # compute a list of ordered_pages from pages, if necessary
        if {[info exists ordered_pages]} {
          foreach {order page} $ordered_pages {set page_order($page) $order}
        } else {
          set i 0
          foreach page $pages {set page_order($page) [incr i]}
        }
      }
  • instproc include_head_entries

    ::xowiki::Includelet instproc include_head_entries {} {
        # The purpose of this method is to contain all calls to include
        # CSS files, javascript, etc. in the HTML Head. This kind of
        # requirements could as well be included e.g. in render, but this
        # won't work, if "render" is cached.  This method is called before
        # render to be executed even when render is not due to caching.
        # It is intended to be overloaded by subclasses.
      }
  • instproc initialize

    ::xowiki::Includelet instproc initialize {} {
        # This method is called at a time after init and before render.
        # It can be used to alter specified parameter from the user,
        # or to influence the rendering of a decoration (e.g. title etc.)
      }
  • instproc js_name

    ::xowiki::Includelet instproc js_name {} {
        return [[self class] js_name [self]]
      }
  • instproc resolve_page_name

    ::xowiki::Includelet instproc resolve_page_name page_name {
        return [[my set __including_page] resolve_included_page_name $page_name]
      }
  • instproc screen_name

    ::xowiki::Includelet instproc screen_name user_id {
        acs_user::get -user_id $user_id -array user
        return [expr {$user(screen_name) ne "" ? $user(screen_name) : $user(name)}]
      }

Methods: Source: Variables:
[All Methods | Documented Methods | Hide Methods] [Display Source | Hide Source] [Show Variables | Hide Variables]
Mi calendario