Magento2 এ মডিউলটির মাধ্যমে কোনও টেমপ্লেট কীভাবে ওভাররাইট করা যায়


9

আমি একটি মডিউল তৈরি করছি এবং টেম্পলেটটি ওভাররাইট করতে চাই app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml

এটি কি কোনও মডিউলে সম্ভব (কোনও থিম নয়)

দুর্ভাগ্যক্রমে XML লেআউটের মাধ্যমে মডিউলটির নামটি পরিবর্তন করা খুব সহজ বলে মনে হচ্ছে না, কারণ এটি https://github.com/magento/magento2/blob/develop/app/code/Magento/Gtl//lock এ হার্ড কোডেড রয়েছে /Adminhtml/Product/Edit/Tab/Options.php#L21


উত্তরটির জন্য দয়া করে এই লিঙ্কটি রেজিষ্ট করুন magento.stackexchange.com/questions/76434/…
দিব্যা মুরালিধরন

দয়া করে এই লিঙ্কটি উত্তরটির জন্য রেজি করুন magento.stackexchange.com/questions/76434/…
দিব্যা মুরালিধরন

উত্তর:


10

আপনার মডিউল ফাইলের বিন্যাস ফোল্ডার যুক্ত করুন [বিক্রেতার] / [মডিউলনাম] / ভিউ / অ্যাডমিনটিচটিএমএল / ক্লাউট / ক্যাটাগল_প্রোডাক্ট_প্লেশন.এক্সএমএল

<?xml version="1.0"?>
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/layout_generic.xsd">
    <referenceBlock name="admin.product.options">
        <arguments>
            <argument name="template" xsd:type="string">[Vendor]/[ModuleName]::product_options.phtml</argument>
        </arguments>
    </referenceBlock>
</layout>

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

<sequence>
        <module name="Magento_Catalog"/>
</sequence>

নামটি কোথা admin.product.optionsথেকে পেয়েছেন?
অ্যালেক্স

স্রেফ অনুসন্ধান করুন \ ম্যাজেন্টো \ ক্যাটালগ \ ব্লক \ প্রশাসনিক \ পণ্য \ সম্পাদনা করুন \ ট্যাব layout লেআউট ফাইলগুলির মাধ্যমে বিকল্পগুলি এবং Magento / ক্যাটালগ / দর্শন / প্রশাসনিক / লেআউট / ক্যাটালগ_প্রোড
क्ट_

1
এটা করা উচিত নয় Vendor_ModuleName::product_options.phtml?
জিয়েল বার্কার্স

হ্যাঁ, পয়েন্টটির জন্য ধন্যবাদ
কান্দি

2
মূল টেম্পলেটটি ব্লক.এফপি ফাইলটিতে সেট করা থাকলে এই সমাধানটি কেবলমাত্র কার্যকর হয় in যদি মূল টেম্পলেটটি লেআউট.এক্সএমএল সেট করা থাকে তবে এই সমাধানটি কাজ করবে না। একটি ভাল পদ্ধতির <action method="setTemplate">পরিবর্তে সর্বদা ব্যবহার করা হয় <arguments>। এই সমাধানটি সব ক্ষেত্রেই কাজ করে।
জালাগুট

3
  1. আপনার মডিউলে সম্পর্কিত লেআউট ফাইল তৈরি করুন:

[বিক্রেতার] / [moduleName] /view/adminhtml/layout/catalog_product_options.xml

  1. আপনার কাস্টম টেম্পলেট কনফিগারেশন সেট করুন
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/layout_generic.xsd">
    <referenceBlock name="admin.product.options">
        <action method="setTemplate">
            <argument name="template" xsi:type="string">[Vendor]_[ModuleName]::product_options.phtml</argument>
        </action>
    </referenceBlock>
</layout>

দ্রষ্টব্য: <action method="setTemplate">পরিবর্তে এটি ব্যবহার করা খুব গুরুত্বপূর্ণ <arguments><arguments>এক্সএমএল ঘোষণায় ব্লকটিতে অন্য কোনও টেম্পলেট নির্দিষ্ট না থাকলে কেবলমাত্র কাজ করবে। অন্য যে কোনও ক্ষেত্রে, আপনাকে <action method="setTemplate">বিদ্যমান টেম্পলেটটি ওভাররাইড করতে হবে । এটি ব্যবহার করা ভাল <action method="setTemplate">কারণ এটি সর্বদা কার্যকর হয় ।


0

হ্যাঁ, আপনি আপনার কাস্টম মডিউলের অ্যাপ / কোড থেকে টেমপ্লেট ফাইলগুলি ওভাররাইট করতে পারেন। তবে, মনে রাখবেন না যে ম্যাজেন্টোর উত্তরাধিকার ধারণাটিতে অ্যাপ্লিকেশন / ডিজাইন থেকে ফাইলগুলি (টেমপ্লেটগুলি, লেআউটগুলি, স্ট্যাটিক ফাইলগুলি) অ্যাপ্লিকেশন / কোডে ওভাররাইট করে rite ঠিক তেমনি চাইল্ড থিম প্যারেন্ট থিমকে ওভাররাইট করে।

সুতরাং, আমি আপনার কাস্টম মডিউলটির জন্য একটি কাস্টম থিম তৈরি করা এবং অ্যাপ্লিকেশন / ডিজাইনে আপনার সমস্ত পিএইচটিএমএল, এক্সএমএল, সিএসএস, জেএস, ফন্ট এবং চিত্র ফাইলগুলি যুক্ত করা ভাল বিবেচনা করি।

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