Index: openacs-4/packages/xowiki/tcl/xowiki-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-procs.tcl,v diff -u -r1.47 -r1.48 --- openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 6 Aug 2006 19:57:09 -0000 1.47 +++ openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 9 Aug 2006 00:37:52 -0000 1.48 @@ -100,174 +100,7 @@ "create index xowiki_tags_index_tag ON xowiki_tags(tag, package_id)" } - - # - # upgrade logic - # - - ad_proc ::xowiki::upgrade_callback { - {-from_version_name:required} - {-to_version_name:required} - } { - - Callback for upgrading - - @author Gustaf Neumann (neumann@wu-wien.ac.at) - } { - ns_log notice "-- UPGRADE $from_version_name -> $to_version_name" - - if {$to_version_name eq "0.13"} { - ns_log notice "-- upgrading to 0.13" - set package_id [::Generic::package_id_from_package_key xowiki] - set folder_id [::xowiki::Page require_folder \ - -package_id $package_id \ - -name xowiki] - set r [::CrWikiPage instantiate_all -folder_id $folder_id] - db_transaction { - array set map { - ::CrWikiPage ::xowiki::Page - ::CrWikiPlainPage ::xowiki::PlainPage - ::PageTemplate ::xowiki::PageTemplate - ::PageInstance ::xowiki::PageInstance - } - foreach e [$r children] { - set oldClass [$e info class] - if {[info exists map($oldClass)]} { - set newClass $map($oldClass) - ns_log notice "-- old class [$e info class] -> $newClass, \ - fetching [$e set item_id] " - [$e info class] fetch_object -object $e -item_id [$e set item_id] - set oldtitle [$e set title] - $e append title " (old)" - $e save - $e class $newClass - $e set title $oldtitle - $e set name $oldtitle - $e save_new - } else { - ns_log notice "-- no new class for $oldClass" - } - } - } - } - - if {[apm_version_names_compare $from_version_name "0.19"] == -1 && - [apm_version_names_compare $to_version_name "0.19"] > -1} { - ns_log notice "-- upgrading to 0.19" - ::xowiki::sc::register_implementations - } - - if {[apm_version_names_compare $from_version_name "0.21"] == -1 && - [apm_version_names_compare $to_version_name "0.21"] > -1} { - ns_log notice "-- upgrading to 0.21" - db_1row create_att { - select content_type__create_attribute( - '::xowiki::Page','page_title','text', - 'Page Title',null,null,null,'text' )} - db_1row create_att { - select content_type__create_attribute( - '::xowiki::Page','creator','text', - 'Creator',null,null,null,'text' )} - db_1row refresh "select content_type__refresh_view('::xowiki::PlainPage') from dual" - db_1row refresh "select content_type__refresh_view('::xowiki::PageTemplate') from dual" - db_1row refresh "select content_type__refresh_view('::xowiki::PageInstance') from dual" - db_1row refresh "select content_type__refresh_view('::xowiki::Object') from dual" - } - - if {[apm_version_names_compare $from_version_name "0.22"] == -1 && - [apm_version_names_compare $to_version_name "0.22"] > -1} { - ns_log notice "-- upgrading to 0.22" - set folder_ids [list] - set package_ids [list] - db_foreach get_xowiki_packages {select * from apm_packages where package_key = 'xowiki'} { - set folder_id [db_string get_folder_id "select f.folder_id from cr_items c, cr_folders f \ - where c.name = 'xowiki: $package_id' and c.item_id = f.folder_id"] - if {$folder_id ne ""} { - db_dml update_package_id {update cr_folders set package_id = :package_id - where folder_id = :folder_id} - lappend folder_ids $folder_id - lappend package_ids $package_id - } - } - foreach f $folder_ids p $package_ids { - db_dml update_context_ids "update acs_objects set context_id = $p where object_id = $f" - } - } - - if {[apm_version_names_compare $from_version_name "0.25"] == -1 && - [apm_version_names_compare $to_version_name "0.25"] > -1} { - ns_log notice "-- upgrading to 0.25" - acs_sc::impl::new_from_spec -spec { - name "::xowiki::PageInstance" - aliases { - datasource ::xowiki::datasource - url ::xowiki::url - } - contract_name FtsContentProvider - owner xowiki - } -# foreach pkgid [site_node::get_children -package_key xowiki -all \ -# -node_id 0 -element package_id] { -# ::xowiki::Page reindex -package_id $pkgid -# } - } - - if {[apm_version_names_compare $from_version_name "0.27"] == -1 && - [apm_version_names_compare $to_version_name "0.27"] > -1} { - ns_log notice "-- upgrading to 0.27" - db_dml copy_page_title_into_title \ - "update cr_revisions set title = p.page_title from xowiki_page p \ - where page_title != '' and revision_id = p.page_id" - db_foreach delete_deprecated_types_from_ancient_versions \ - "select content_item__delete(i.item_id) from cr_items i \ - where content_type in ('CrWikiPage', 'CrWikiPlainPage', \ - 'PageInstance', 'PageTemplate','CrNote', 'CrSubNote')" {;} - } - - if {[apm_version_names_compare $from_version_name "0.30"] == -1 && - [apm_version_names_compare $to_version_name "0.30"] > -1} { - ns_log notice "-- upgrading to 0.30" - # delete orphan cr revisions, created automatically by content_item - # new, when e.g. a title is specified.... - foreach class {::xowiki::Page ::xowiki::PlainPage ::xowiki::Object - ::xowiki::PageTemplate ::xowiki::PageInstance} { - db_dml delete_orphan_revisions " - delete from cr_revisions where revision_id in ( - select r.revision_id from cr_items i,cr_revisions r - where i.content_type = '$class' and r.item_id = i.item_id - and not r.revision_id in (select [$class id_column] from [$class table_name])) - " - db_dml delete_orphan_items " - delete from acs_objects where object_type = '$class' - and not object_id in (select item_id from cr_items where content_type = '$class') - and not object_id in (select [$class id_column] from [$class table_name]) - " - } - } - - if {[apm_version_names_compare $from_version_name "0.31"] == -1 && - [apm_version_names_compare $to_version_name "0.31"] > -1} { - ns_log notice "-- upgrading to 0.31" - set folder_ids [list] - set package_ids [list] - db_foreach get_xowiki_packages {select * from apm_packages where package_key = 'xowiki'} { - set folder_id [db_string get_folder_id "select f.folder_id from cr_items c, cr_folders f \ - where c.name = 'xowiki: $package_id' and c.item_id = f.folder_id"] - if {$folder_id ne ""} { - db_dml update_package_id {update acs_objects set package_id = :package_id where object_id in - (select item_id as object_id from cr_items where parent_id = :folder_id)} - db_dml update_package_id {update acs_objects set package_id = :package_id where object_id in - (select r.revision_id as object_id from cr_revisions r, cr_items i where - i.item_id = r.item_id and i.parent_id = :folder_id)} - Package create ::$package_id -volatile -folder_id $folder_id -use_ns_conn false - ::$package_id reindex - } - } - } - } - - # # Page definitions # @@ -284,13 +117,15 @@ {lang_links ""} {lang en} {render_adp 1} + {absolute_links 0} } Page set recursion_count 0 Page array set RE { include {([^\\]){{(.+)}}[ \n\r]*} anchor {([^\\])\\\[\\\[([^\]]+)\\\]\\\]} - div {()([^\\])>>([^&]*)<<} + div {()([^\\])>>([^&]*)<<()([ \n]*
)?} clean {[\\](\{\{|>>|\[\[)} + clean2 {
*(" @@ -544,7 +379,7 @@ if {![info exists lang] && ![regexp {^(:|(file|image))} $name]} { set lang [string range [lang::conn::locale] 0 1] } - set host [expr {$fully_qualified ? [ad_url] : ""}] + set host [expr {$absolute ? [ad_url] : ""}] if {[info exists lang]} { return $host${url}$lang/[ad_urlencode $name] } else { @@ -589,7 +424,7 @@ } return "" } - + # # tag management, get_tags works on instance or gobally # @@ -746,6 +581,7 @@ if {$label eq $arg} {set label $stripped_name} Link create [self]::link \ + -page [self] \ -type $link_type -name $name -lang $lang \ -stripped_name $normalized_name -label $label \ -folder_id $parent_id -package_id $package_id @@ -780,6 +616,7 @@ set l [my regsub-eval $RE(div) $l {my div "\2" "\3"}] set l [my regsub-eval $RE(include) $l {my include "\1" "\2"}] regsub -all $RE(clean) $l {\1} l + regsub -all $RE(clean2) $l { \1} l append content [string range $l 1 end] \n set l " " } @@ -902,6 +739,7 @@ anchor {([^\\])\\\[\\\[([^\]]+)\\\]\\\]} div {()([^\\])>>([^<]*)<<} clean {[\\](\{\{|>>|\[\[)} + clean2 {(--DUMMY NOT USED--)} } PlainPage instproc get_content {} { @@ -971,6 +809,7 @@ if {$link_type eq "image"} { set l [Link new -volatile \ + -page [self] \ -type $link_type -name $name -lang "" \ -stripped_name $stripped_name -label $label \ -folder_id $parent_id -package_id $package_id] @@ -1075,4 +914,4 @@ } -source [file dirname [info script]]/xowiki-www-procs.tcl \ No newline at end of file +source [file dirname [info script]]/xowiki-www-procs.tcl