Index: openacs-4/packages/ecommerce/tcl/ecommerce-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ecommerce/tcl/ecommerce-procs.tcl,v diff -u -r1.28 -r1.29 --- openacs-4/packages/ecommerce/tcl/ecommerce-procs.tcl 9 Aug 2008 11:44:20 -0000 1.28 +++ openacs-4/packages/ecommerce/tcl/ecommerce-procs.tcl 9 Aug 2008 11:57:43 -0000 1.29 @@ -1573,3 +1573,55 @@ } return $max } + +# following adaptions from ecommerce/www/category-browse*.tcl +# moving here to help speed up their page processing +ad_proc -private ec_ident {x} { + return $x +} + +ad_proc -private ec_have { + var +} { + from ecommerce/www/category-browse*.tcl +} { + upvar $var x + return [expr {[info exists x] && [string compare $x "0"] != 0}] +} + +ad_proc -private ec_in_subcat { +} { + from ecommerce/www/category-browse*.tcl +} { + return [uplevel {ec_have subcategory_id}] +} + +ad_proc -private ec_in_subsubcat { +} { + from ecommerce/www/category-browse*.tcl +} { + return [uplevel {ec_have subsubcategory_id}] +} + +ad_proc -private ec_at_bottom_level_p { +} { + from ecommerce/www/category-browse*.tcl +} { + return [uplevel ec_in_subsubcat] +} + +ad_proc ec_max_of_list { + listofargs +} { + finds max value from a list of values +} { + set args [split $listofargs] + set max [lindex $args 0] + foreach arg $args { + if { $arg > $max } { + set max $arg + } + } + return $max +} + Index: openacs-4/packages/ecommerce/www/category-browse-subcategory.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ecommerce/www/category-browse-subcategory.tcl,v diff -u -r1.12 -r1.13 --- openacs-4/packages/ecommerce/www/category-browse-subcategory.tcl 30 Apr 2008 12:07:15 -0000 1.12 +++ openacs-4/packages/ecommerce/www/category-browse-subcategory.tcl 9 Aug 2008 11:57:43 -0000 1.13 @@ -23,15 +23,9 @@ usca_p:optional } -proc ident {x} {return $x} -proc have {var} { upvar $var x; return [expr {[info exists x] && [string compare $x "0"] != 0}]} -proc in_subcat {} {return [uplevel {have subcategory_id}]} -proc in_subsubcat {} {return [uplevel {have subsubcategory_id}]} -proc at_bottom_level_p {} {return [uplevel in_subsubcat]} - set sub "" -if [in_subcat] {append sub "sub"} else {set subcategory_id 0} -if [in_subsubcat] {append sub "sub"} else {set subsubcategory_id 0} +if [ec_in_subcat] {append sub "sub"} else {set subcategory_id 0} +if [ec_in_subsubcat] {append sub "sub"} else {set subsubcategory_id 0} set product_map() "ec_category_product_map" set product_map(sub) "ec_subcategory_product_map" @@ -73,12 +67,12 @@ set category_name [db_string -cache_key "ec-category_name-${category_id}" get_category_name "select category_name from ec_categories where category_id=:category_id"] set subcategory_name "" -if { [have subcategory_id] } { +if { [ec_have subcategory_id] } { set subcategory_name [db_string -cache_key "ec-subcategory_name-${subcategory_id}" get_subcat_name "select subcategory_name from ec_subcategories where subcategory_id=:subcategory_id"] } set subsubcategory_name "" -if { [have subsubcategory_id] } { +if { [ec_have subsubcategory_id] } { set subsubcategory_name [db_string -cache_key "ec-subsubcategory_name-${subsubcategory_id}" get_subsubcat_name "select subsubcategory_name from ec_subsubcategories where subsubcategory_id=:subsubcategory_id"] } @@ -129,7 +123,7 @@ # All products in the "category" and not in "subcategories" set exclude_subproducts "" -if { ![at_bottom_level_p] } { +if { ![ec_at_bottom_level_p] } { set exclude_subproducts " and not exists ( select 'x' from $product_map(sub$sub) s, ec_sub${sub}categories c @@ -189,11 +183,11 @@ # subcategories set subcategories "" -if { ![at_bottom_level_p] } { +if { ![ec_at_bottom_level_p] } { db_multirow -extend { url name } -cache_key "ec-${sub}subcategories-${cat_id}" subcategories get_subcategories "see xql" { set url [export_vars -base "category-browse-sub${sub}category" {category_id subcategory_id subsubcategory_id}] - set name [eval "ident \$sub${sub}category_name"] ; # what is this ident? + set name [eval "ec_ident \$sub${sub}category_name"] } } Index: openacs-4/packages/ecommerce/www/category-browse-subsubcategory.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ecommerce/www/category-browse-subsubcategory.tcl,v diff -u -r1.9 -r1.10 --- openacs-4/packages/ecommerce/www/category-browse-subsubcategory.tcl 28 Apr 2008 12:28:04 -0000 1.9 +++ openacs-4/packages/ecommerce/www/category-browse-subsubcategory.tcl 9 Aug 2008 11:57:43 -0000 1.10 @@ -23,15 +23,9 @@ usca_p:optional } -proc ident {x} {return $x} -proc have {var} { upvar $var x; return [expr {[info exists x] && [string compare $x "0"] != 0}]} -proc in_subcat {} {return [uplevel {have subcategory_id}]} -proc in_subsubcat {} {return [uplevel {have subsubcategory_id}]} -proc at_bottom_level_p {} {return [uplevel in_subsubcat]} - set sub "" -if [in_subcat] {append sub "sub"} else {set subcategory_id 0} -if [in_subsubcat] {append sub "sub"} else {set subsubcategory_id 0} +if [ec_in_subcat] {append sub "sub"} else {set subcategory_id 0} +if [ec_in_subsubcat] {append sub "sub"} else {set subsubcategory_id 0} set product_map() "ec_category_product_map" set product_map(sub) "ec_subcategory_product_map" @@ -68,12 +62,12 @@ set category_name [db_string get_category_name "select category_name from ec_categories where category_id=:category_id"] set subcategory_name "" -if [have subcategory_id] { +if [ec_have subcategory_id] { set subcategory_name [db_string get_subcat_name "select subcategory_name from ec_subcategories where subcategory_id=:subcategory_id"] } set subsubcategory_name "" -if [have subsubcategory_id] { +if [ec_have subsubcategory_id] { set subsubcategory_name [db_string get_subsubcat_name "select subsubcategory_name from ec_subsubcategories where subsubcategory_id=:subsubcategory_id"] } @@ -123,7 +117,7 @@ # All products in the "category" and not in "subcategories" set exclude_subproducts "" -if ![at_bottom_level_p] { +if ![ec_at_bottom_level_p] { set exclude_subproducts " and not exists ( select 'x' from $product_map(sub$sub) s, ec_sub${sub}categories c @@ -187,7 +181,7 @@ # subcategories set subcategories "" -if ![at_bottom_level_p] { +if ![ec_at_bottom_level_p] { db_foreach get_subcategories " SELECT * from ec_sub${sub}categories c WHERE ${sub}category_id = :${sub}category_id @@ -200,12 +194,12 @@ " { - append subcategories "