Index: trunk/core/kernel/application.php =================================================================== diff -u -N -r7997 -r8005 --- trunk/core/kernel/application.php (.../application.php) (revision 7997) +++ trunk/core/kernel/application.php (.../application.php) (revision 8005) @@ -1490,9 +1490,7 @@ $ret .= $t.':'.$this->BuildModuleEnv('m', $params, $pass_events).$env_string; - unset($params['pass']); - unset($params['opener']); - unset($params['m_event']); + unset($params['pass'], $params['opener'], $params['m_event']); if ($this->GetVar('admin') && !isset($params['admin'])) { $params['admin'] = 1; Index: trunk/core/admin_templates/index.tpl =================================================================== diff -u -N -r8002 -r8005 --- trunk/core/admin_templates/index.tpl (.../index.tpl) (revision 8002) +++ trunk/core/admin_templates/index.tpl (.../index.tpl) (revision 8005) @@ -1,5 +1,6 @@ + Index: trunk/core/kernel/utility/http_query.php =================================================================== diff -u -N -r8002 -r8005 --- trunk/core/kernel/utility/http_query.php (.../http_query.php) (revision 8002) +++ trunk/core/kernel/utility/http_query.php (.../http_query.php) (revision 8005) @@ -351,9 +351,11 @@ * set template name and sid in * desired application variables. * - * @access private + * @param string $env_var enviroment string value + * + * @access public */ - function processQueryString($env_var) + function processQueryString($env_var, $pass_name = 'passed') { // env=SID:TEMPLATE:m-1-1-1-1:l0-0-0:n-0-0-0:bb-0-0-1-1-1-0 $vars = Array (); @@ -368,7 +370,7 @@ if ($parts) { foreach ($parts as $mixed_part) { - $vars = array_merge_recursive2($vars, $this->parseEnvPart($mixed_part)); + $vars = array_merge_recursive2($vars, $this->parseEnvPart($mixed_part, $pass_name)); } } } @@ -380,7 +382,7 @@ return $vars; } - function parseEnvPart($mixed_part) + function parseEnvPart($mixed_part, $pass_name = 'passed') { // In-portal old style env conversion - adds '-' between prefix and first var $mixed_part = str_replace('_&+$$+&_', ':', $mixed_part); @@ -399,7 +401,7 @@ $query_map = $this->Application->EventManager->setQueryMap($prefix_special); $vars = Array (); - $vars['passed'] = implode(',', array_keys($this->Application->EventManager->queryMaps)); + $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) { Index: trunk/core/units/admin/admin_tag_processor.php =================================================================== diff -u -N -r8002 -r8005 --- trunk/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 8002) +++ trunk/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 8005) @@ -690,22 +690,23 @@ */ function MainFrameLink($params) { - $last_template = $this->Application->RecallVar('last_template'); + $last_template = $this->Application->RecallVar('last_template_popup'); // because of m_opener=s there if (!$last_template) { return false; } - $ssl = isset($params['__SSL__']) ? $params['__SSL__'] : null; - - list($index_file, $env) = explode('|', $last_template); - - $vars = $this->Application->HttpQuery->processQueryString(preg_replace('/(.*?)&/', '\1', $env)); + list(, $env) = explode('|', $last_template); + $vars = $this->Application->HttpQuery->processQueryString($env, 'pass'); if ($vars['t'] == 'login') { // prevents redirect recursion return false; } - return $this->Application->BaseURL('/admin', $ssl).$index_file.'?'.ENV_VAR_NAME.'='.$env; + $vars = array_merge_recursive2($vars, $params); + $t = $vars['t']; + unset($vars['t']); + + return $this->Application->HREF($t, '', $vars); } }