public function getCategories() { if (is_null(self::$_activeCategories)) { self::$_activeCategories = array(); /** @var Mage_Catalog_Model_Resource_Category $resource */ $resource = Mage::getResourceModel('catalog/category'); if ($attribute = $resource->getAttribute('is_active')) { /** @var Mage_Core_Model_Resource $coreResource */ $coreResource = Mage::getSingleton('core/resource'); $connection = $coreResource->getConnection('core_read'); $select = $connection->select()->from(array('backend' => $attribute->getBackendTable()), array('key' => new Zend_Db_Expr("CONCAT(backend.store_id, '-', backend.entity_id)"), 'category.path', 'backend.value'))->join(array('category' => $resource->getTable('catalog/category')), 'backend.entity_id = category.entity_id', array())->where('backend.entity_type_id = ?', $attribute->getEntityTypeId())->where('backend.attribute_id = ?', $attribute->getAttributeId())->order('backend.store_id')->order('backend.entity_id'); self::$_activeCategories = $connection->fetchAssoc($select); } } return self::$_activeCategories; }