Index: trunk/core/units/categories/categories_tag_processor.php =================================================================== diff -u -N -r3554 -r3557 --- trunk/core/units/categories/categories_tag_processor.php (.../categories_tag_processor.php) (revision 3554) +++ trunk/core/units/categories/categories_tag_processor.php (.../categories_tag_processor.php) (revision 3557) @@ -5,18 +5,18 @@ function &GetList($params) { $special = $this->BuildListSpecial($params); - + $prefix_special = $this->Prefix.'.'.$special; $this->Special = $special; - + $params['skip_counting'] = true; - + $list =& $this->Application->recallObject( $prefix_special, $this->Prefix.'_List',$params); - + // $list->clearFilters(); // $list->addFilter('parent_filter', 'ParentId = '.$parent_cat_id, WHERE_FILTER, FLT_SYSTEM); - - //unset($params['skip_counting']); + + //unset($params['skip_counting']); $this->Application->HandleEvent($event, $prefix_special.':SetPagination', $params ); $list->Query(); @@ -27,25 +27,25 @@ { $cat_object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params); $sql = ' SELECT COUNT(*) - 1 - FROM '.$cat_object->TableName.' + FROM '.$cat_object->TableName.' WHERE ParentPath LIKE "'.$cat_object->GetDBField('ParentPath').'%"'; return $this->Conn->GetOne($sql); } - + function IsNew($params) { $object =& $this->Application->recallObject($this->getPrefixSpecial(), $this->Prefix, $params); $ret = $object->GetDBField('IsNew') ? 1 : 0; return $ret; } - + function IsPick($params) { $object =& $this->Application->recallObject($this->getPrefixSpecial(), $this->Prefix, $params); $ret = $object->GetDBField('EditorsPick') ? 1 : 0; return $ret; } - + function ItemIcon($params) { $object =& $this->Application->recallObject($this->getPrefixSpecial(), $this->Prefix, $params); @@ -54,18 +54,18 @@ { $ret = $object->GetDBField('IsNew') ? 'icon16_cat_new.gif' : 'icon16_cat.gif'; } - else + else { $ret = $status ? 'icon16_cat_pending.gif' : 'icon16_cat_disabled.gif'; } return $ret; } - + function ItemCount($params) { $cat_object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params); $ci_table = $this->Application->getUnitOption('ci','TableName'); - + $sql = ' SELECT COUNT(*) FROM '.$cat_object->TableName.' c LEFT JOIN '.$ci_table.' ci @@ -74,41 +74,41 @@ AND NOT (ci.CategoryId IS NULL)'; return $this->Conn->GetOne($sql); } - + function ListCategories($params) { return $this->PrintList2($params); } - + function RootCategoryName($params) { $root_phrase = $this->Application->ConfigValue('Root_Name'); $ret = $this->Application->Phrase($root_phrase); return $ret; } - + function CheckModuleRoot($params) { $module_name = getArrayValue($params, 'module') ? $params['module'] : 'In-Commerce'; $module = $this->Application->recallObject('mod.'.$module_name); $module_root_cat = $module->GetDBField('RootCat'); - + if ($this->Application->GetVar('m_cat_id') == $module_root_cat) { $home_template = getArrayValue($params, 'home_template'); if (!$home_template) return; - $this->Application->Redirect($home_template, Array('pass'=>'all')); + $this->Application->Redirect($home_template, Array('pass'=>'all')); }; } - + function CategoryPath($params) { $module_name = getArrayValue($params, 'module') ? $params['module'] : 'In-Commerce'; $module = $this->Application->recallObject('mod.'.$module_name); $module_root_cat = $module->GetDBField('RootCat'); - + $block_params['current'] = 0; $block_params['separator'] = $params['separator']; - + if(!isset($params['cat_id'])) { $params['cat_id'] = getArrayValue($params, 'cat_id') ? $params['cat_id'] : $this->Application->GetVar('m_cat_id'); @@ -118,68 +118,68 @@ if ($product_id) { $block_params['current'] = 0; } - + $block_params['is_module_root'] = ($params['cat_id'] == $module_root_cat) ? 1 : 0; - + if($params['cat_id'] == 0) { $block_params['name'] = $this->SelectParam($params, 'root_cat_render_as,block_root_cat,rootcatblock'); return $this->Application->ParseBlock($block_params); } - else + else { $block_params['name'] = $this->SelectParam($params,'render_as,block'); - + // $cat_object = &$this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix.'_List' ); $sql = 'SELECT CategoryId, ParentId, Name FROM '.$this->Application->getUnitOption($this->Prefix, 'TableName').' WHERE CategoryId='.$params['cat_id']; $res = $this->Conn->GetRow($sql); - + $block_params['cat_name'] = $res['Name']; $block_params['cat_id'] = $res['CategoryId']; - + $parent_params = $params; $parent_params['cat_id'] = $res['ParentId']; - + // which block to parse as current ? if ($block_params['is_module_root'] == 1) { // module root $block_params['name'] = $this->SelectParam($params, 'module_root_render_as,block_module_root,rootmoduleblock'); } if ($block_params['current'] == 1) { // current cat (label) $block_params['name'] = $this->SelectParam($params, 'current_render_as,block_current,currentblock'); } - + $this->Application->SetVar($this->Prefix.'_id', $res['CategoryId']); $current_cat = $this->Application->ParseBlock($block_params, 1); - + $this->Application->SetVar($this->Prefix.'_id', $res['ParentId']); $parent_cat = $this->CategoryPath($parent_params); - + return $parent_cat.$current_cat; } } - + function CurrentCategoryName($params){ - + $cat_object = &$this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix.'_List' ); $cat_id = $this->Application->GetVar("m_cat_id"); $sql = 'SELECT Name FROM '.$cat_object->TableName.' WHERE CategoryId='.$cat_id; return $this->Conn->GetOne($sql); - + } - + function InitMainPrefix($params) { if($main_prefix = $this->Application->GetVar('main_prefix')) { $this->Application->StoreVar('selector_main_prefix', $main_prefix); } - + } - + function CategoryLink($params) { - // 'p_id'=>'0', ?? + // 'p_id'=>'0', ?? $params = array_merge(array('pass'=>'m'), $params); $cat_id = getArrayValue($params,'cat_id'); if ($cat_id === false) { @@ -196,15 +196,17 @@ $params['m_cat_id'] = $cat_id; } unset($params['cat_id']); - + $main_processor =& $this->Application->recallObject('m_TagProcessor'); return $main_processor->T($params); } - + function CategoryList($params) { - $object =& $this->Application->recallObject( $this->getPrefixSpecial() , $this->Prefix.'_List', $params ); + //$object =& $this->Application->recallObject( $this->getPrefixSpecial() , $this->Prefix.'_List', $params ); + $object =& $this->GetList($params); + if ($object->RecordsCount == 0) { if (isset($params['block_no_cats'])) { @@ -215,7 +217,7 @@ return ''; } } - + if(isset($params['block'])) { return $this->PrintList($params); @@ -227,16 +229,16 @@ $params['row_end_block'] = $params['block_row_end']; return $this->PrintList2($params); } - } - + } + function Meta($params) { $name = getArrayValue($params, 'name'); $object =& $this->Application->recallObject($this->Prefix.'.-item'); - + $field = $object->GetField('Meta'.$name); if ($field) return $field; - + switch ($name) { case 'Description': $conf = 'Category_MetaDesc'; @@ -245,10 +247,10 @@ $conf = 'Category_MetaKey'; break; } - + return $this->Application->ConfigValue($conf); } - + function BuildListSpecial($params) { if ( isset($params['parent_cat_id']) ) { @@ -263,14 +265,14 @@ $parent_cat_id = 0; } } - + $types = $this->SelectParam($params, 'types'); $except = $this->SelectParam($params, 'except'); - + if ($types.$except.$parent_cat_id == '') { return parent::BuildListSpecial($params); } - + $special = crc32($types.$except.$parent_cat_id); return $special; }