Index: branches/unlabeled/unlabeled-1.28.2/kernel/units/categories/categories_tag_processor.php =================================================================== diff -u -r5715 -r5787 --- branches/unlabeled/unlabeled-1.28.2/kernel/units/categories/categories_tag_processor.php (.../categories_tag_processor.php) (revision 5715) +++ branches/unlabeled/unlabeled-1.28.2/kernel/units/categories/categories_tag_processor.php (.../categories_tag_processor.php) (revision 5787) @@ -470,6 +470,33 @@ } return parent::PrintPages($params); } + + function InitCatalog($params) + { + $tab_prefixes = $this->Application->GetVar('tp'); // {all, , none} + if ($tab_prefixes === false) $tab_prefixes = 'all'; + $skip_prefixes = isset($params['skip_prefixes']) && $params['skip_prefixes'] ? explode(',', $params['skip_prefixes']) : Array(); + + // get all prefixes available + $prefixes = Array(); + foreach ($this->Application->ModuleInfo as $module_name => $module_data) { + if ($module_data['Var'] == 'm') continue; + $prefixes[] = $module_data['Var']; + } + + if ($tab_prefixes == 'none') { + $skip_prefixes = array_unique(array_merge($skip_prefixes, $prefixes)); + } + elseif ($tab_prefixes != 'all') { + // prefix list here + $tab_prefixes = explode(',', $tab_prefixes); // list of prefixes that should stay + $skip_prefixes = array_diff($prefixes, $tab_prefixes); + } + + $params['name'] = $params['render_as']; + $params['skip_prefixes'] = implode(',', $skip_prefixes); + return $this->Application->ParseBlock($params, 1); + } }