Example #1
0
 /**
  * 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;
 }