Index: openacs-4/packages/file-storage/www/view/index.vuh =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/view/index.vuh,v diff -u -r1.10 -r1.11 --- openacs-4/packages/file-storage/www/view/index.vuh 7 Aug 2017 23:48:11 -0000 1.10 +++ openacs-4/packages/file-storage/www/view/index.vuh 3 Sep 2024 15:37:38 -0000 1.11 @@ -1,13 +1,11 @@ -# -*- tcl -*- -################## KLUDGE BY STAS ############### -# Try and look up the item in the content repository -################################################# ad_page_contract { + Try and look up the item in the content repository + @author Unknown @creation-date Unknown @cvs-id $Id$ -} { +} { { revision_id "" } } @@ -26,38 +24,55 @@ set user_id [ad_conn user_id] -# Serve the page - -# DRB: Note that content::init modifies the local variable the_root, which is treated -# as though it's been passed by reference. This requires that the redirect treat the -# path as an absolute path within the filesystem. - -if {[parameter::get -parameter BehaveLikeFilesystemP -default 0] || [catch {set init_p [content::init the_url the_root $content_root $template_root public $revision_id $content_type]}] || !$init_p } { - - # Make sure we are not dealing with an upgraded file and there exists a file with the title +# +# DRB: Note that content::init modifies the local variable the_root, +# which is treated as though it's been passed by reference. This +# requires that the redirect treat the path as an absolute path within +# the filesystem. +# +if {[parameter::get -parameter BehaveLikeFilesystemP -default 0] + || [catch { + set init_p [content::init the_url the_root $content_root $template_root \ + public $revision_id $content_type] }] + || !$init_p } { + # + # Make sure we are not dealing with an upgraded file and there + # exists a file with the title + # if {$file_id eq ""} { set splitted_url [split $the_url "/"] set item_url_title [lindex $splitted_url end] # THIS CODE ONLY TAKES TWO FOLDERS INTO ACCOUNT. THIS NEEDS TO BE FIXED LATER set item_url_folder [lindex $splitted_url end-1] set item_url_parent_folder [lindex $splitted_url end-2] - set file_id [db_string upgraded_item_id {} -default 0] + set file_id [db_string upgraded_item_id { + select i.item_id + from cr_revisions r, cr_items i + where r.item_id = i.item_id + and r.title = :item_url_title + and i.parent_id in (select item_id + from cr_items + where name = :item_url_folder + and parent_id in (select item_id + from cr_items + where name = :item_url_parent_folder)) + fetch first 1 row only + } -default 0] } if {$file_id == 0} { ns_returnnotfound + ad_script_abort } else { if {[content::symlink::is_symlink -item_id $file_id]} { set file_id [content::symlink::resolve -item_id $file_id] - } - - if {(![info exists version_id] || $version_id eq "")} { - set version_id [content::item::get_live_revision -item_id $file_id] } - if {[apm_package_installed_p views]} { + set version_id [content::item::get_live_revision -item_id $file_id] + + if {[namespace which ::views::record_view] ne ""} { views::record_view -object_id $file_id -viewer_id $user_id } @@ -70,7 +85,7 @@ } } else { - + set version_id [content::item::get_live_revision -item_id $file_id] permission::require_permission \ -party_id $user_id \