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 "
  • [eval "ident \$sub${sub}category_name"]" + append subcategories "
  • [eval "ec_ident \$sub${sub}category_name"]" } } set the_category_id $category_id -set the_category_name [eval "ident \$${sub}category_name"] +set the_category_name [eval "ec_ident \$${sub}category_name"] set context_bar [template::adp_parse [acs_root_dir]/packages/[ad_conn package_key]/www/contextbar [list context_addition [list [list "category-browse?category_id=$the_category_id" $category_name] [list "category-browse-subcategory?category_id=$the_category_id&subcategory_id=$subcategory_id" $subcategory_name] $the_category_name]]] set ec_system_owner [ec_system_owner] db_release_unused_handles Index: openacs-4/packages/ecommerce/www/category-browse.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ecommerce/www/category-browse.tcl,v diff -u -r1.14 -r1.15 --- openacs-4/packages/ecommerce/www/category-browse.tcl 28 Apr 2008 14:46:26 -0000 1.14 +++ openacs-4/packages/ecommerce/www/category-browse.tcl 9 Aug 2008 11:57:43 -0000 1.15 @@ -31,34 +31,13 @@ ad_script_abort } -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]} { +if {[ec_insubcat]} { append sub "sub" } else { set subcategory_id 0 } -if {[in_subsubcat]} { +if {[ec_in_subsubcat]} { append sub "sub" } else { set subsubcategory_id 0 @@ -106,15 +85,15 @@ 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 get_subsubcat_name -cache_key "ec-subsubcategory_name-${subsubcategory_id}" " select subsubcategory_name from ec_subsubcategories @@ -167,7 +146,7 @@ # All products in the "category" and not in "subcategories" (used in xql subst) 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 where p.product_id = s.product_id @@ -220,16 +199,16 @@ #============================== # 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"] } } -set the_category_id [eval "ident \$${sub}category_id"] -set the_category_name [eval "ident \$${sub}category_name"] +set the_category_id [eval "ec_ident \$${sub}category_id"] +set the_category_name [eval "ec_ident \$${sub}category_name"] set context_bar [template::adp_parse [acs_root_dir]/packages/[ad_conn package_key]/www/contextbar [list context_addition [list $the_category_name]]] set ec_system_owner [ec_system_owner] db_release_unused_handles