Index: branches/RC/core/kernel/utility/http_query.php =================================================================== diff -u -N -r9244 -r10535 --- branches/RC/core/kernel/utility/http_query.php (.../http_query.php) (revision 9244) +++ branches/RC/core/kernel/utility/http_query.php (.../http_query.php) (revision 10535) @@ -378,9 +378,13 @@ } if ($parts) { + $passed = Array (); foreach ($parts as $mixed_part) { - $vars = array_merge_recursive2($vars, $this->parseEnvPart($mixed_part, $pass_name)); + list ($passed[], $processed_vars) = $this->_parseEnvPart($mixed_part); + $vars = array_merge_recursive2($vars, $processed_vars); } + + $vars[$pass_name] = implode(',', array_unique($passed)); } } else { @@ -391,7 +395,13 @@ return $vars; } - function parseEnvPart($mixed_part, $pass_name = 'passed') + /** + * Converts enviroment part into variable array (based on query map for given prefix) + * + * @param string $mixed_part + * @return Array + */ + function _parseEnvPart($mixed_part) { // In-portal old style env conversion - adds '-' between prefix and first var $mixed_part = str_replace('_&+$$+&_', ':', $mixed_part); @@ -410,7 +420,6 @@ $query_map = $this->Application->EventManager->setQueryMap($prefix_special); $vars = Array (); - $vars[$pass_name] = implode(',', array_keys($this->Application->EventManager->queryMaps)); // if config is not defined for prefix in QueryString, then don't process it if ($query_map) { @@ -422,7 +431,7 @@ } } - return $vars; + return Array ($prefix_special, $vars); } /**