Index: branches/unlabeled/unlabeled-1.1.2/kernel/admin_templates/advanced_view.tpl =================================================================== diff -u -r5715 -r5735 --- branches/unlabeled/unlabeled-1.1.2/kernel/admin_templates/advanced_view.tpl (.../advanced_view.tpl) (revision 5715) +++ branches/unlabeled/unlabeled-1.1.2/kernel/admin_templates/advanced_view.tpl (.../advanced_view.tpl) (revision 5735) @@ -24,7 +24,7 @@ this.switchTab(); } - var $Catalog = new Catalog('', 'advanced_view_', 0); + var $Catalog = new Catalog('', 'advanced_view_', 0); var a_toolbar = new ToolBar(); a_toolbar.AddButton( new ToolBarButton('edit', '', edit) ); Index: branches/unlabeled/unlabeled-1.155.2/core/kernel/application.php =================================================================== diff -u -r5731 -r5735 --- branches/unlabeled/unlabeled-1.155.2/core/kernel/application.php (.../application.php) (revision 5731) +++ branches/unlabeled/unlabeled-1.155.2/core/kernel/application.php (.../application.php) (revision 5735) @@ -1076,6 +1076,9 @@ unset($params['__NO_REWRITE__']); } + // append pass through variables to each link to be build + $params = array_merge_recursive2($this->getPassThroughVariables(), $params); + if ($this->RewriteURLs($ssl) && !$no_rewrite) { $session =& $this->recallObject('Session'); @@ -1092,6 +1095,35 @@ return $ret; } + /** + * Returns variables with values that should be passed throught with this link + variable list + * + * @return unknown + */ + function getPassThroughVariables() + { + static $cached_pass_through = null; + + // because pass through is not changed during script run, then we can cache it + if (is_null($cached_pass_through)) { + + $cached_pass_through = Array(); + $pass_through = $this->Application->GetVar('pass_through'); + + if ($pass_through) { + // names of variables to pass to each link + $cached_pass_through['pass_through'] = $pass_through; + $pass_through = explode(',', $pass_through); + foreach ($pass_through as $pass_through_var) { + $cached_pass_through[$pass_through_var] = $this->Application->GetVar($pass_through_var); + } + } + + } + + return $cached_pass_through; + } + /** * Returns sorted array of passed prefixes (to build url from) Index: branches/unlabeled/unlabeled-1.11.2/kernel/units/general/cat_tag_processor.php =================================================================== diff -u -r5721 -r5735 --- branches/unlabeled/unlabeled-1.11.2/kernel/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 5721) +++ branches/unlabeled/unlabeled-1.11.2/kernel/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 5735) @@ -145,9 +145,21 @@ function InitCatalogTab($params) { - $tab_special = $this->Application->GetVar('tab_special'); + $tab_params['mode'] = $this->Application->GetVar('tm'); // single/multi selection possible + $tab_params['special'] = $this->Application->GetVar('ts'); // use special for this tab + $tab_params['dependant'] = $this->Application->GetVar('td'); // is grid dependant on categories grid + + // set default params (same as in catalog) + if ($tab_params['mode'] === false) $tab_params['mode'] = 'multi'; + if ($tab_params['special'] === false) $tab_params['special'] = ''; + if ($tab_params['dependant'] === false) $tab_params['dependant'] = 'yes'; + + // pass params to block with tab content $params['name'] = $params['render_as']; - $params['prefix'] = trim($this->Prefix.'.'.($tab_special !== false ? $tab_special : $this->Special), '.'); + $params['prefix'] = trim($this->Prefix.'.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); + $params['cat_prefix'] = trim('c.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); + $params['tab_mode'] = $tab_params['mode']; + $params['tab_dependant'] = $tab_params['dependant']; return $this->Application->ParseBlock($params, 1); } } Index: branches/unlabeled/unlabeled-1.11.2/core/units/general/cat_tag_processor.php =================================================================== diff -u -r5721 -r5735 --- branches/unlabeled/unlabeled-1.11.2/core/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 5721) +++ branches/unlabeled/unlabeled-1.11.2/core/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 5735) @@ -145,9 +145,21 @@ function InitCatalogTab($params) { - $tab_special = $this->Application->GetVar('tab_special'); + $tab_params['mode'] = $this->Application->GetVar('tm'); // single/multi selection possible + $tab_params['special'] = $this->Application->GetVar('ts'); // use special for this tab + $tab_params['dependant'] = $this->Application->GetVar('td'); // is grid dependant on categories grid + + // set default params (same as in catalog) + if ($tab_params['mode'] === false) $tab_params['mode'] = 'multi'; + if ($tab_params['special'] === false) $tab_params['special'] = ''; + if ($tab_params['dependant'] === false) $tab_params['dependant'] = 'yes'; + + // pass params to block with tab content $params['name'] = $params['render_as']; - $params['prefix'] = trim($this->Prefix.'.'.($tab_special !== false ? $tab_special : $this->Special), '.'); + $params['prefix'] = trim($this->Prefix.'.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); + $params['cat_prefix'] = trim('c.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); + $params['tab_mode'] = $tab_params['mode']; + $params['tab_dependant'] = $tab_params['dependant']; return $this->Application->ParseBlock($params, 1); } } Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/catalog/advanced_view.tpl =================================================================== diff -u -r5715 -r5735 --- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/catalog/advanced_view.tpl (.../advanced_view.tpl) (revision 5715) +++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/catalog/advanced_view.tpl (.../advanced_view.tpl) (revision 5735) @@ -24,7 +24,7 @@ this.switchTab(); } - var $Catalog = new Catalog('', 'advanced_view_', 0); + var $Catalog = new Catalog('', 'advanced_view_', 0); var a_toolbar = new ToolBar(); a_toolbar.AddButton( new ToolBarButton('edit', '', edit) ); Index: branches/unlabeled/unlabeled-1.59.2/core/kernel/utility/debugger.php =================================================================== diff -u -r5659 -r5735 --- branches/unlabeled/unlabeled-1.59.2/core/kernel/utility/debugger.php (.../debugger.php) (revision 5659) +++ branches/unlabeled/unlabeled-1.59.2/core/kernel/utility/debugger.php (.../debugger.php) (revision 5735) @@ -501,7 +501,7 @@ $this->appendHTML('ScriptName: '.$this->getFileLink($script, 1, basename($script)).' ('.dirname($script).')'); if (isset($_REQUEST['ajax']) && $_REQUEST['ajax'] == 'yes') { - $this->appendHTML('RequestURI: '.$_SERVER['REQUEST_URI']); + $this->appendHTML('RequestURI: '.$_SERVER['REQUEST_URI'].' (QS Length:'.strlen($_SERVER['QUERY_STRING']).')'); } $this->appendHTML('DomViewer:  '); Index: branches/unlabeled/unlabeled-1.11.2/kernel/admin_templates/incs/grid.js =================================================================== diff -u -r5613 -r5735 --- branches/unlabeled/unlabeled-1.11.2/kernel/admin_templates/incs/grid.js (.../grid.js) (revision 5613) +++ branches/unlabeled/unlabeled-1.11.2/kernel/admin_templates/incs/grid.js (.../grid.js) (revision 5735) @@ -161,7 +161,7 @@ this.Toggle() } else { - if (!(this.Grid.RadioMode && this.Grid.LastSelectedId == this.ItemId)) { + if (!(this.Grid.RadioMode && this.Grid.LastSelectedId == this.ItemId && this.selected)) { // don't clear selection if item same as current is selected this.Grid.ClearSelection(null,'GridItem.Click'); this.Toggle();