diff --git a/app/code/Magento/Catalog/Model/Observer.php b/app/code/Magento/Catalog/Model/Observer.php index dac92e427e266..e4a48721fcb0b 100644 --- a/app/code/Magento/Catalog/Model/Observer.php +++ b/app/code/Magento/Catalog/Model/Observer.php @@ -132,17 +132,12 @@ protected function _addCategoriesToMenu($categories, $parentCategoryNode, $block continue; } - $nodeId = 'category-node-' . $category->getId(); - $block->addIdentity(\Magento\Catalog\Model\Category::CACHE_TAG . '_' . $category->getId()); $tree = $parentCategoryNode->getTree(); - $categoryData = [ - 'name' => $category->getName(), - 'id' => $nodeId, - 'url' => $this->_catalogCategory->getCategoryUrl($category), - 'is_active' => $this->_isActiveMenuCategory($category), - ]; + + $categoryData = $this->getMenuCategoryData($category); + $categoryNode = new \Magento\Framework\Data\Tree\Node($categoryData, 'id', $tree, $parentCategoryNode); $parentCategoryNode->addChild($categoryNode); @@ -156,6 +151,28 @@ protected function _addCategoriesToMenu($categories, $parentCategoryNode, $block } } + + /** + * Get category data to be added to the Menu + * + * @param \Magento\Framework\Data\Tree\Node $category + * @return array + */ + public function getMenuCategoryData($category) + { + + $nodeId = 'category-node-' . $category->getId(); + + $categoryData = [ + 'name' => $category->getName(), + 'id' => $nodeId, + 'url' => $this->_catalogCategory->getCategoryUrl($category), + 'is_active' => $this->_isActiveMenuCategory($category), + ]; + + return $categoryData; + } + /** * Checks whether category belongs to active category's path *