Index: trunk/kernel/units/general/cat_tag_processor.php =================================================================== diff -u -r3543 -r3826 --- trunk/kernel/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 3543) +++ trunk/kernel/units/general/cat_tag_processor.php (.../cat_tag_processor.php) (revision 3826) @@ -74,6 +74,32 @@ $next_params['cat_id'] = $res['ParentId']; return $this->CategoryPath($next_params).$this->Application->ParseBlock($block_params); } + } + + function BuildListSpecial($params) + { + if ($this->Special != '') return $this->Special; + if ( isset($params['parent_cat_id']) ) { + $parent_cat_id = $params['parent_cat_id']; + } + else { + $parent_cat_id = $this->Application->GetVar('c_id'); + if (!$parent_cat_id) { + $parent_cat_id = $this->Application->GetVar('m_cat_id'); + } + } + + $recursive = isset($params['recursive']); + + $types = $this->SelectParam($params, 'types'); + $except = $this->SelectParam($params, 'except'); + + if ($types.$except.$recursive == '') { + return parent::BuildListSpecial($params); + } + + $special = crc32($parent_cat_id.$types.$except.$recursive.$manufacturer); + return $special; } }