Index: openacs-4/packages/xowiki/tcl/link-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/link-procs.tcl,v diff -u -r1.49 -r1.50 --- openacs-4/packages/xowiki/tcl/link-procs.tcl 27 Sep 2008 17:27:56 -0000 1.49 +++ openacs-4/packages/xowiki/tcl/link-procs.tcl 1 Oct 2008 15:02:48 -0000 1.50 @@ -11,7 +11,7 @@ # generic links # Class create BaseLink -parameter { - cssclass href label title target extra_query_parameter + cssclass href label title target extra_query_parameter anchor } BaseLink instproc mk_css_class {-additional {-default ""}} { @@ -72,9 +72,6 @@ } Link instproc resolve {} { #my msg "--lookup of [my name] -page [my page]" - if {![regexp {(.*?)(\#|%23)+(.*)$} [my name] full_name name anchor_tag anchor]} { - set name [my name] - } return [::xo::db::CrClass lookup -name $name -parent_id [my parent_id]] } Link instproc render_found {href label} { @@ -96,12 +93,7 @@ if {$item_id} { $page lappend references [list $item_id [my type]] ::xowiki::Package require $package_id - if {![regexp {(.*?)(\#|%23)+(.*)$} [my stripped_name] full_name name anchor_tag anchor]} { - set name [my stripped_name] - set anchor "" - } - set href [::$package_id pretty_link -lang [my lang] -anchor $anchor $name] - + set href [::$package_id pretty_link -lang [my lang] -anchor [my anchor] [my name]] my render_found $href [my label] } else { $page incr unresolved_references Index: openacs-4/packages/xowiki/tcl/package-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/package-procs.tcl,v diff -u -r1.133 -r1.134 --- openacs-4/packages/xowiki/tcl/package-procs.tcl 27 Sep 2008 17:27:56 -0000 1.133 +++ openacs-4/packages/xowiki/tcl/package-procs.tcl 1 Oct 2008 15:02:48 -0000 1.134 @@ -150,8 +150,14 @@ @param name name of the wiki page } { my get_lang_and_name -name $name lang stripped_name - set folder [my folder_path -parent_id $parent_id] - return ${lang}:$folder$stripped_name + if {[regexp {^::[0-9]+$} $name]} { + # special rule for folder objects. Will be most probably + # removed... + return $name + } else { + set folder [my folder_path -parent_id $parent_id] + return ${lang}:$folder$stripped_name + } } Package ad_instproc pretty_link { @@ -179,6 +185,7 @@ if {$lang eq ""} { my get_lang_and_name -name $name lang name + #my msg "lang=$lang, name=$name" } set host [expr {$absolute ? ($siteurl ne "" ? $siteurl : [ad_url]) : ""}] if {$anchor ne ""} {set anchor \#$anchor} @@ -705,7 +712,7 @@ Package instproc require_folder_object { } { my instvar id folder_id - #my log "--f [my isobject ::$folder_id] folder_id=$folder_id" + #my msg "--f [my isobject ::$folder_id] folder_id=$folder_id" if {$folder_id == 0} { # TODO: we should make a parameter allowed_page_types (see content_types), @@ -751,7 +758,7 @@ } } } - #my log "--f new folder object = ::$folder_id" + #my msg "--f new folder object = ::$folder_id" #::$folder_id proc destroy {} {my log "--f "; next} ::$folder_id set package_id $id ::$folder_id destroy_on_cleanup 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.288 -r1.289 --- openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 1 Oct 2008 11:04:51 -0000 1.288 +++ openacs-4/packages/xowiki/tcl/xowiki-procs.tcl 1 Oct 2008 15:02:48 -0000 1.289 @@ -687,6 +687,7 @@ set name [my name] set stripped_name $name regexp {^..:(.*)$} $name _ stripped_name + # prepend the language prefix only, if the entry is not empty if {$stripped_name ne ""} { if {[my istype ::xowiki::PageInstance]} { @@ -697,9 +698,10 @@ if {$anon_instances} { return $stripped_name } - if {$nls_language eq ""} {set nls_language [my nls_language]} - set name [string range $nls_language 0 1]:$stripped_name } + if {$nls_language eq ""} {set nls_language [my nls_language]} + set name [string range $nls_language 0 1]:$stripped_name + my msg name-now=$name } return $name } @@ -1027,15 +1029,19 @@ } } + set anchor "" + regexp {^([^#]+)(\#|%23)(.*)$} $stripped_name _ stripped_name . anchor + #my msg name=$name,stripped_name=$stripped_name,link_type=$link_type,lang=$lang set normalized_name [::$package_id normalize_name $stripped_name] + if {$lang eq ""} {set lang [my lang]} if {$name eq ""} {set name $lang:$normalized_name} if {$label eq $arg} {set label $stripped_name} Link create [self]::link \ -page [self] \ - -type $link_type -name $name -lang $lang \ + -type $link_type -name $name -lang $lang -anchor $anchor \ -stripped_name $normalized_name -label $label \ -folder_id $parent_id -package_id $package_id