/** * We need to rewrite this class to be able to filter hidden categories if the * flat catalog category is enabled. * * This is the version of the rewrite for Magento 1.8 and newer. * In Magento 1.8 the method signature changed. * * @param Mage_Catalog_Model_Category|int $parentNode * @param integer $recursionLevel * @param integer $storeId * @param bool $onlyActive * @return Mage_Catalog_Model_Resource_Category_Flat */ protected function _loadNodes($parentNode = null, $recursionLevel = 0, $storeId = 0, $onlyActive = true) { $nodes = parent::_loadNodes($parentNode, $recursionLevel, $storeId, $onlyActive); /* @var $helper Netzarbeiter_GroupsCatalog2_Helper_Data */ $helper = Mage::helper('netzarbeiter_groupscatalog2'); if ($helper->isModuleActive()) { // Filter out hidden nodes if (count($nodes) > 0) { $nodeIds = array_keys($nodes); $visibleIds = Mage::getResourceSingleton('netzarbeiter_groupscatalog2/filter')->getVisibleIdsFromEntityIdList(Mage_Catalog_Model_Category::ENTITY, $nodeIds, $storeId, $helper->getCustomerGroupId()); $nodes = array_intersect_key($nodes, array_flip($visibleIds)); } } return $nodes; }
/** * Load nodes by parent id * * @param unknown_type $parentNode * @param integer $recursionLevel * @param integer $storeId * @return Mage_Catalog_Model_Resource_Category_Flat */ protected function _loadNodes($parentNode = null, $recursionLevel = 0, $storeId = 0) { $nodes = parent::_loadNodes($parentNode, $recursionLevel, $storeId); foreach ($nodes as $node) { if ($node->getLevel() != 2) { if (strtolower($node->getName()) != 'get the look' && strtolower($node->getName()) != 'new arrivals') { //if ($node->getProductCount() == 0) { //if ($this->getProductCountExcludeOutStock($node) == 0) { if ($this->getProductCountCustom($node) <= 0) { unset($nodes[$node->getId()]); } } } } return $nodes; }
protected function _loadNodes($parentNode = null, $recursionLevel = 0, $storeId = 0, $onlyActive = true) { $nodes = parent::_loadNodes($parentNode, $recursionLevel, $storeId, $onlyActive); $category_collection = Mage::getResourceModel('catalog/category_collection'); $category_collection->loadProductCount($nodes, true, true); foreach ($nodes as $node) { if ($node->getDisplayMode() == "PAGE") { continue; } if ($node->getProductCount()) { continue; } unset($nodes[$node->getId()]); } return $nodes; }
protected function _loadNodes($parentNode = null, $recursionLevel = 0, $storeId = 0, $onlyActive = true) { $nodes = parent::_loadNodes($parentNode, $recursionLevel, $storeId, $onlyActive); foreach ($nodes as $node) { if ($node->getDisplayMode() == "PAGE") { continue; } if ($node->getChildrenCategories()) { continue; } if ($node->getProductCount()) { continue; } unset($nodes[$node->getId()]); } return $nodes; }
/** * Return parent categories of category * * @param Mage_Catalog_Model_Category $category * @param bool $isActive * * @return array */ public function getParentCategories($category, $isActive = true) { if (false === $this->_getFiHelper()->optimizeUrlRewriteFlatCategory17()) { return parent::getParentCategories($category, $isActive); } $categories = array(); $read = $this->_getReadAdapter(); $select = $read->select()->from(array('main_table' => $this->getMainStoreTable($category->getStoreId())), array('main_table.entity_id', 'main_table.name', 'main_table.url_path as request_path'))->where('main_table.entity_id IN (?)', array_reverse(explode(',', $category->getPathInStore()))); if ($isActive) { $select->where('main_table.is_active = ?', '1'); } $select->order('main_table.path ASC'); //SchumacherFM_FastIndexer_Helper_Data::csdebug(__FILE__, __LINE__, $select); $result = $this->_getReadAdapter()->fetchAll($select); foreach ($result as $row) { $row['id'] = $row['entity_id']; $categories[$row['entity_id']] = Mage::getModel('catalog/category')->setData($row); } return $categories; }