ম্যাজেন্টো 2: ব্রেডক্র্যাম্বগুলি 2.2.4 এ আপগ্রেড করার পরে পণ্য পৃষ্ঠা থেকে অদৃশ্য হয়ে গেল


19

আমি ম্যাজেন্টোকে ২.২.৪ এ আপগ্রেড করেছি এবং এখন আমার কাছে প্রোডাক্ট পৃষ্ঠাগুলিতে ব্রেডক্র্যামবস নেই। তারা অন্যান্য পৃষ্ঠাগুলিতে প্রদর্শিত হবে তবে পণ্যগুলিতে নয়। আমি উত্সটি পরীক্ষা করে দেখেছি যে 'ব্রেডক্র্যাম্বস' ক্লাস এবং কিছু জসন প্যারামের সাথে একটি ডিভ আছে, তবে এটি খালি (কনসোলটিতে কোনও ত্রুটি নেই)।

কোন ধারণা?


আপডেট:
আমি জানতে পেরেছি যে কোনও কারণে আমি ব্যাখ্যা করতে পারছি না, ম্যাজেন্টো জেএস ব্যবহার করে টপ-মেনু নেভিগেশনের ভিত্তিতে পণ্য পৃষ্ঠাগুলির ব্রেডক্র্যাম্বগুলি তৈরি করা শুরু করেছে এবং যেহেতু আমার ক্ষেত্রে আমি মেনু পরিবর্তন করেছি এবং বিভিন্ন সিএসএস নির্বাচক ব্যবহার করেছি, এটি বন্ধ হয়ে গেছে কাজ।
আমি বিশ্বাস করি যে এখন আমি এটি ঠিক করতে সক্ষম হব, তবে তাদের পক্ষে এটি করার কোনও ভাল কারণ আমি দেখতে পাচ্ছি না, এটি খুব ভঙ্গুর ...


আমার অস্থায়ী কর্মক্ষেত্র (যদি এটি কাউকে সহায়তা করে ...):

1. একটি মডিউল তৈরি করুন এবং একটি ব্লক যুক্ত করুন যা get ম্যাজেন্টো \ থিম \ ব্লক \ এইচটিএমএল \ ব্রেডক্র্যাম্বগুলি মেথড getCrumbs () যুক্ত করার জন্য * ডায় এক্সএলএমএল দরকার নেই

namespace Vendor\Module\Block\Html;

class Breadcrumbs extends \Magento\Theme\Block\Html\Breadcrumbs
{
    public function getCrumbs()
    {
        return $this->_crumbs;
    }

    public function getBaseUrl()
    {
        return $this->_storeManager->getStore()->getBaseUrl();
    }
}

২. প্রোডাক্ট পৃষ্ঠায় ব্রেডক্র্যাম্বস টেম্পলেটটি ওভাররাইড করুন (অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টট্যান্ড / বিক্রেতার / থিম / ম্যাজেন্টো_চ্যাটালগ / টেমপ্লেট / পণ্য / রুটি ক্র্যামস.ফটিএমএল)

<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$catalogData = $objectManager->create('Magento\Catalog\Helper\Data');
$crumbs = false;
if ($breadcrumbsBlock = $objectManager->create('Vendor\Module\Block\Html\Breadcrumbs')) {
    $breadcrumbsBlock->addCrumb(
        'home',
        [
            'label' => __('Home'),
            'title' => __('Go to Home Page'),
            'link' => $breadcrumbsBlock->getBaseUrl()
        ]
    );
    $path = $catalogData->getBreadcrumbPath();
    foreach ((array)$path as $name => $breadcrumb) {
        $breadcrumbsBlock->addCrumb($name, $breadcrumb);
    }
    $crumbs = $breadcrumbsBlock->getCrumbs();
}
?>
<?php if ($crumbs && is_array($crumbs)) : ?>
    <div class="breadcrumbs">
        <ul class="items">
            <?php foreach ($crumbs as $crumbName => $crumbInfo) : ?>
                <li class="item <?= /* @escapeNotVerified */ $crumbName ?>">
                <?php if ($crumbInfo['link']) : ?>
                    <a href="<?= /* @escapeNotVerified */ $crumbInfo['link'] ?>" title="<?= $block->escapeHtml($crumbInfo['title']) ?>"><?= $block->escapeHtml($crumbInfo['label']) ?></a>
                <?php elseif ($crumbInfo['last']) : ?>
                    <strong><?= $block->escapeHtml($crumbInfo['label']) ?></strong>
                <?php else: ?>
                    <?= $block->escapeHtml($crumbInfo['label']) ?>
                <?php endif; ?>
                </li>
            <?php endforeach; ?>
        </ul>
    </div>
<?php endif; ?>

দয়া করে আপনার ভার ফোল্ডারটি সাফ করুন তারপর বিন / ম্যাজেন্টো সেট চালনা করুন: আপ করুন।
hweb87

& এর পাশাপাশি? (আমি ইতিমধ্যে সমস্ত নিয়মিত জিনিস চেষ্টা করেছি)
পিনি 24'18

@ পিনি এটি নিখুঁত কাজ করে।
অরবিন্দ 07

2.2.5 আপগ্রেড করার পরেও আমি একই সমস্যার মুখোমুখি ....
মানো এম

কাজ করে! কেবলমাত্র ছোট সমস্যা যা $ crumbInfo প্রথম / শেষ সম্পর্কে তথ্য দেয়নি তাই আমাকে নিজেরাই এটি যুক্ত করতে হয়েছিল
ভলভক্স

উত্তর:


13

আমি একই সমস্যাটি পেয়েছি এবং এটি কিছুটা সহজ এবং অবজেক্টম্যানেজার ছাড়াই করেছি। বিভাগগুলির সাথে এটি কীভাবে করা হয়েছে এবং এটি ব্যবহার করার উপায়টি আমি খুঁজে পেয়েছি। ইন catalog_product_view.xml, আমি টেমপ্লেটটি আবার ম্যাজেন্টো_হেমের একটিতে আবার লিখি:

<referenceBlock name="breadcrumbs" template="Magento_Theme::html/breadcrumbs.phtml" />

তারপরে আমি ছোট প্লাগইন লিখেছিলাম:

namespace Vendor\Module\Plugin\Catalog\Block\Product;

class View
{

    /**
     * Add Breadcrumbs Block
     *
     * @param \Magento\Catalog\Block\Product\View $subject
     * @param $result
     * @return mixed
     * @throws \Magento\Framework\Exception\LocalizedException
     */
    public function afterSetLayout(\Magento\Catalog\Block\Product\View $subject, $result) {
        $subject->getLayout()->createBlock(\Magento\Catalog\Block\Breadcrumbs::class);

        return $result;
    }
}

শেষ অবধি di.xml:

<type name="Magento\Catalog\Block\Product\View">
    <plugin name="add_catalog_breadcrumb_block" type="Vendor\Module\Plugin\Catalog\Block\Product\View" />
</type>

দুটি সমস্যা সমাধান করা হয়েছে: পণ্য পৃষ্ঠাতে ব্রেডক্রামগুলি এবং অনুপস্থিত পৃষ্ঠার শিরোনাম (শীর্ষ বিভাগে)।


সুন্দর! আমি আসলে আশা করেছিলাম যে ম্যাজেন্টো একটি অফিসিয়াল ফিক্স সরবরাহ করবে (আমি যতটা বলতে পারি - এটি একটি বাগ), তাই আমি যতটা সম্ভব থিম এরিয়ায় থাকার চেষ্টা করেছি। তবে এটি করবে এবং আপনার সমাধানটিকে একটি মডিউলে পরিণত করা সহজ হবে যা এটির সমাধান করে।
পিনি

আমিও একই সমস্যার মুখোমুখি ... magento2.2.5 এ এটি কীভাবে সমাধান করবেন
মানো এম

খুশী হলাম। এটি ম্যাজেন্টো ২.২.৫ এর জন্য কাজ করে। ধন্যবাদ
ম্যাজেন্টো

আমি "ছোট প্লাগইন" এর জন্য কোডটি কোথায় রাখি?
jogoe

6

যাঁরা ম্যাজেন্টো এটি ঠিক না করা পর্যন্ত একটি স্থির মডিউল চান:

https://github.com/CompactCodeEU/FixProductBreadcrumbs.git

আমি ব্রেডক্র্যাম্বে হোম এবং পণ্য যুক্ত করতে এটি তৈরি করেছি। এছাড়াও এটি জেএস কার্যকর করতে বাধা দেয় কারণ আমি এটি ডিফল্ট এইচটিএমএল দ্বারা প্রতিস্থাপন করি।


5

এই দুটি লাইন বর্গক্ষেত্রের ব্লকটিকে পুনরুদ্ধার করে। এটাই. কোনও কাস্টম প্লাগইন বা অন্য কিছু নেই:

<referenceBlock name="breadcrumbs" template="Magento_Theme::html/breadcrumbs.phtml" />
<block class="Magento\Catalog\Block\Breadcrumbs" />

1

অন্য যে কেউ এখানে আসে এবং সম্ভবত এর জন্য কিছু প্লাগইন ইনস্টল করতে চায় না তার জন্য, আমাকে যা করতে হয়েছিল তা হ'ল এটি আমার টেম্পলেটটিতে যুক্ত করা হয়েছিল (এটি সম্পূর্ণ লুকানো) এবং ব্রেডক্রামগুলি আবার প্রদর্শিত হতে শুরু করেছে:

<div data-action="navigation" style="display:none;"><ul  data-mage-init='{"menu":{"responsive":false, "expanded":true, "delay":0, "position":{"my":"left top","at":"left bottom"}}}'></ul></div>

এটি সত্য, তবে এটি সঠিক ক্রাম কাঠামো অনুসরণ করে বলে মনে হচ্ছে না। আমার পণ্য পৃষ্ঠা ব্রেড ক্রামগুলি হোম> পণ্যের নাম দেখায়। এটি সম্পর্কিত বিভাগগুলির কোনও উল্লেখ নেই।
ডিজিটাল_ফ্র্যাঙ্কেনস্টেইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.