Skip to content

Commit e163e31

Browse files
authored
Remove breadcrumbs for multistore homepage
When there are multiple different cms home pages with same identifier but for different store views, breadcrumbs are shown in all of them except the first. The same applies for 404 pages.
1 parent 4ecd6e8 commit e163e31

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

app/code/Magento/Cms/Block/Page.php

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,26 @@ protected function _prepareLayout()
124124
*/
125125
protected function _addBreadcrumbs(\Magento\Cms\Model\Page $page)
126126
{
127+
$homePageIdentifier = $this->_scopeConfig->getValue(
128+
'web/default/cms_home_page',
129+
ScopeInterface::SCOPE_STORE
130+
);
131+
$homePageDelimiterPosition = strrpos($homePageIdentifier, '|');
132+
if ($homePageDelimiterPosition) {
133+
$homePageIdentifier = substr($homePageIdentifier, 0, $homePageDelimiterPosition);
134+
}
135+
$noRouteIdentifier = $this->_scopeConfig->getValue(
136+
'web/default/cms_no_route',
137+
ScopeInterface::SCOPE_STORE
138+
);
139+
$noRouteDelimiterPosition = strrpos($noRouteIdentifier, '|');
140+
if ($noRouteDelimiterPosition) {
141+
$noRouteIdentifier = substr($noRouteIdentifier, 0, $noRouteDelimiterPosition);
142+
}
127143
if ($this->_scopeConfig->getValue('web/default/show_cms_breadcrumbs', ScopeInterface::SCOPE_STORE)
128144
&& ($breadcrumbsBlock = $this->getLayout()->getBlock('breadcrumbs'))
129-
&& $page->getIdentifier() !== $this->_scopeConfig->getValue(
130-
'web/default/cms_home_page',
131-
ScopeInterface::SCOPE_STORE
132-
)
133-
&& $page->getIdentifier() !== $this->_scopeConfig->getValue(
134-
'web/default/cms_no_route',
135-
ScopeInterface::SCOPE_STORE
136-
)
145+
&& $page->getIdentifier() !== $homePageIdentifier
146+
&& $page->getIdentifier() !== $noRouteIdentifier
137147
) {
138148
$breadcrumbsBlock->addCrumb(
139149
'home',

0 commit comments

Comments
 (0)