ad_partner_procs table { partner " " }What it does:
Returns all procs from $table for the current partner. Memoizes the procs so we don't hit the db constantly for each partnerDefined in: /web/philip/tcl/ad-partner-defs.tcl
Source code:
if { [empty_string_p $partner] } { set partner [ad_partner_from_cookie] } set stub [ad_partner_get_stub] set original_query "" set query_list [list] # Shorten the url stub until we find a hit or run out of url stubs! # This is slow, but tcl is simpler and we memoize the result anyway while { 1 } { # ns_log Notice "Looking for procs that match stub: $stub" set query "select procs.proc_name from ad_partner partner, ad_partner_url url, $table procs where partner.partner_id=url.partner_id and procs.url_id=url.url_id and url.url_stub='[DoubleApos $stub]' and partner.partner_cookie='[DoubleApos [string trim $partner]]'" if { [empty_string_p $original_query] } { set original_query $query } # ns_log Notice "Memoizing $query" set query_list [ad_partner_memoize_list_from_db $query [list proc_name]] # ns_log Notice "QUERY LIST IS $query_list" if { [llength $query_list] > 0 } { break } set stub [ad_partner_shorten_url_stub $stub] if { [empty_string_p $stub] } { break; } } if { [string compare $original_query $query] != 0 } { ad_partner_memoize_list_from_db $query [list proc_name] [ad_partner_default_divider] $original_query } # we check to be sure the current partner has some procedures # registered for the requested url. If not, we use the templates # for the default partner if { [llength $query_list] == 0 } { set default [ad_parameter CookieDefault partner] if { (![empty_string_p $default]) && ([string compare $partner $default] != 0) } { return [ad_partner_procs $table $default] } } return $query_list