নকআউট টেমপ্লেট ফাইলে স্ট্যাটিক ব্লকটি কীভাবে কল করবেন?


12

আমি ম্যাজেন্টো ২.১ ব্যবহার করছি।

চেকআউট পৃষ্ঠায় শিপিং পদ্ধতির জন্য কিছু কাস্টম শিপিং বার্তা প্রদর্শন করতে চান, আমি সরাসরি নকআউট টেম্পলেট ফাইলটিতে সম্পাদনা করে এটি করেছি।

Magento_Checkout / ওয়েব / টেমপ্লেট / shipping.html

তবে আমি এই সেটিংটি ব্যাকএন্ডে চাই। সুতরাং, নকআউট টেম্পলেট ফাইলটিতে একটি স্ট্যাটিক ব্লক কল করা সম্ভব, যদি হ্যাঁ, আমি এটি কীভাবে করব।

আমি চাই লাল বাক্সের কনটেন্টটি স্ট্যাটিক ব্লক তৈরি হোক।

এখানে চিত্র বর্ণনা লিখুন

উত্তর:


22

আপনি একটি মডিউল তৈরি করতে পারেন যা চেকআউট কনফিগারেশনে যুক্ত করে আপনার সেমি ব্লক বার্তাটি কেও টেমপ্লেটে উপলব্ধ করবে available

ইন Your/Module/etc/frontend/di.xmlআমরা চেকআউট কনফিগ করার জন্য একটি নতুন কনফিগ প্রদানকারী যোগ করুন:

<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Checkout\Model\CompositeConfigProvider">
        <arguments>
            <argument name="configProviders" xsi:type="array">
                <item name="cms_block_config_provider" xsi:type="object">Your\Module\Model\ConfigProvider</item>
            </argument>
        </arguments>
    </type>
</config>

ইন Your/Module/Model/ConfigProvider.phpআমরা কোড CMS ব্লক এর এইচটিএমএল নিয়ে আসে আছে:

<?php

namespace Your\Module\Model;


use Magento\Checkout\Model\ConfigProviderInterface;
use Magento\Framework\View\LayoutInterface;

class ConfigProvider implements ConfigProviderInterface
{
    /** @var LayoutInterface  */
    protected $_layout;

    public function __construct(LayoutInterface $layout)
    {
        $this->_layout = $layout;
    }

    public function getConfig()
    {
        $cmsBlockId = 1; // id of cms block to use

        return [
            'cms_block_message' => $this->_layout->createBlock('Magento\Cms\Block\Block')->setBlockId($cmsBlockId)->toHtml()
        ];
    }
}

এখন আপনার থিমের শিপিং html কে টেম্পলেটটি ওভাররাইট করা উচিত যেখানে আপনি সিমস ব্লকটি এর মতো প্রদর্শন করতে পারেন:

<div data-bind="html: window.checkoutConfig.cms_block_message"></div>

দ্রষ্টব্য: আপনি যদি স্ট্যাটিক ব্লকে ডাবল কোটেশন (উদাহরণস্বরূপ, এইচটিএমএল একটি ট্যাগ) সমন্বিত এইচটিএমএল ট্যাগগুলি ব্যবহার করতে চান তবে আপনার ব্যাকস্ল্যাশ সহ ডাবল উদ্ধৃতিগুলি এড়ানো উচিত। উদাহরণ স্বরূপ:

Accept our <a target=\"_blank\" href=\"/privacy-policy\">privacy policy</a>

আমি কি সিএনএস ব্লককে মিনিটিকার্ট সামগ্রী html এ যুক্ত করতে পারি?
রোনাক চৌহান

মিনিকার্টের জন্য আপনাকে getConfigপদ্ধতির জন্য একটি প্লাগইন তৈরি করতে হবে \Magento\Checkout\Block\Cart\Sidebar। এই পদ্ধতিটি এমন একটি অ্যারে প্রদান করে যা জাভাস্ক্রিপ্টে window.checkoutবস্তু হিসাবে প্রেরণ করা হয় (এটি এর মধ্যে ঘটে Magento/Checkout/view/frontend/templates/cart/minicart.phtml)।
অ্যারন অ্যালেন

অ্যারোন অ্যালেন, এটি এই পোস্টের জন্য আপনাকে ধন্যবাদ ধন্যবাদ কাজ করছে।
সরফরাজ সিপাই

কেউ কি বলতে পারবেন যে এটি কি ২.৩.৩ এর জন্য কাজ করবে কারণ আমি সেমি স্ট্যাটিক ব্লক সামগ্রী প্রদর্শিত হচ্ছে না? @ সরফরাজ সিপাই
হেরিরিজ

-4

আমি মনে করি আপনি এইচটিএমএল ফাইলে স্ট্যাটিক ব্লক করতে পারবেন না, আপনাকে পিএইচটিএমএল ফাইলে সেই স্ট্যাটিক ব্লক কোডটি যুক্ত করতে হবে

নীচের পথটি চেষ্টা করুন

Magento_Checkout/view/frontend/templates/onepage.phtml 

আসুন সিএসএস হ্যাকের মাধ্যমে নীচের কোড বজায় রাখার চেষ্টা করুন

you have to change **static-block-id**


<div class ="static block" style="bottom: 127px; position: absolute;">
<?php   echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('static-block-id')->toHtml();   ?>
</div>

এটি অস্থায়ী সমাধান হতে পারে আপনি আরও কয়েকটি ভাল উত্তর পেতে পারেন

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