Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace VendorModuleBlock;
- use MagentoCatalogHelperData;
- use MagentoFrameworkViewElementTemplateContext;
- use MagentoStoreModelStore;
- use MagentoFrameworkRegistry;
- class Crumbblock extends MagentoFrameworkViewElementTemplate
- {
- /**
- * Catalog data
- *
- * @var Data
- */
- protected $_catalogData = null;
- /**
- * @param Context $context
- * @param Data $catalogData
- * @param array $data
- */
- public function __construct(
- Context $context,
- Data $catalogData,
- Registry $registry,
- array $data = [])
- {
- $this->_catalogData = $catalogData;
- $this->registry = $registry;
- parent::__construct($context, $data);
- }
- public function getCrumbs()
- {
- $evercrumbs = array();
- $evercrumbs[] = array(
- 'label' => 'Home',
- 'title' => 'Go to Home Page',
- 'link' => $this->_storeManager->getStore()->getBaseUrl()
- );
- $path = $this->_catalogData->getBreadcrumbPath();
- $product = $this->registry->registry('current_product');
- $categoryCollection = clone $product->getCategoryCollection();
- $categoryCollection->clear();
- $categoryCollection->addAttributeToSort('level', $categoryCollection::SORT_ORDER_DESC)->addAttributeToFilter('path', array('like' => "1/" . $this->_storeManager->getStore()->getRootCategoryId() . "/%"));
- $categoryCollection->setPageSize(1);
- $breadcrumbCategories = $categoryCollection->getFirstItem()->getParentCategories();
- foreach ($breadcrumbCategories as $category) {
- $evercrumbs[] = array(
- 'label' => $category->getName(),
- 'title' => $category->getName(),
- 'link' => $category->getUrl()
- );
- }
- $evercrumbs[] = array(
- 'label' => $product->getName(),
- 'title' => $product->getName(),
- 'link' => ''
- );
- return $evercrumbs;
- }
- }
- <?xml version="1.0"?>
- <page>
- <body>
- <referenceBlock name="breadcrumbs" remove="true" />
- <referenceContainer name="page.top">
- <block class="VendorModuleBlockCrumbblock" name="crumbs" as="crumbs" template="Vendor_Module::crumbs.phtml" />
- </referenceContainer>
- </body>
- </page>
- <?php $crumbs = $block->getCrumbs(); ?>
- <?php if ($crumbs && is_array($crumbs)) : ?>
- <div class="container">
- <div class="breadcrumbs">
- <ul class="items">
- <?php
- foreach ($crumbs as $crumbName => $crumbInfo) : ?>
- <li class="item <?php echo $crumbName == 0 ? "home" : ""; ?>">
- <?php if ($crumbInfo['link']) : ?>
- <a href="<?= /* @escapeNotVerified */
- $crumbInfo['link'] ?>" title="<?= $block->escapeHtml($crumbInfo['title']) ?>">
- <?= $block->escapeHtml($crumbInfo['label']) ?>
- </a>
- <?php else: ?>
- <strong><?= $block->escapeHtml($crumbInfo['label']) ?></strong>
- <?php endif; ?>
- </li>
- <?php
- endforeach; ?>
- </ul>
- </div>
- </div>
- <?php endif; ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement