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.1 -r1.1.8.1
--- openacs-4/packages/file-storage/www/view/index.vuh 7 Jul 2003 12:37:39 -0000 1.1
+++ openacs-4/packages/file-storage/www/view/index.vuh 26 Sep 2005 09:00:19 -0000 1.1.8.1
@@ -19,6 +19,9 @@
# Get the IDs
set content_root [fs::get_root_folder]
set template_root [db_string template_root ""]
+set file_id [::content::item::get_id -item_path $the_url \
+ -root_folder_id $content_root \
+ -resolve_index "f"]
# Serve the page
@@ -27,17 +30,53 @@
# as though it's been passed by reference. This requires that the redirect treat the
# path as an absolute path within the filesystem.
-if { [content::init the_url the_root $content_root $template_root public $revision_id $content_type] } {
- set file "$the_root/$the_url"
- rp_internal_redirect -absolute_path $file
+if {[parameter::get -parameter BehaveLikeFilesystemP -default 0]} {
+
+ # Make sure we are not dealing with an upgraded file and there exists a file with the title
+ if { [string equal "" $file_id] } {
+ 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]
+ }
+
+ if {$file_id == 0} {
+ # ns_returnnotfound
+ set page "[ad_header {Content Item Not Found}]"
+ append page "
Content Item Not Found
"
+ append page "The requested item is not available for viewing. "
+ append page "The item is either not available on this server or it is not in a publishable state "
+ append page "Unpublished items can be viewed via the CMS interface if the CMS package is installed.
"
+ append page "[ad_footer]"
+ doc_return 404 text/html $page
+ } else {
+ if {![exists_and_not_null version_id]} {
+ set version_id [item::get_live_revision $file_id]
+ }
+
+ set user_id [ad_conn user_id]
+
+ ad_require_permission $version_id "read"
+
+ cr_write_content -revision_id $version_id
+ }
+
} else {
- # ns_returnnotfound
- set page "[ad_header {Content Item Not Found}]"
- append page "Content Item Not Found
"
- append page "The requested item is not available for viewing. "
- append page "The item is either not available on this server or it is not in a publishable state "
- append page "Unpublished items can be viewed via the CMS interface if the CMS package is installed.
"
- append page "[ad_footer]"
- doc_return 200 text/html $page
+
+ if { [content::init the_url the_root $content_root $template_root public $revision_id $content_type] } {
+ set file "$the_root/$the_url"
+ rp_internal_redirect -absolute_path $file
+ } else {
+ # ns_returnnotfound
+ set page "[ad_header {Content Item Not Found}]"
+ append page "Content Item Not Found
"
+ append page "The requested item is not available for viewing. "
+ append page "The item is either not available on this server or it is not in a publishable state "
+ append page "Unpublished items can be viewed via the CMS interface if the CMS package is installed.
"
+ append page "[ad_footer]"
+ doc_return 404 text/html $page
+ }
}
-