ম্যাজেন্টো 2 - সম্পূর্ণ শ্রেণিবদ্ধ বিজ্ঞানের পণ্য ব্রেডক্রাম্ব


9

যদি আমি সরাসরি হোম বা অনুসন্ধান পৃষ্ঠা থেকে কোনও পণ্য খুলি তবে ব্রেডক্রাম্ব এই জাতীয় শো দেখায়:

হোম> মাইপ্রোডাক্ট

আমি যদি বিভাগে যাই, তবে উপশ্রেণীতে এবং তারপরে পণ্যটি খুলি, এটি ব্রেডক্রাম্বকে এভাবে দেখায়:

হোম> বিভাগ 1> বিভাগ 2> মাইপ্রডাক্ট

আমি যে পৃষ্ঠা থেকে পণ্য পৃষ্ঠায় আসছি তা নির্বিশেষে আমাকে পূর্ণ শ্রেণিবিন্যাসের সাথে ব্রেডক্রাম্ব তৈরি করতে হবে।

দয়া করে আমাকে এটি অর্জনে সহায়তা করুন


যদি কোনও স্তরের একই স্তরের 2 বা ততোধিক উপশ্রেণীতে বরাদ্দ করা হয় তবে কী হবে?
মোহিত কুমার অরোরা

এখনও একটি উপায় থাকতে হবে :)
Magedev2301

উত্তর:


10

প্রথমে আপনাকে আপনার মডিউলটিতে ব্লক যুক্ত করতে হবে

পথ: app\code\Vendor\Module\Block\Crumbblock.php

<?php
namespace Vendor\Module\Block;

use Magento\Catalog\Helper\Data;
use Magento\Framework\View\Element\Template\Context;
use Magento\Store\Model\Store;
use Magento\Framework\Registry;

class Crumbblock extends \Magento\Framework\View\Element\Template
{

    /**
     * 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;
    }
}

এর পরে catalog_product_view.xmlআপনার মডিউলটিতে লেআউট ফাইল যুক্ত করুন পাথটি হওয়া উচিত:app\code\Vendor\Module\view\frontend\layout\catalog_product_view.xml

<?xml version="1.0"?>
<page>
    <body>
    <referenceBlock name="breadcrumbs" remove="true" />
    <referenceContainer name="page.top">
        <block class="Vendor\Module\Block\Crumbblock" name="crumbs" as="crumbs" template="Vendor_Module::crumbs.phtml" />
    </referenceContainer>
    </body>
</page>

এর পরে আপনার মডিউলে পিএইচটিএমএল ফাইল যুক্ত করুন পথটি এমন হওয়া উচিত: app\code\Vendor\Module\view\frontend\templates\crumbs.phtml

<?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; ?>

আমি আশা করি এটি সাহায্য করবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.