Index: openacs-4/packages/xotcl-core/tcl/context-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/context-procs.tcl,v diff -u -r1.64 -r1.65 --- openacs-4/packages/xotcl-core/tcl/context-procs.tcl 27 Oct 2014 16:42:01 -0000 1.64 +++ openacs-4/packages/xotcl-core/tcl/context-procs.tcl 27 Apr 2015 15:28:21 -0000 1.65 @@ -122,8 +122,12 @@ Context instproc query_parameter {name {default ""}} { my instvar queryparm - return [expr {[info exists queryparm($name)] ? $queryparm($name) : $default}] + if {[info exists queryparm($name)]} { + return $queryparm($name) + } + return $default } + Context instproc exists_query_parameter {name} { #my log "--qp my exists $name => [my exists queryparm($name)]" my exists queryparm($name) @@ -465,23 +469,23 @@ # next # } + ConnectionContext instproc load_form_parameter_from_values {values} { + foreach {att value} $values { + # For some unknown reasons, Safari 3.* returns sometimes + # entries with empty names... We ignore these for now + if {$att eq ""} continue + if {[my exists form_parameter($att)]} { + my set form_parameter_multiple($att) 1 + } + my lappend form_parameter($att) $value + } + } ConnectionContext instproc load_form_parameter {} { - my instvar form_parameter - if {[ns_conn isconnected] && [ns_conn method] eq "POST"} { - #array set form_parameter [ns_set array [ns_getform]] - foreach {att value} [ns_set array [ns_getform]] { - # For some unknown reasons, Safari 3.* returns sometimes - # entries with empty names... We ignore these for now - if {$att eq ""} continue - if {[info exists form_parameter($att)]} { - my set form_parameter_multiple($att) 1 - } - lappend form_parameter($att) $value - } + my load_form_parameter_from_values [ns_set array [ns_getform]] } else { - array set form_parameter {} + my array set form_parameter {} } } @@ -510,6 +514,17 @@ ConnectionContext instproc get_all_form_parameter {} { return [my array get form_parameter] } + + # + # Version of query_parameter respecting set-parameter + # + ConnectionContext instproc query_parameter {name {default ""}} { + if {[my exists_parameter $name]} { + return [my get_parameter $name] + } + next + } + ConnectionContext instproc set_parameter {name value} { set key [list get_parameter $name]