Index: openacs-4/packages/xowiki/lib/view.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/lib/view.tcl,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/xowiki/lib/view.tcl 12 Jun 2006 17:33:07 -0000 1.1 +++ openacs-4/packages/xowiki/lib/view.tcl 26 Jul 2006 22:56:45 -0000 1.2 @@ -1,78 +1,31 @@ -ad_page_contract { - view a wiki item - @author Gustaf Neumann (gustaf.neumann@wu-wien.ac.at) - @creation-date Oct 23, 2005 - @cvs-id $Id$ - - @param item_id Item to be viewed - @param revision_id optional revision of the item - @param object_type the source class providing the data source -} -query { - {item_id:integer 0} - {revision_id:integer 0} - {folder_id:optional} - {object_type:optional} - {master 1} +if {[info exists url]} { + # new style, the url is sufficient + regexp {^(/[^/]+)/?(.*)$} $url _ instance path + array set node_info [site_node::get -url $instance] + ns_log notice "--package_id = $node_info(package_id) instance=$instance path=$path" + set package_id $node_info(package_id) + set Package [::xowiki::Package create ::$package_id -folder_id 0 -use_ns_conn false] + $Package set_url -url $url +} else { + # old style, use item_id + set m view + set page [::xowiki::Package instantiate_from_page -item_id $item_id] + $page instvar package_id + set Package ::$package_id } +::xowiki::Package process_query \ + -defaults [list m view \ + edit_return_url [ns_conn url] \ + template_file "view-links" \ + folder_id 0 \ + package_id $package_id] -set package_id [ad_conn package_id] -permission::require_permission -object_id $package_id -privilege "read" -set write_p [permission::permission_p -object_id $package_id -privilege "write"] -set admin_p [permission::permission_p -object_id $package_id -privilege "admin"] +set html [$Package invoke -method $m] -::xowiki::Page set recursion_count 0 -set page [::Generic::CrItem instantiate \ - -item_id $item_id \ - -revision_id $revision_id] +set fn [get_server_root]/packages/xowiki/www/resources/xowiki.css +set F [open $fn]; set css [read $F]; close $F +set css "" +set html $css$html -if {![info exists folder_id]} {set folder_id [$page set parent_id]} -::xowiki::Page require_folder_object -folder_id $folder_id -package_id $package_id - -set content [$page render] - -if {[ad_parameter "user_tracking" -package_id $package_id] } { - $page record_last_visited -} -set references [$page references] -set header_stuff [::xowiki::Page header_stuff] -#ns_log notice "--HEADER-Stuff = <$header_stuff>" - -if {[$page exists master] && $master == 1} {set master [$page set master]} - -# export title, text, and lang_links to current scope -$page instvar title name text lang_links -if {$master} { - set context [list $title] - - set base [apm_package_url_from_id $package_id] - set rev_link [export_vars -base ${base}revisions {{page_id $item_id} name}] - set edit_link [export_vars -base ${base}edit {item_id}] - set delete_link [export_vars -base ${base}delete {item_id}] - set new_link [export_vars -base ${base}edit {object_type}] - set admin_link [export_vars -base ${base}admin/ {}] - set index_link [export_vars -base ${base} {}] - - set return_url [::xowiki::Page pretty_link $name] - set gc_link [general_comments_create_link $item_id $return_url] - set gc_comments [general_comments_get_comments $item_id $return_url] - - set template [$folder_id get_payload template] - if {$template ne ""} { - set __including_page $page - set template_code [template::adp_compile -string $template] - if {[catch {set content [template::adp_eval template_code]} errmsg]} { - set content "Error in Page $name: $errmsg
$content" - } else { - ns_return 200 text/html $content - } - } else { - # use adp file - set template_file [$folder_id get_payload template_file] - if {$template_file ne ""} {template::set_file "[file dir $__adp_stub]/$template_file"} - } -} else { - ns_return 200 text/html $content - ad_script_abort -}