ad_page_contract { packages/forums/www/index.vuh @author Roberto Mello @creation-date 2002-11-04 Virtual URL Handler to serve pretty URLs to forums. } # Get a list with the whole request (e.g. {{forums} {message-view?12345}} ) set request [ad_conn urlv] # Get the URL where this instance of the forums package is mounted # without /'s regsub -all "/" [ad_conn package_url] "" package # Find index in the request list where the package url is set package_index [lsearch $request $package] # The next element in the list is what we want to look at set url_1st_elem [lindex $request [expr $package_index + 1]] # If the user types a trailing /, we need to redirect so the links # won't be all screwed. set size_after_package_url [expr [llength $request] - ($package_index + 1)] #ns_log notice "REQ: $request, sapu: $size_after_package_url, pk: $package, pi: $package_index, u1: $url_1st_elem" if { $size_after_package_url > 1 } { rp_internal_redirect [join [lrange $request [expr $package_index + 2] end] "/"] } if { [string is alpha $url_1st_elem] == 1 } { switch $url_1st_elem { "openacs" { rp_form_put forum_id 14013 } "openacs-dev" { rp_form_put forum_id 14014 } "openacs-cms" { rp_form_put forum_id 14015 } "openacs-testing" { rp_form_put forum_id 14016 } "dotlrn-dev" { rp_form_put forum_id 14017 } "cvs" { rp_form_put forum_id 46408 } } rp_internal_redirect forum-view } if { [string is digit $url_1st_elem] == 1 } { rp_form_put message_id $url_1st_elem rp_internal_redirect message-view }