Index: branches/RC/core/kernel/utility/http_query.php =================================================================== diff -u -r11296 -r11742 --- branches/RC/core/kernel/utility/http_query.php (.../http_query.php) (revision 11296) +++ branches/RC/core/kernel/utility/http_query.php (.../http_query.php) (revision 11742) @@ -147,6 +147,7 @@ case 'P': $this->Post = $this->AddVars($_POST); $this->convertPostEvents(); + $this->_processPostEnvVariables(); break; case 'C': @@ -170,6 +171,37 @@ // $this->AfterInit(); } + + /** + * Allow POST variables, that names were transformed by PHP ("." replaced with "_") to + * override variables, that were virtually created through enviroment variable parsing + * + */ + function _processPostEnvVariables() + { + $passed = $this->Get('passed'); + if (!$passed) { + return ; + } + + $passed = explode(',', $passed); + foreach ($passed as $prefix_special) { + if (strpos($prefix_special, '.') === false) { + continue; + } + + list ($prefix, $special) = explode('.', $prefix_special); + $query_map = $this->Application->EventManager->getQueryMap($prefix); + $post_prefix_special = $prefix . '_' . $special; + + foreach ($query_map as $index => $var_name) { + if (array_key_exists($post_prefix_special . '_' . $var_name, $this->Post)) { + $this->Set($prefix_special . '_' . $var_name, $this->Post[$post_prefix_special . '_' . $var_name]); + } + } + } + } + function AfterInit() { // $vars = $this->processQueryString($this->Get(ENV_VAR_NAME));