xowiki::Package instproc invoke
<instance of xowiki::Package
> invoke
Defined in
- Testcases:
-
create_folder_with_page, xowf, create_workflow_with_instance, create_form_with_form_instance
Source code:
if {![regexp {^[.a-zA-Z0-9_-]+$} $method]} {
return [:error_msg "No valid method provided!"]
}
ad_try {
set page_or_package [:resolve_page -lang [:default_language] ${:object} method]
} on error {errorMsg} {
ad_log error $errorMsg
return [:error_msg -template_file $error_template [ns_quotehtml $errorMsg]]
}
::xo::cc invoke_object $page_or_package
if {$page_or_package ne ""} {
if {[$page_or_package istype ::xowiki::FormPage] && [$page_or_package info vars storage_type] eq ""} {ad_log notice "$page_or_package has no storage_type"}
if {[$page_or_package istype ::xowiki::FormPage]
&& [$page_or_package is_link_page]
} {
set deref [[self class] exists delegate_link_to_target($method)]
if {[:exists_query_parameter deref]} {
set deref [:query_parameter deref:boolean]
}
if {$deref} {
set target [$page_or_package get_target_from_link_page]
if {$target ne ""} {
$target set __link_source $page_or_package
set page_or_package $target
}
}
}
if {[$page_or_package procsearch www-$method] eq ""} {
return [:error_msg "Method <b>'[ns_quotehtml $method]'</b> is not defined for this object"]
} else {
if {$batch_mode} {
${:id} set __batch_mode 1
}
ad_try {
set r [:call $page_or_package $method ""]
} on error {errorMsg} {
if {[string match "*for parameter*" $errorMsg]} {
ad_return_complaint 1 [ns_quotehtml $errorMsg]
ad_script_abort
} else {
ad_log error "error during invocation of method $method errorMsg: $errorMsg, $::errorInfo"
return [:error_msg -status_code 500 -template_file $error_template "error during [ns_quotehtml $method]: <pre>[ns_quotehtml $errorMsg]</pre>"]
}
} finally {
if {$batch_mode} {
${:id} unset -nocomplain __batch_mode
}
}
return $r
}
} else {
set path [::xowiki::Includelet html_encode ${:object}]
set edit_snippet [:create_new_snippet $path]
return [:error_msg -status_code 404 -template_file $error_template "Page <b>'[ns_quotehtml $path]'</b> is not available. $edit_snippet"]
}
XQL Not present:Generic, PostgreSQL, Oracle
[
hide source ]
| [
make this the default ]