Begin Main Navigation
| Methods: | Source: | Variables: |
|---|---|---|
| [All Methods | Documented Methods | Hide Methods] | [Display Source | Hide Source] | [Show Variables | Hide Variables] |
::xowiki::PageClass Hierarchy of ::xowiki::Page
- ::xotcl::Object
![]()
- Meta-class:
- ::xotcl::Class
- 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::db::Object
![]()
- ::xo::db::CrItem
![]()
- Meta-class:
- ::xo::db::CrClass
- Parameter for instances:
- package_id, parent_id (default "-100"), publish_status (default "ready")
- Methods for instances:
- current_user_id, delete, descriptionC, fix_content, initialize_loaded_object, item_idC, mime_typeC, nameC, nls_languageC, privilege=creator, publish_dateC, rename, revision_idC, revisions, save, save_new, set_live_revision, textC, titleC, update_attribute_from_slot, update_content, update_revision
- Methods to be applied on the class:
- Methods provided by the meta-class
- ::xowiki::Page
![]()
- Meta-class:
- ::xo::db::CrClass
- Parameter for instances:
- absolute_links (default "0"), do_substitutions (default "1"), lang (default "en"), render_adp (default "1")
- Methods for instances:
- adp_subst, anchor, build_instance_attribute_map, build_name, category_export, category_import, check_adp_include_path, condition=match, condition=regexp, copy_content_vars, create-new, create_form_field, create_form_fields, create_form_fields_from_form_constraints, create_raw_form_field, creation_userC, creatorC, default_instance_attributes, delete, delete-revision, demarshall, descripionC, diff, div, edit, error_during_render, error_in_includelet, exists_form_parameterC, exists_query_parameterC, field_names, find_slot, footer, form_field_index, form_parameterC, get_content, get_description, get_form_data, get_instance_attributes, get_rich_text_spec, htmlFooter, include, include_content, include_portlet, initialize_loaded_object, instantiate_includelet, is_new_entry, last_modifiedC, list, lookup_cached_form_field, lookup_form_field, make-live-revision, map_categories, map_party, marshall, mime_typeC, nameC, nls_languageC, page_idC, page_orderC, popular-tags, publish_dateC, query_parameterC, record_last_visited, regsub_eval, render, render_includelet, resolve_included_page_name, reverse_map_party, reverse_map_party_attribute, revisions, save, save-tags, save_attributes, save_data, save_new, set_content, show_fields, substitute_markup, textC, titleC, translate, unescape, unset_temporary_instance_variables, update_references, validate=form_constraints, validate=name, validate=page_order, view
- Methods to be applied on the class (in addition to the methods provided by the meta-class):
- __render_html, container_already_rendered, get_tags, import, quoted_html_content, save_tags
Class Relations
::xo::db::CrClass create ::xowiki::Page \
-superclass ::xo::db::CrItem \
-parameter {{absolute_links 0} {do_substitutions 1} {lang en} {render_adp 1}}
<instance of ::xowiki::Page> get_form_data \ [ -field_names field_names ] form_fields
Get the values from the form and store it as instance attributes.
- Switches:
- -field_names (optional)
- Parameters:
- form_fields
::xowiki::Page instproc get_form_data {-field_names form_fields} { set validation_errors 0 set category_ids [list] array set containers [list] if {[my exists instance_attributes]} { array set __ia [my set instance_attributes] } if {![info exists field_names]} { set field_names [::xo::cc array names form_parameter] } #my msg "fields [::xo::cc array get form_parameter]" # we have a form and get all form variables foreach att $field_names { #my msg "getting att=$att" set processed($att) 1 switch -glob -- $att { __category_* { set f [my lookup_form_field -name $att $form_fields] set value [$f value [::xo::cc form_parameter $att]] foreach v $value {lappend category_ids $v} } __* { # other internal variables (like __object_name) are ignored } _* { # instance attribute fields set f [my lookup_form_field -name $att $form_fields] set value [$f value [string trim [::xo::cc form_parameter $att]]] set varname [string range $att 1 end] # get rid of strange utf-8 characters hex C2AD (firefox bug?) # ns_log notice "FORM_DATA var=$varname, value='$value' s=$s" if {$varname eq "text"} {regsub -all "Â" $value "" value} # ns_log notice "FORM_DATA var=$varname, value='$value' s=$s" if {![string match *.* $att]} {my set $varname $value} } default { # user form content fields if {[regexp {^(.+)[.](tmpfile|content-type)} $att _ file field]} { set f [my lookup_form_field -name $file $form_fields] $f $field [string trim [::xo::cc form_parameter $att]] } else { set f [my lookup_form_field -name $att $form_fields] set value [$f value [string trim [::xo::cc form_parameter $att]]] #my msg "value of $att ($f) = '$value'" if {![string match *.* $att]} {set __ia($att) $value} if {[$f exists is_category_field]} {foreach v $value {lappend category_ids $v}} } } } if {[string match *.* $att]} { foreach {container component} [split $att .] break lappend containers($container) $component } } #my msg "containers = [array names containers]" #my msg "ia=[array get __ia]" # # In a second iteration, combine the values from the components # of a container to the value of the container. # foreach c [array names containers] { switch -glob -- $c { __* {} _* { set f [my lookup_form_field -name $c $form_fields] set processed($c) 1 my set [string range $c 1 end] [$f value] } default { set f [my lookup_form_field -name $c $form_fields] set processed($c) 1 #my msg "compute value of $c" set __ia($c) [$f value] #my msg "__ia($c) is set to '[$f value]'" } } } # # The first round was a processing based on the transmitted input # fields of the forms. Now we use the formfields to complete the # data and to validate it. # foreach f $form_fields { #my msg "validate $f [$f name] [info exists processed([$f name])]" set att [$f name] # Certain form field types (e.g. checkboxes) are not transmitted, if not # checked. Therefore, we have not processed these fields above and # have to do it now. if {![info exists processed($att)]} { #my msg "form field $att not yet processed" switch -glob -- $att { __* { # other internal variables (like __object_name) are ignored } _* { # instance attribute fields set varname [string range $att 1 end] set preset "" if {[my exists $varname]} {set preset [my set $varname]} set v [$f value_if_nothing_is_returned_from_from $preset] set value [$f value $v] if {$v ne $preset} { if {![string match *.* $att]} {my set $varname $value} } } default { # user form content fields set preset "" if {[info exists __ia($att)]} {set preset $__ia($att)} set v [$f value_if_nothing_is_returned_from_from $preset] set value [$f value $v] if {$v ne $preset} { if {![string match *.* $att]} {set __ia($att) $value} } } } } # # Run validators # set validation_error [$f validate [self]] #my msg "validation of [$f name] with value '[$f value]' returns '$validation_error'" if {$validation_error ne ""} { $f error_msg $validation_error incr validation_errors } } if {$validation_errors == 0} { # # Postprocess based on form fields based on form-fields methods. # Postprocessing might force to refresh some values in __ia() # foreach f $form_fields { $f convert_to_internal if {[$f exists __refresh_instance_attributes]} { #my msg "refresh [$f set __refresh_instance_attributes]" foreach {att val} [$f set __refresh_instance_attributes] { set __ia($att) $val } } } } #my msg "--set instance attributes to [array get __ia]" my instance_attributes [array get __ia] my array set __ia [my instance_attributes] #my msg category_ids=$category_ids return [list $validation_errors [lsort -unique $category_ids]] }
<instance of ::xowiki::Page> include [ -configure configure ] \ arg
Include the html of the includelet. The method generates an includelet object (might be an other xowiki page) and renders it and returns either html or an error message.
- Switches:
- -configure (optional)
- Parameters:
- arg
::xowiki::Page instproc include {-configure arg} { set page [my instantiate_includelet $arg] if {$page eq ""} { return [my error_during_render [_ xowiki.error-includelet-unknown]] } if {[$page istype ::xowiki::Page]} { set package_id [$page package_id] set allowed [[$package_id set policy] check_permissions -package_id $package_id -user_id [::xo::cc set untrusted_user_id] $page view] if {!$allowed} { return "<div class='errorMsg'>Unsufficient priviledges to view content of [$page name].</div>" } } if {[info exists configure]} { eval $page configure $configure } return [my render_includelet $page] }
<instance of ::xowiki::Page> resolve_included_page_name \ page_name
Determine the page object for the specified page name. The specified page name might have the form //some_other_instance/page_name, in which case the page is resolved from some other package instance. If the page_name does not contain a language prefix, the language prefix of the including page is used.
- Parameters:
- page_name
::xowiki::Page instproc resolve_included_page_name page_name { if {$page_name ne ""} { set page [[my package_id] resolve_page_name_and_init_context -lang [my lang] $page_name] if {$page eq ""} { error "Cannot find page '$page_name' to be included in page '[my name]'" } } else { set page [self] } return $page }
| Methods: | Source: | Variables: |
|---|---|---|
| [All Methods | Documented Methods | Hide Methods] | [Display Source | Hide Source] | [Show Variables | Hide Variables] |