edu_serve_util_pagesWhat it does:
This procedure determines if there is a file at the requested URL. If there it, it serves that file. If there is not, it naively looks for it in the /education/util directoryDefined in: /web/philip/tcl/education.tcl
Source code:
set pageroot [ns_info pageroot]
set url_list [ns_conn urlv]
# page_name is the last element of the list
set page_name [lindex $url_list [expr [llength $url_list] - 1]]
set actual_url [ns_conn url]
# if they are requesting a directory without the file, serve up
# index.tcl page
if { [regexp {/$} $actual_url] } {
set file_extension index.tcl
} else {
set file_extension ""
}
if {![regexp {html$} $actual_url] && ![regexp {tcl$} $actual_url] && ![regexp {adp$} $actual_url] && ![regexp {/$} $actual_url] && ![regexp {gif} $actual_url] && ![regexp {jpg} $actual_url]} {
ns_returnredirect "$actual_url/index"
return
}
if {[file exists [ns_info pageroot][ns_conn url]$file_extension]} {
source [ns_info pageroot][ns_conn url]$file_extension
} else {
set extension [list "/education/util"]
set count [expr [llength $url_list] - 2]
while {$count >= 0} {
# lets see if this is a sub directory of anything (e.g. users)
set subdir [lindex $url_list $count]
if {[string compare $subdir admin] != 0 && [string compare $subdir department] != 0 && [string compare $subdir class] != 0 && [string compare $subdir subject] != 0} {
lappend extension $subdir
} else {
break
}
incr count -1
}
if {[file exists [ns_info pageroot][join $extension "/"]/$page_name]} {
source [ns_info pageroot][join $extension "/"]/$page_name
} elseif {[file exists [ns_info pageroot]/education/util/$page_name]} {
source [ns_info pageroot]/education/util/$page_name
} else {
ns_returnnotfound
return
}
}