Index: openacs-4/packages/xowiki/www/xinha/file-selector.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/xinha/file-selector.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/xowiki/www/xinha/file-selector.tcl 30 Dec 2005 00:09:58 -0000 1.3 +++ openacs-4/packages/xowiki/www/xinha/file-selector.tcl 1 Jul 2006 01:27:25 -0000 1.4 @@ -20,10 +20,26 @@ } else { # get package_id from package name set key file-storage - set id [apm_version_id_from_package_key $key] - set mount_url [site_node::get_children -all -package_key $key -node_id $id] - array set site_node [site_node::get -url $mount_url] - set fs_package_id $site_node(package_id) + # get file-storage instance from this subsite + set subsite_node [subsite::get_element -element node_id] + set mount_url [site_node::get_children -package_key $key -node_id $subsite_node] + if { $mount_url eq "" } { + # no file-storage instance at this subsite so look to main site + set subsite_node [subsite::get_element -subsite_id [subsite::main_site_id] -element node_id] + set mount_url [site_node::get_children -package_key file-storage -node_id $subsite_node] + } + if { $mount_url ne "" } { + # file-storage instance IS at main site + array set site_node [site_node::get -url $mount_url] + set fs_package_id $site_node(package_id) + } else { + # look for any file-storage instance + # probably not what user wants; could return error instead + set id [apm_version_id_from_package_key $key] + set mount_url [site_node::get_children -all -package_key $key -node_id $id] + array set site_node [site_node::get -url $mount_url] + set fs_package_id $site_node(package_id) + } } }