diff --git a/app/code/Magento/Catalog/Plugin/Block/Topmenu.php b/app/code/Magento/Catalog/Plugin/Block/Topmenu.php index ceaae832fc36f..8cbe235e05f26 100644 --- a/app/code/Magento/Catalog/Plugin/Block/Topmenu.php +++ b/app/code/Magento/Catalog/Plugin/Block/Topmenu.php @@ -162,6 +162,7 @@ private function getCategoryAsArray($category, $currentCategory, $isParentActive 'url' => $this->catalogCategory->getCategoryUrl($category), 'has_active' => in_array((string)$category->getId(), explode('/', $currentCategory->getPath()), true), 'is_active' => $category->getId() == $currentCategory->getId(), + 'is_category' => true, 'is_parent_active' => $isParentActive ]; } diff --git a/app/code/Magento/Catalog/view/frontend/web/js/product/breadcrumbs.js b/app/code/Magento/Catalog/view/frontend/web/js/product/breadcrumbs.js index 7bf92fa2c089d..d3596cdd100ec 100644 --- a/app/code/Magento/Catalog/view/frontend/web/js/product/breadcrumbs.js +++ b/app/code/Magento/Catalog/view/frontend/web/js/product/breadcrumbs.js @@ -16,6 +16,7 @@ define([ categoryUrlSuffix: '', useCategoryPathInUrl: false, product: '', + categoryItemSelector: '.category-item', menuContainer: '[data-action="navigation"] > ul' }, @@ -163,7 +164,10 @@ define([ categoryMenuItem = null; if (categoryUrl && menu.length) { - categoryMenuItem = menu.find('a[href="' + categoryUrl + '"]'); + categoryMenuItem = menu.find( + this.options.categoryItemSelector + + ' > a[href="' + categoryUrl + '"]' + ); } return categoryMenuItem; diff --git a/app/code/Magento/Theme/Block/Html/Topmenu.php b/app/code/Magento/Theme/Block/Html/Topmenu.php index 0aaaf34a05922..0dca0f8606a8c 100644 --- a/app/code/Magento/Theme/Block/Html/Topmenu.php +++ b/app/code/Magento/Theme/Block/Html/Topmenu.php @@ -309,6 +309,10 @@ protected function _getMenuItemClasses(\Magento\Framework\Data\Tree\Node $item) $classes[] = 'level' . $item->getLevel(); $classes[] = $item->getPositionClass(); + if ($item->getIsCategory()) { + $classes[] = 'category-item'; + } + if ($item->getIsFirst()) { $classes[] = 'first'; } diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Catalog/frontend/js/product/breadcrumbs.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Catalog/frontend/js/product/breadcrumbs.test.js index b0516af46bc6b..2b0ee8ca7b9c0 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Catalog/frontend/js/product/breadcrumbs.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Catalog/frontend/js/product/breadcrumbs.test.js @@ -18,7 +18,11 @@ define([ 'Magento_Theme/js/model/breadcrumb-list': jasmine.createSpyObj(['push']) }, defaultContext = require.s.contexts._, - menuItem = $('