################## KLUDGE BY STAS ############### # Try and look up the item in the content repository ################################################# ad_page_contract { @author Unknown @creation-date Unknown @cvs-id $Id: index.vuh,v 1.3 2006/08/08 21:26:49 donb Exp $ } { { revision_id "" } } # Get the paths set the_root [ns_info pageroot] set the_url [ad_conn path_info] set content_type "content_revision" # 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 # 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 { [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 {[content::symlink::is_symlink -item_id $file_id]} { set file_id [content::symlink::resolve -item_id $file_id] } 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 { set file "$the_root/$the_url" rp_internal_redirect -absolute_path $file }