Skip to content

Commit 57da76a

Browse files
authored
Merge branch 'main' into add-a11y
2 parents 025c42b + ebf805c commit 57da76a

File tree

3 files changed

+28
-8
lines changed

3 files changed

+28
-8
lines changed

README.md

+11
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,17 @@ This module is Hyvä-Ready!
4646
This module render server-sided product breadcrumbs so it's visible to any robot without requiring any js loads and process.
4747
Can you still enable the js breadcrumbs so your user can see natural breadcrumbs following their navigation.
4848

49+
## Settings
50+
51+
The settings are available at:
52+
53+
`Stores > Configuration > Catalog > Catalog > Search Engine Optimization`
54+
55+
- Render Product Breadcrumbs from Server-Side
56+
- Override Product Breadcrumbs on Client-Side
57+
- Product Breadcrumbs Strategy
58+
- Product Breadcrumbs Excluded Categories
59+
4960
## Documentation
5061

5162
- Toggle server-side product breadcrumbs rendering.

view/frontend/templates/hyva/product/breadcrumbs.phtml

+9-8
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,18 @@ use Opengento\ProductBreadcrumbs\ViewModel\Product\Breadcrumbs as BreadcrumbsCon
1616

1717
/** @var BreadcrumbsConfig $config */
1818
$config = $viewModels->require(BreadcrumbsConfig::class);
19+
$isClientSideRendered = !$config->isServerSideRendered() || $config->isClientSideOverrideAllowed();
1920
?>
20-
<div id="product_breadcrumbs" aria-label="Breadcrumb" role="navigation" x-init="generateProductBreadcrumbsOnProductPage()">
21+
<div id="product_breadcrumbs" aria-label="<?= $escaper->escapeHtmlAttr(__('Breadcrumb')) ?>" role="navigation"<?= $isClientSideRendered ? ' x-init="generateProductBreadcrumbsOnProductPage()"' : '' ?>>
2122
<?php if ($config->isServerSideRendered()): ?>
2223
<?= $block->fetchView($block->getTemplateFile('Magento_Theme::html/breadcrumbs.phtml')) ?>
2324
<?php endif; ?>
2425
</div>
25-
<script>
26-
function generateProductBreadcrumbsOnProductPage() {
27-
<?php if (!$config->isServerSideRendered() || $config->isClientSideOverrideAllowed()): ?>
28-
<?php $breadcrumbsTemplate = '<div id="product_breadcrumbs" aria-label="Breadcrumb" role="navigation">' . $block->fetchView($block->getTemplateFile('Magento_Catalog::product/view/breadcrumbs.phtml')) . '</div>'; ?>
29-
hyva.replaceDomElement('#product_breadcrumbs', '<?= $escaper->escapeJs($breadcrumbsTemplate) ?>');
26+
<?php if ($isClientSideRendered): ?>
27+
<script>
28+
function generateProductBreadcrumbsOnProductPage() {
29+
<?php $breadcrumbsTemplate = '<div id="product_breadcrumbs" aria-label="' . $escaper->escapeHtmlAttr(__('Breadcrumb')) . '" role="navigation">' . $block->fetchView($block->getTemplateFile('Magento_Catalog::product/view/breadcrumbs.phtml')) . '</div>'; ?>
30+
hyva.replaceDomElement('#product_breadcrumbs', '<?= $escaper->escapeJs($breadcrumbsTemplate) ?>');
31+
}
32+
</script>
3033
<?php endif; ?>
31-
}
32-
</script>

view/frontend/templates/product/breadcrumbs.phtml

+8
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ $config = $block->getData('breadcrumbsConfig');
2424
$catalogHelper = $this->helper(CatalogHelper::class);
2525
/** @var BreadcrumbsBlock $breadcrumbs */
2626
$breadcrumbs = $block->getLayout()->createBlock(BreadcrumbsBlock::class);
27+
$breadcrumbs->addCrumb(
28+
'home',
29+
[
30+
'label' => __('Home'),
31+
'title' => __('Go to Home Page'),
32+
'link' => $block->getBaseUrl()
33+
]
34+
);
2735
foreach ($catalogHelper->getBreadcrumbPath() as $name => $crumb) {
2836
$breadcrumbs->addCrumb($name, $crumb);
2937
}

0 commit comments

Comments
 (0)