Index: openacs-4/packages/xowiki/www/admin/export.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/admin/export.tcl,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/xowiki/www/admin/export.tcl 1 Mar 2007 10:25:10 -0000 1.4 +++ openacs-4/packages/xowiki/www/admin/export.tcl 4 Jun 2007 12:33:57 -0000 1.5 @@ -8,17 +8,42 @@ @param object_type } -parameter { {-object_type ::xowiki::Page} + {-objects ""} } -set sql [$object_type instance_select_query \ - -folder_id [::$package_id folder_id] \ - -with_subtypes true] +set folder_id [::$package_id folder_id] +set item_ids [list] +if {$objects eq ""} { + set sql [$object_type instance_select_query -folder_id $folder_id \ + -with_subtypes true] + db_foreach instance_select $sql { lappend item_ids $item_id } +} else { + foreach o $objects { + if {[set id [CrItem lookup -name $o -parent_id $folder_id]] != 0} { + lappend item_ids $id + } + } +} + set content "" -db_foreach instance_select $sql { +foreach item_id $item_ids { ::Generic::CrItem instantiate -item_id $item_id + # + # if the page belongs to an Form/PageTemplate, include it as well + # + if {[$item_id istype ::xowiki::PageInstance]} { + set template_id [$item_id page_template] + if {[lsearch $item_ids $template_id] == -1 && + ![info exists included($template_id)]} { + ::Generic::CrItem instantiate -item_id $template_id + $template_id volatile + append content [$template_id marshall] \n + set included($template_id) 1 + } + } $item_id volatile append content [$item_id marshall] \n } -ns_return 200 text/plain $content \ No newline at end of file +ns_return 200 text/plain $content