Index: branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php =================================================================== diff -u -r6862 -r6863 --- branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 6862) +++ branches/unlabeled/unlabeled-1.79.4/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 6863) @@ -1515,8 +1515,9 @@ function finalizePopup(&$event) { $event->SetRedirectParam('opener', 'u'); - return ; + /*return ; + // 2. substitute opener $opener_stack = $this->Application->RecallVar('opener_stack'); $opener_stack = $opener_stack ? unserialize($opener_stack) : Array(); @@ -1535,7 +1536,7 @@ $new_level = 'index.php|'.ltrim($this->Application->BuildEnv($t, $redirect_params, 'all', $pass_events), ENV_VAR_NAME.'='); array_push($opener_stack, $new_level); - $this->Application->StoreVar('opener_stack', serialize($opener_stack)); + $this->Application->StoreVar('opener_stack', serialize($opener_stack));*/ } Index: branches/unlabeled/unlabeled-1.166.4/core/kernel/application.php =================================================================== diff -u -r6862 -r6863 --- branches/unlabeled/unlabeled-1.166.4/core/kernel/application.php (.../application.php) (revision 6862) +++ branches/unlabeled/unlabeled-1.166.4/core/kernel/application.php (.../application.php) (revision 6863) @@ -651,8 +651,8 @@ if ($this->GetVar('m_opener') == 'p') { $this->LinkVar('main_prefix'); // window prefix, that opened selector $this->LinkVar('dst_field'); // field to set value choosed in selector - $this->LinkVar('return_template'); // template to go, when something was coosen from popup (from finalizePopup) - $this->LinkVar('return_m'); // main env part to restore after popup will be closed (from finalizePopup) +// $this->LinkVar('return_template'); // template to go, when something was coosen from popup (from finalizePopup) +// $this->LinkVar('return_m'); // main env part to restore after popup will be closed (from finalizePopup) } if ($this->GetVar('ajax') == 'yes') { @@ -1075,13 +1075,24 @@ if (getArrayValue($params, 'opener') == 'u') { $wid = $this->Application->GetVar('m_wid'); - $opener_stack = $this->RecallVar(rtrim('opener_stack_'.$wid, '_')); + $stack_name = rtrim('opener_stack_'.$wid, '_'); + $opener_stack = $this->RecallVar($stack_name); if ($opener_stack && $opener_stack != serialize(Array())) { $opener_stack = unserialize($opener_stack); list($index_file, $env) = explode('|', $opener_stack[count($opener_stack) - 1]); $ret = $this->BaseURL($prefix, $ssl).$index_file.'?'.ENV_VAR_NAME.'='.$env; if ( getArrayValue($params,'escape') ) $ret = addslashes($ret); + + if (isset($params['m_opener']) && $params['m_opener'] == 'u') { + array_pop($opener_stack); + if (!$opener_stack) { + $this->RemoveVar($stack_name); + } + else { + $this->StoreVar($stack_name, serialize($opener_stack)); + } + } return $ret; } else { Index: branches/unlabeled/unlabeled-1.2.2/core/admin_templates/js/script.js =================================================================== diff -u -r6826 -r6863 --- branches/unlabeled/unlabeled-1.2.2/core/admin_templates/js/script.js (.../script.js) (revision 6826) +++ branches/unlabeled/unlabeled-1.2.2/core/admin_templates/js/script.js (.../script.js) (revision 6863) @@ -317,7 +317,7 @@ var $t = $regex[3]; var $window_name = 'select_'+$t.replace(/(\/|-)/g, '_'); - set_hidden_field('return_m', $regex[4]); +// set_hidden_field('return_m', $regex[4]); if (!isset($window_size)) $window_size = '750x400'; @@ -332,7 +332,7 @@ set_hidden_field('m_opener', 'p'); set_hidden_field('main_prefix', $prefix); set_hidden_field('dst_field', $dst_field); - set_hidden_field('return_template', $kf.elements['t'].value); // where should return after popup is done +// set_hidden_field('return_template', $kf.elements['t'].value); // where should return after popup is done openwin('', $window_name, $window_size[0], $window_size[1]); $kf.action = $url; @@ -352,11 +352,11 @@ var $regex = new RegExp('(.*)\?env=(' + document.getElementById('sid').value + ')?-(.*?):(m[^:]+)'); $regex = $regex.exec($kf.action); - set_hidden_field('return_m', $regex[4]); +// set_hidden_field('return_m', $regex[4]); var $prev_opener = get_hidden_field('m_opener'); if (!isset(multi_line)) multi_line = 0; openwin('', $window_name, 750, 400); - set_hidden_field('return_template', $kf.elements['t'].value); // where should return after popup is done +// set_hidden_field('return_template', $kf.elements['t'].value); // where should return after popup is done set_hidden_field('m_opener', 'p'); set_hidden_field('translator_wnd_name', $window_name); Index: branches/unlabeled/unlabeled-1.39.8/core/kernel/event_manager.php =================================================================== diff -u -r6862 -r6863 --- branches/unlabeled/unlabeled-1.39.8/core/kernel/event_manager.php (.../event_manager.php) (revision 6862) +++ branches/unlabeled/unlabeled-1.39.8/core/kernel/event_manager.php (.../event_manager.php) (revision 6863) @@ -337,15 +337,15 @@ array_pop($opener_stack); break; - case 'p': //pop-up - do not store last template + case 'p': // pop-up - generate new wid $parent_wid = $this->Application->GetVar('m_wid'); // window_id of popup's parent window $popup_wid = (int)$this->Application->RecallVar('last_wid') + 1; $this->Application->StoreVar('last_wid', $popup_wid); $this->Application->SetVar('m_wid', $popup_wid); + $opener_stack = Array ( $this->Application->RecallVar(rtrim('last_template_popup_'.$parent_wid, '_')) ); $this->Application->SetVar('m_opener', 's'); $wid = $popup_wid; -// $this->Application->SetVar('skip_last_template', 1); break; default: // "s/0," stay on same deep level Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/incs/close_popup.tpl =================================================================== diff -u -r6826 -r6863 --- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/incs/close_popup.tpl (.../close_popup.tpl) (revision 6826) +++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/incs/close_popup.tpl (.../close_popup.tpl) (revision 6863) @@ -2,7 +2,7 @@