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 -N -r1.14 -r1.15 --- openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 11 Feb 2006 00:57:44 -0000 1.14 +++ openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 12 Feb 2006 01:21:38 -0000 1.15 @@ -143,11 +143,16 @@ } } } - if {$to_version_name eq "0.19"} { + + 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 {$to_version_name eq "0.21"} { + + 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', @@ -161,6 +166,26 @@ 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" + } + } } Class create WikiForm -superclass ::Generic::Form \ @@ -480,6 +505,18 @@ } } + Page proc pretty_link {-lang title} { + my instvar url_prefix + if {![info exists lang]} { + regexp {^(..):(.*)$} $title _ lang title + } + if {[info exists lang]} { + return ${url_prefix}pages/$lang/[ad_urlencode $title] + } else { + return ${url_prefix}pages/[ad_urlencode $title] + } + } + Page instproc initialize_loaded_object {} { my instvar page_title creator if {$page_title eq ""} {set page_title [my set title]} @@ -642,20 +679,21 @@ return "$label" } else { set specified_link $link - my instvar parent_id + my instvar parent_id + Page instvar url_prefix [my info class] instvar object_type if {[regexp {^:(..):(.*)$} $link _ lang stripped]} { set lang_item_id [CrItem lookup \ -title $lang:$stripped -parent_id $parent_id] #my log "lang lookup for '$lang:$stripped' returned $lang_item_id" if {$lang_item_id} { set css_class "found" - set link ../$lang/[ad_urlencode $stripped] + set link [Page pretty_link -lang $lang $stripped] #set link [export_vars -base view {{item_id $lang_item_id}}] } else { set css_class "undefined" set last_page_id [my set item_id] - set link [export_vars -base edit {object_type {title $lang:$stripped} last_page_id}] + set link [export_vars -base ${url_prefix}edit {object_type {title $lang:$stripped} last_page_id}] } my lappend lang_links \ "$label" - return "$label" + return "$label" } else { my incr unresolved_references - set link [export_vars -base ../edit {object_type {title $label}}] + set link [export_vars -base ${url_prefix}edit {object_type {title $label}}] return " \[ $label \] " } } } Page instproc references {} { [my info class] instvar table_name - my instvar item_id + my instvar item_id url_prefix set l [db_list_of_lists references \ "SELECT page,ci.name,link_type from xowiki_references, cr_items ci \ where reference=$item_id and ci.item_id = page"] set refs [list] foreach e $l { #set link [export_vars -base view {{item_id {[lindex $e 0]}}}] set link [lindex $e 1] - if {[regexp {^(..):(.*)$} $link _ lang name]} { - lappend refs "$link" - } else { - lappend refs "$link" - } + lappend refs "$link" } return [join $refs ", "] } @@ -768,8 +802,12 @@ } Page instproc render {-update_references:switch} { - my instvar item_id references lang title render_adp unresolved_references + my instvar item_id references lang title render_adp unresolved_references parent_id my log "-- my class=[my info class]" + + set package_id [$parent_id set package_id] + Page set url_prefix [site_node::get_url_from_object_id -object_id $package_id] + regexp {^(..):(.*)$} $title _ lang title set references [list] set unresolved_references 0