コード例 #1
0
ファイル: Observer.php プロジェクト: beljic/CmsNavigation
 /**
  * Recursively adds categories to top menu
  *
  * @param Varien_Data_Tree_Node_Collection|array $categories
  * @param Varien_Data_Tree_Node $parentCategoryNode
  * @param Mage_Page_Block_Html_Topmenu $menuBlock
  * @param bool $addTags
  */
 protected function _addCategoriesToMenu($categories, $parentCategoryNode, $menuBlock, $addTags = false)
 {
     $categoryModel = Mage::getModel('catalog/category');
     foreach ($categories as $category) {
         if (!$category->getIsActive()) {
             continue;
         }
         $nodeId = 'category-node-' . $category->getId();
         $categoryModel->setId($category->getId());
         if ($addTags) {
             $menuBlock->addModelTags($categoryModel);
         }
         //check if there is a cms page set in category
         if ($category->getCmsPage()) {
             $categoryUrl = Mage::helper('cms/page')->getPageUrl($category->getCmsPage());
         } else {
             $categoryUrl = Mage::helper('catalog/category')->getCategoryUrl($category);
         }
         $tree = $parentCategoryNode->getTree();
         $categoryData = array('name' => $category->getName(), 'id' => $nodeId, 'url' => $categoryUrl, 'is_active' => $this->_isActiveMenuCategory($category));
         $categoryNode = new Varien_Data_Tree_Node($categoryData, 'id', $tree, $parentCategoryNode);
         $parentCategoryNode->addChild($categoryNode);
         $flatHelper = Mage::helper('catalog/category_flat');
         if ($flatHelper->isEnabled() && $flatHelper->isBuilt(true)) {
             $subcategories = (array) $category->getChildrenNodes();
         } else {
             $subcategories = $category->getChildren();
         }
         $this->_addCategoriesToMenu($subcategories, $categoryNode, $menuBlock, $addTags);
     }
 }
コード例 #2
0
ファイル: Observer.php プロジェクト: hardanro/Monsoon_test
 /**
  * Override Mage_Catalog_Model_Observer _addCategoriesToMenu method to remove the links for the categories having unclickable attribute set
  *
  * @param Varien_Data_Tree_Node_Collection|array $categories
  * @param Varien_Data_Tree_Node $parentCategoryNode
  * @param Mage_Page_Block_Html_Topmenu $menuBlock
  * @param bool $addTags
  */
 protected function _addCategoriesToMenu($categories, $parentCategoryNode, $menuBlock, $addTags = false)
 {
     //Get collection of unclickable category ids in the menu
     $categoryModel = Mage::getModel('catalog/category');
     foreach ($categories as $category) {
         if (!$category->getIsActive()) {
             continue;
         }
         $nodeId = 'category-node-' . $category->getId();
         $categoryModel->setId($category->getId());
         if ($addTags) {
             $menuBlock->addModelTags($categoryModel);
         }
         $tree = $parentCategoryNode->getTree();
         //Set javascript:; as category url if category attribute is unclickable
         $categoryData = array('name' => $category->getName(), 'id' => $nodeId, 'url' => in_array($category->getId(), $this->unClickableIds) ? self::NOLINK : Mage::helper('catalog/category')->getCategoryUrl($category), 'is_active' => $this->_isActiveMenuCategory($category));
         $categoryNode = new Varien_Data_Tree_Node($categoryData, 'id', $tree, $parentCategoryNode);
         $parentCategoryNode->addChild($categoryNode);
         $flatHelper = Mage::helper('catalog/category_flat');
         if ($flatHelper->isEnabled() && $flatHelper->isBuilt(true)) {
             $subcategories = (array) $category->getChildrenNodes();
         } else {
             $subcategories = $category->getChildren();
         }
         $this->_addCategoriesToMenu($subcategories, $categoryNode, $menuBlock, $addTags);
     }
 }
コード例 #3
0
ファイル: Observer.php プロジェクト: KvantX/megamenu
 /**
  * Recursively adds categories to top menu
  * see Mage_Catalog_Model_Observer::_addCategoriesToMenu()
  * added new category data
  *
  * @param Varien_Data_Tree_Node_Collection|array $categories
  * @param Varien_Data_Tree_Node $parentCategoryNode
  * @param Mage_Page_Block_Html_Topmenu $menuBlock
  * @param bool $addTags
  */
 protected function _addCategoriesToMenu($categories, $parentCategoryNode, $menuBlock, $addTags = false)
 {
     $categoryModel = Mage::getModel('catalog/category');
     foreach ($categories as $category) {
         if (!$category->getIsActive()) {
             continue;
         }
         $nodeId = 'category-node-' . $category->getId();
         $categoryModel->setId($category->getId());
         if ($addTags) {
             $menuBlock->addModelTags($categoryModel);
         }
         $tree = $parentCategoryNode->getTree();
         $categoryData = array('name' => $category->getName(), 'id' => $nodeId, 'url' => Mage::helper('catalog/category')->getCategoryUrl($category), 'is_active' => $this->_isActiveMenuCategory($category), 'category_id' => $category->getId(), 'mm_block_identifier' => $category->getMmBlockIdentifier(), 'mm_image' => $category->getMmImage(), 'mm_turn_on' => $category->getMmTurnOn(), 'mm_turn_images_on' => $category->getMmTurnImagesOn(), 'mm_column_number' => $category->getMmColumnNumber());
         $categoryNode = new Varien_Data_Tree_Node($categoryData, 'id', $tree, $parentCategoryNode);
         $parentCategoryNode->addChild($categoryNode);
         $flatHelper = Mage::helper('catalog/category_flat');
         if ($flatHelper->isEnabled() && $flatHelper->isBuilt(true)) {
             $subcategories = (array) $category->getChildrenNodes();
         } else {
             $subcategories = $category->getChildren();
         }
         $this->_addCategoriesToMenu($subcategories, $categoryNode, $menuBlock, $addTags);
     }
 }
コード例 #4
0
ファイル: Observer.php プロジェクト: technomagegithub/olgo.nl
 /**
  * Recursively adds CMS pages to top menu
  *
  * @param Varien_Data_Tree_Node_Collection|array $pages
  * @param Varien_Data_Tree_Node $parentPageNode
  * @param Mage_Page_Block_Html_Topmenu $menuBlock
  * @param bool $addTags
  */
 protected function _addPagesToMenu($pages, $parentPageNode, $menuBlock, $addTags = false)
 {
     $pageModel = Mage::getModel('cms/page');
     foreach ($pages as $page) {
         if (!$page->getIsActive() || !$page->getIncludeInMenu() || !$this->_isAllowed($page)) {
             continue;
         }
         $nodeId = 'page-node-' . $page->getId();
         $pageModel->setId($page->getId());
         if ($addTags) {
             $menuBlock->addModelTags($pageModel);
         }
         $tree = $parentPageNode->getTree();
         $pageData = array('name' => $page->getTitle(), 'id' => $nodeId, 'url' => $page->getUrl(), 'is_active' => $this->_isActiveMenuPage($page));
         $pageNode = new Varien_Data_Tree_Node($pageData, 'id', $tree, $parentPageNode);
         $parentPageNode->addChild($pageNode);
         $children = $page->getChildren();
         if (Mage::helper('cms/page')->isPermissionsEnabled($this->_helper->getStore())) {
             $children->addPermissionsFilter($this->_helper->getCustomerGroupId());
         }
         $this->_addPagesToMenu($children, $pageNode, $menuBlock, $addTags);
     }
 }
コード例 #5
0
ファイル: Observer.php プロジェクト: Madhurabhat/test
 /**
  * Recursively adds categories to top menu
  *
  * @param Varien_Data_Tree_Node_Collection|array $categories
  * @param Varien_Data_Tree_Node $parentCategoryNode
  * @param Mage_Page_Block_Html_Topmenu $menuBlock
  * @param bool $addTags
  */
 protected function _addCategoriesToMenu($categories, $parentCategoryNode, $menuBlock, $addTags = false)
 {
     $categoryModel = Mage::getModel('catalog/category');
     foreach ($categories as $category) {
         if (!$category->getIsActive()) {
             continue;
         }
         $nodeId = 'category-node-' . $category->getId();
         $categoryModel->setId($category->getId());
         if ($addTags) {
             $menuBlock->addModelTags($categoryModel);
         }
         $tree = $parentCategoryNode->getTree();
         $categoryData = array('name' => $category->getName(), 'id' => $nodeId, 'url' => Mage::helper('catalog/category')->getCategoryUrl($category), 'is_active' => $this->_isActiveMenuCategory($category), 'links' => $category->getData('links'), 'image' => $category->getImageUrl('image'), 'thumbnail' => Mage::getResourceModel('catalog/category')->getAttributeRawValue($category->getId(), "thumbnail", Mage::app()->getStore()->getId()), 'getLevel' => $category->getLevel(), 'iconimagepath' => Mage::getResourceModel('catalog/category')->getAttributeRawValue($category->getId(), "iconimagepath", Mage::app()->getStore()->getId()));
         $categoryNode = new Varien_Data_Tree_Node($categoryData, 'id', $tree, $parentCategoryNode);
         $parentCategoryNode->addChild($categoryNode);
         $flatHelper = Mage::helper('catalog/category_flat');
         if ($flatHelper->isEnabled() && $flatHelper->isBuilt(true)) {
             $subcategories = (array) $category->getChildrenNodes();
         } else {
             $subcategories = $category->getChildren();
         }
         $this->_addCategoriesToMenu($subcategories, $categoryNode, $menuBlock, $addTags);
     }
 }