Skip to content

Commit 22746f0

Browse files
Stanislav Idolovvovayatsyuk
Stanislav Idolov
authored andcommitted
Prevent non-category links in breadcrumbs at product page #14994
1 parent a24105d commit 22746f0

File tree

4 files changed

+15
-2
lines changed

4 files changed

+15
-2
lines changed

app/code/Magento/Catalog/Plugin/Block/Topmenu.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ private function getCategoryAsArray($category, $currentCategory, $isParentActive
162162
'url' => $this->catalogCategory->getCategoryUrl($category),
163163
'has_active' => in_array((string)$category->getId(), explode('/', $currentCategory->getPath()), true),
164164
'is_active' => $category->getId() == $currentCategory->getId(),
165+
'is_category' => true,
165166
'is_parent_active' => $isParentActive
166167
];
167168
}

app/code/Magento/Catalog/view/frontend/web/js/product/breadcrumbs.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ define([
1616
categoryUrlSuffix: '',
1717
useCategoryPathInUrl: false,
1818
product: '',
19+
categoryItemSelector: '.category-item',
1920
menuContainer: '[data-action="navigation"] > ul'
2021
},
2122

@@ -163,7 +164,10 @@ define([
163164
categoryMenuItem = null;
164165

165166
if (categoryUrl && menu.length) {
166-
categoryMenuItem = menu.find('a[href="' + categoryUrl + '"]');
167+
categoryMenuItem = menu.find(
168+
this.options.categoryItemSelector +
169+
' > a[href="' + categoryUrl + '"]'
170+
);
167171
}
168172

169173
return categoryMenuItem;

app/code/Magento/Theme/Block/Html/Topmenu.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,10 @@ protected function _getMenuItemClasses(\Magento\Framework\Data\Tree\Node $item)
309309
$classes[] = 'level' . $item->getLevel();
310310
$classes[] = $item->getPositionClass();
311311

312+
if ($item->getIsCategory()) {
313+
$classes[] = 'category-item';
314+
}
315+
312316
if ($item->getIsFirst()) {
313317
$classes[] = 'first';
314318
}

dev/tests/js/jasmine/tests/app/code/Magento/Catalog/frontend/js/product/breadcrumbs.test.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ define([
1818
'Magento_Theme/js/model/breadcrumb-list': jasmine.createSpyObj(['push'])
1919
},
2020
defaultContext = require.s.contexts._,
21-
menuItem = $('<li class="level0"><a href="http://localhost.com/cat1.html" id="ui-id-3">Cat1</a></li>')[0],
21+
menuItem = $(
22+
'<li class="level0 category-item">' +
23+
'<a href="http://localhost.com/cat1.html" id="ui-id-3">Cat1</a>' +
24+
'</li>'
25+
)[0],
2226

2327
/**
2428
* Create context object.

0 commit comments

Comments
 (0)