/**
  * Retrieve cache key data
  *
  * @return array
  */
 public function getCacheKeyInfo()
 {
     $cacheId = parent::getCacheKeyInfo();
     $cacheId['menu_id'] = $this->getMenuId();
     return $cacheId;
 }
Exemplo n.º 2
0
 /**
  * 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);
     }
 }
Exemplo n.º 3
0
 /**
  * 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);
     }
 }
Exemplo n.º 4
0
 /**
  * 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);
     }
 }
Exemplo n.º 5
0
 /**
  * Add navigation can show state to block cache keys
  * 
  * @return array
  * @see Mage_Page_Block_Html_Topmenu::getCacheKeyInfo
  */
 public function getCacheKeyInfo()
 {
     $cacheId = parent::getCacheKeyInfo();
     $cacheId['can_show_navigation'] = Mage::helper('privatesales')->canShowNavigation();
     $cacheId['short_cache_id'] = md5(implode('|', array_values($cacheId)));
     return $cacheId;
 }
Exemplo n.º 6
0
 protected function _getMenuItemClasses(Varien_Data_Tree_Node $item)
 {
     if (!Mage::helper('waterlee')->getIsActive()) {
         return parent::_getMenuItemClasses($item);
     }
     $classes = array();
     $classes[] = 'level' . $item->getLevel();
     $classes[] = $item->getPositionClass();
     if ($item->getIsFirst()) {
         $classes[] = 'first';
     }
     if ($item->getIsActive()) {
         $classes[] = 'active';
     }
     if ($item->getIsLast()) {
         $classes[] = 'last';
     }
     if ($item->getClass()) {
         $classes[] = $item->getClass();
     }
     if ($item->hasChildren()) {
         $classes[] = 'has-dropdown';
     }
     return $classes;
 }
Exemplo n.º 7
0
 /**
  * Get sidebar menu html
  *
  * @param string $outermostClass
  * @param string $childrenWrapClass
  * @return string
  */
 public function getSidebarHtml($outermostClass = '', $childrenWrapClass = '')
 {
     Mage::dispatchEvent('page_block_html_topmenu_gethtml_before', array('menu' => $this->_menu, 'block' => $this));
     $this->_menu->setOutermostClass($outermostClass);
     $this->_menu->setChildrenWrapClass($childrenWrapClass);
     $html = parent::_getHtml($this->_menu, $childrenWrapClass);
     Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array('menu' => $this->_menu, 'html' => $html));
     return $html;
 }
Exemplo n.º 8
0
 /**
  * Recursively adds cms pages to top menu
  *
  * @param Varien_Data_Tree_Node $parentNode
  * @param Mage_Page_Block_Html_Topmenu $menuBlock
  * @param bool $addTags
  */
 protected function _addHomePageToMenu($parentNode, $menuBlock, $addTags = false)
 {
     $tree = $parentNode->getTree();
     $request = Mage::app()->getRequest();
     $isActive = $request->getModuleName() == 'cms' && $request->getControllerName() == 'index' && $request->getActionName() == 'index';
     $pageId = Mage::getStoreConfig(Mage_Cms_Helper_Page::XML_PATH_HOME_PAGE);
     $nodeData = array('name' => $menuBlock->__('Home'), 'id' => 'cms-node-' . $pageId, 'url' => Mage::getBaseUrl(), 'is_active' => $isActive);
     $categoryNode = new Varien_Data_Tree_Node($nodeData, 'id', $tree, $parentNode);
     $currentItems = array();
     foreach ($parentNode->getChildren() as $child) {
         $currentItems[] = $child;
         $parentNode->removeChild($child);
     }
     $parentNode->addChild($categoryNode);
     foreach ($currentItems as $child) {
         $parentNode->addChild($child);
     }
 }
Exemplo n.º 9
0
 /**
  * include submenu items inside a div container with the possibility to add a static block there
  *
  * @param Varien_Data_Tree_Node $menuTree
  * @param string $childrenWrapClass
  * @return string
  */
 protected function _getHtml(Varien_Data_Tree_Node $menuTree, $childrenWrapClass)
 {
     if (!Mage::helper('megamenu')->isMegaMenuEnabled()) {
         return parent::_getHtml($menuTree, $childrenWrapClass);
     }
     $html = '';
     $children = $menuTree->getChildren();
     $parentLevel = $menuTree->getLevel();
     $childLevel = is_null($parentLevel) ? 0 : $parentLevel + 1;
     $counter = 1;
     $childrenCount = $children->count();
     $parentPositionClass = $menuTree->getPositionClass();
     $itemPositionClassPrefix = $parentPositionClass ? $parentPositionClass . '-' : 'nav-';
     foreach ($children as $child) {
         $child->setLevel($childLevel);
         $child->setIsFirst($counter == 1);
         $child->setIsLast($counter == $childrenCount);
         $child->setPositionClass($itemPositionClassPrefix . $counter);
         $outermostClassCode = '';
         $outermostClass = $menuTree->getOutermostClass();
         if ($childLevel == 0 && $outermostClass) {
             $outermostClassCode = ' class="' . $outermostClass . '" ';
             $child->setClass($outermostClass);
         }
         $html .= '<li ' . $this->_getRenderedMenuItemAttributes($child) . '>';
         $html .= '<a href="' . $child->getUrl() . '" ' . $outermostClassCode . '><span>' . $this->escapeHtml($child->getName()) . '</span></a>';
         if ($child->hasChildren()) {
             if (!empty($childrenWrapClass)) {
                 $html .= '<div class="' . $childrenWrapClass . '">';
             }
             if ($childLevel == 0) {
                 $html .= '<div class="submenu-container"><div class="container">';
             }
             $grandChildren = $child->getChildren();
             $grandChildrenCount = $grandChildren->count();
             $columns = ceil($grandChildrenCount / 8);
             $columnsClass = 'columns' . $columns;
             $html .= '<ul class="level' . $childLevel . ' ' . $columnsClass . '">';
             $html .= $this->_getHtml($child, $childrenWrapClass);
             $html .= '</ul>';
             if ($childLevel == 0) {
                 $staticBlock = $this->_getStaticBlockHtml($child);
                 $html .= '<div class="static-container">' . $staticBlock . '</div>';
                 $html .= '</div></div>';
             }
             $html .= '<div class="see-all"><a href="' . $child->getUrl() . '">All ' . $this->escapeHtml($child->getName()) . '</a></div>';
             if (!empty($childrenWrapClass)) {
                 $html .= '</div>';
             }
         }
         $html .= '</li>';
         $counter++;
     }
     return $html;
 }
Exemplo n.º 10
0
 public function _construct()
 {
     parent::_construct();
     if (Mage::getStoreConfig('weltpixel_megamenu/general/enable')) {
         $this->_addHomeLink();
         Mage::dispatchEvent('wp_page_block_html_topmenu_gethtml_before', array('menu' => $this->_menu, 'block' => $this));
         $this->_menu->setOutermostClass('level-top');
         $this->_menu->setPositionClass('nav');
         $this->_menu->setChildrenWrapClass('wrapper-nav-columns');
     }
 }
Exemplo n.º 11
0
 /**
  * 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);
     }
 }
Exemplo n.º 12
0
 protected function _toHtml()
 {
     if (!Mage::helper('jmmegamenu')->get('show')) {
         return parent::_toHtml();
     }
     //bind data vars if has
     $attributes = get_object_vars($this->megaHelper->params);
     foreach ($attributes as $key => $value) {
         $data = $this->getData($key);
         if ($data) {
             $attributes[$key] = $data;
         }
     }
     $this->megaHelper->setParams($attributes);
     //set template
     $this->setTemplate("joomlart/jmmegamenu/output.phtml");
     //get menu group id
     $menu_key = isset($this->megaHelper->params->menu_key) && $this->megaHelper->params->menu_key ? $this->megaHelper->params->menu_key : null;
     $menu_group_id = Mage::helper('jmmegamenu')->getMenuId($menu_key);
     $this->megaHelper->setParams(array('menu_group_id' => $menu_group_id));
     if ($menu_group_id) {
         //get menu items
         $collections = Mage::getModel('jmmegamenu/jmmegamenu')->getCollection()->setOrder("parent", "ASC")->setOrder("ordering", "ASC")->addFilter("status", 1, "eq")->addFilter("menugroup", $menu_group_id);
         //built menu tree
         $tree = array();
         foreach ($collections as $collection) {
             $collection->tree = array();
             $parent_tree = array();
             if (isset($tree[$collection->parent])) {
                 $parent_tree = $tree[$collection->parent];
             }
             //Create tree
             array_push($parent_tree, $collection->menu_id);
             $tree[$collection->menu_id] = $parent_tree;
             $collection->tree = $parent_tree;
         }
         $this->megaHelper->getList($collections);
         ob_start();
         $this->megaHelper->genMenu();
         $output = ob_get_contents();
         $this->assign('menuoutput', $output);
         ob_end_clean();
     } else {
         echo Mage::helper('jmmegamenu')->__('There are not menu items found.');
     }
     return parent::_toHtml();
 }
Exemplo n.º 13
0
 protected function _toHtml()
 {
     if (!Mage::helper('jmmegamenu')->get('show')) {
         return parent::_toHtml();
     }
     //set template
     $this->setTemplate("joomlart/jmmegamenu/output.phtml");
     //get menu id
     $menuType = $this->getData('menu_type');
     $this->menu->menu_type = $menuType;
     $menuId = Mage::helper('jmmegamenu')->getMenuId($menuType);
     if ($menuId) {
         //get menu items
         $collections = Mage::getModel('jmmegamenu/jmmegamenu')->getCollection()->setOrder("parent", "ASC")->setOrder("ordering", "ASC")->addFilter("status", 1, "eq")->addFilter("menugroup", $menuId);
         //built menu tree
         $tree = array();
         foreach ($collections as $collection) {
             $collection->tree = array();
             $parent_tree = array();
             if (isset($tree[$collection->parent])) {
                 $parent_tree = $tree[$collection->parent];
             }
             //Create tree
             array_push($parent_tree, $collection->menu_id);
             $tree[$collection->menu_id] = $parent_tree;
             $collection->tree = $parent_tree;
         }
         $this->menu->getList($collections);
         ob_start();
         $this->menu->genMenu();
         $menuoutput = ob_get_contents();
         $this->assign('menuoutput', $menuoutput);
         ob_end_clean();
     } else {
         echo Mage::helper('jmmegamenu')->__('Menu items not found.');
     }
     return parent::_toHtml();
 }
 public function _toHtml()
 {
     if (!Mage::helper('jmmegamenu')->get('show')) {
         return parent::_toHtml();
     }
     $this->setTemplate("joomlart/jmmegamenu/output.phtml");
     $storeid = Mage::app()->getStore()->getStoreId();
     $resource = Mage::getSingleton('core/resource');
     $read = $resource->getConnection('core_read');
     $menutable = $resource->getTableName('jmmegamenu_store_menugroup');
     $query = 'SELECT menugroupid ' . ' FROM ' . $menutable . ' WHERE store_id = ' . (int) $storeid . ' ORDER BY id';
     $rows = $read->fetchRow($query);
     if (!$rows["menugroupid"]) {
         $rows["menugroupid"] = 0;
     }
     $collections = Mage::getModel('jmmegamenu/jmmegamenu')->getCollection()->setOrder("parent", "ASC")->setOrder("ordering", "ASC")->addFilter("status", 1, "eq")->addFilter("menugroup", $rows["menugroupid"]);
     $tree = array();
     foreach ($collections as $collection) {
         $collection->tree = array();
         $parent_tree = array();
         if (isset($tree[$collection->parent])) {
             $parent_tree = $tree[$collection->parent];
         }
         //Create tree
         array_push($parent_tree, $collection->menu_id);
         $tree[$collection->menu_id] = $parent_tree;
         $collection->tree = $parent_tree;
     }
     $this->menu->getList($collections);
     //$this->menu->genMenu();
     ob_start();
     $this->menu->genMenu();
     $menuoutput = ob_get_contents();
     $this->assign('menuoutput', $menuoutput);
     ob_end_clean();
     return parent::_toHtml();
 }
Exemplo n.º 15
0
 /**
  * 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);
     }
 }
Exemplo n.º 16
0
 /**
  * Return the menu HTML
  *
  * @return string
  */
 protected function _toHtml()
 {
     if (!$this->getTemplate()) {
         if ($this->_beforeToHtml() === false) {
             return '';
         }
         return $this->getMenuHtml();
     }
     return parent::_toHtml();
 }
Exemplo n.º 17
0
 /**
  * {@inheritDoc}
  */
 protected function _getMenuItemClasses(Varien_Data_Tree_Node $item)
 {
     $classes = parent::_getMenuItemClasses($item);
     if ($item->hasChildren() && $item->getLevel() == 0) {
         $classes[] = 'dropdown';
     }
     return $classes;
 }
Exemplo n.º 18
0
 /**
  * {@inheritDoc}
  */
 protected function _getMenuItemClasses(Varien_Data_Tree_Node $item)
 {
     $classes = parent::_getMenuItemClasses($item);
     if ($item->hasChildren()) {
         $classes[] = 'parent';
     }
     return $classes;
 }
Exemplo n.º 19
0
 /**
  * {@inheritDoc}
  */
 protected function _getMenuItemClasses(Varien_Data_Tree_Node $item)
 {
     return parent::_getMenuItemClasses($item);
 }
Exemplo n.º 20
0
 protected function _toHtml()
 {
     if (!Mage::helper('jmmegamenu')->get('show')) {
         return parent::_toHtml();
     }
     //bind data vars if has
     $attributes = get_object_vars($this->megaHelper->params);
     foreach ($attributes as $key => $value) {
         $data = $this->getData($key);
         if ($data) {
             $attributes[$key] = $data;
         }
     }
     $this->megaHelper->setParams($attributes);
     //set template
     $this->setTemplate("joomlart/jmmegamenu/output.phtml");
     $menuKey = isset($this->megaHelper->params->menu_key) && $this->megaHelper->params->menu_key ? $this->megaHelper->params->menu_key : null;
     //get cache status
     $cacheType = 'wavethemes_jmmegamenu';
     $useCache = Mage::app()->useCache($cacheType);
     //get menu group id
     $cacheId = $this->getMenuGroupCacheId();
     $cacheContent = Mage::app()->loadCache($cacheId);
     if ($useCache && $cacheContent) {
         $menuGroupId = $cacheContent;
     } else {
         $menuGroupId = Mage::helper('jmmegamenu')->getMenuId($menuKey);
         if ($useCache) {
             try {
                 $tags = array(self::CACHE_TAG);
                 $lifeTime = Mage::getStoreConfig('core/cache/lifetime') ? Mage::getStoreConfig('core/cache/lifetime') : $this->cacheLifeTime;
                 Mage::app()->saveCache($menuGroupId, $cacheId, $tags, $lifeTime);
             } catch (Exception $e) {
                 Mage::logException($e);
             }
         }
     }
     $this->megaHelper->setParams(array('menu_group_id' => $menuGroupId));
     if ($menuGroupId) {
         $cacheId = md5("jmmegamenu_{$menuGroupId}_html_items");
         $cacheContent = Mage::app()->loadCache($cacheId);
         if ($useCache && $cacheContent) {
             $output = unserialize($cacheContent);
         } else {
             $output = $this->_generateMenuHtml($menuGroupId);
             if ($useCache) {
                 try {
                     $tags = array(self::CACHE_TAG);
                     $lifeTime = Mage::getStoreConfig('core/cache/lifetime') ? Mage::getStoreConfig('core/cache/lifetime') : $this->cacheLifeTime;
                     $cacheContent = serialize($output);
                     Mage::app()->saveCache($cacheContent, $cacheId, $tags, $lifeTime);
                 } catch (Exception $e) {
                     Mage::logException($e);
                 }
             }
         }
         $this->assign('menuoutput', $output);
     } else {
         echo Mage::helper('jmmegamenu')->__('There are not menu items found.');
     }
     return parent::_toHtml();
 }