Magento 2 में .phtml फ़ाइलों को ओवरराइड कैसे करें


15

मैं उत्पाद विवरण पृष्ठ को अनुकूलित करना चाहता हूं, इसलिए निम्न स्थानों में कुछ .phtml फ़ाइलों को ओवरराइड करना आवश्यक है।

तो मैं जानना चाहता हूँ, कैसे .phtml फ़ाइलों में vendor\magento\module-catalog\view\frontend\templates\productया ओवरराइड करने के लिएvendor\magento\module-theme\view

जवाबों:


23

कभी-कभी हमें मौजूदा टेम्प्लेट में संशोधन करने की आवश्यकता होती है। मौजूदा टेम्पलेट फ़ाइलों में सीधे परिवर्तन करने के बजाय, हमें उन्हें अपने स्वयं के विषय में ओवरराइड करना चाहिए। आइए हम मान लें कि हम श्रेणी लिस्टिंग पृष्ठ ( list.phtml) को अपडेट करना चाहते हैं । ऐसा करने के लिए, निम्नलिखित निर्देशिका संरचना बनाएं:

app/design/frontend/Mycompany/Basic/Magento_Catalog/templates/product

यहाँ मैं यह मानता हूँ कि हमारा वर्तमान विषय बेसिक है। अब निम्न स्थान से उत्पाद निर्देशिका में list.phtml फ़ाइल की प्रतिलिपि बनाएँ:

app/vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

अब आप अपनी ओवरराइड की गई फ़ाइल में कोई भी संशोधन कर सकते हैं।

विस्तार के लिए कृपया इस ट्यूटोरियल को पढ़ें यह आपकी बहुत मदद करता है।


2
नमस्ते, मैं सिर्फ निम्नलिखित पथ में list.phtml फ़ाइल को ओवरराइड करता हूं, \ app \ design \ frontend \ Magento \ luma \ Magento_Catalog \ टेम्पलेट्स \ उत्पाद \ list.phtml। लेकिन यह काम नहीं किया है। क्या मैं जान सकता हूं कि मैंने कहां गलत किया?
विग्ना एस

एक ही समस्या है, कोई फर्क नहीं पड़ता कि मैं कितनी बार हिट डिफ़ॉल्ट एक कस्टम एक पर भरी हुई है। और हाँ, मेरे पास किसी के भी पूछने से पहले सही रास्ता है, लेकिन मैं मैग्नेटो को स्थापित करने के लिए संगीतकार का उपयोग कर रहा हूं ताकि चूक विभिन्न स्थानों पर हो अगर यह मायने रखता है।
डस्टिन पॉसेंट

मुझे html ब्लॉक कैश साफ़ करना था और फिर यह मेरे लिए पूरी तरह से काम करता है! (मैं इस ब्लॉग की तरह कैश को साफ़ करता हूं। gardshouse.io/2018/05/29/… )
पॉल

हालांकि अपने मॉड्यूल से टेम्पलेट को ओवरराइड कैसे करें?
ब्लैक

8

मैं अपने ही सवाल का जवाब दे रहा हूं,

मुझे पता चला कि मेरे प्रश्न में वर्णित स्थानों में .phtml फ़ाइलों को कैसे हटाया जाए,

आपको उन्हें मूल फ़ाइलों को ओवरराइड करने के लिए निम्न स्थानों पर रखना होगा

app\design\frontend\<VENDOR_NAME>\<THEME_NAME>\Magento_Catalog\templates\product\view

और मेरा मानना ​​है कि Magento 2 में किसी भी अन्य .phtml फ़ाइलों को ओवरराइड करने के लिए सिद्धांत समान है


क्या आप कृपया और अधिक संक्षिप्त कर सकते हैं ... जैसे मुझे थीम फ़ोल्डर isit में अपनी कस्टम phtml फ़ाइल की प्रतिलिपि बनाना है? जैसे app \ design \ frontend \ <VENDOR_NAME> \ luma \ Magento_Catalog \ में मुझे अपना विक्रेता फ़ोल्डर बनाना होगा और उसमें कोर phtml फ़ाइल की प्रतिलिपि बनानी होगी? यदि ऐसा करने से, दृश्य फ़ोल्डर में टेम्पलेट्स की कोई आवश्यकता नहीं है?
सुशीवम

नमस्ते, मैं एक विजेट के लिए एक phtml फ़ाइल को ओवरराइड करने की कोशिश कर रहा हूं, और मुझे यकीन नहीं है कि मैंने जो रास्ता इस्तेमाल किया है वह सही है। क्या Magento_Catalog आपके पथ का वह भाग है जो आपके द्वारा अधिलेखित किए जा रहे मॉड्यूल फ़ोल्डर के लिए विशिष्ट है? इसलिए, यदि मैं विक्रेता \ magento \ मॉड्यूल-कैटलॉग-विजेट \ view \ frontend \ टेम्पलेट्स \ उत्पाद \ विजेट \ सामग्री को ओवरराइड कर रहा हूं, तो क्या मैं आपके उदाहरण में Magento_Catalog_Watalog के साथ आपके उदाहरण में Magento_Catalog को प्रतिस्थापित करूंगा? थोड़ा उलझन में है क्योंकि यह मेरे लिए अभी तक स्पष्ट नहीं है।
'10

6

अपनी कस्टम थीम के लिए phtml, लेआउट और वेब फ़ाइलों को ओवरराइड करने के लिए

1) टेम्पलेट फ़ाइल को ओवरराइड करने के लिए:

विक्रेता / Magento / मॉड्यूल-सूची / देखें / दृश्यपटल / टेम्पलेट्स / उत्पाद / list.phtml

इस रास्ते पर चलें

एप्लिकेशन / डिजाइन / दृश्यपटल / विक्रेता / विषय / Magento_Catalog / टेम्पलेट्स / उत्पाद / list.phtml

2) लेआउट फ़ाइल को ओवरराइड करने के लिए:

विक्रेता / Magento / मॉड्यूल-सूची / देखें / दृश्यपटल / लेआउट / catalog_product_view.xml

इस रास्ते पर चलें

एप्लिकेशन / डिजाइन / दृश्यपटल / विक्रेता / विषय / Magento_Catalog / लेआउट / catalog_product_view.xml


ओवरसर्वर, कंट्रोलर आदि जैसे अन्य मॉड्यूल फ़ाइलों को ओवरराइड / कस्टमाइज़ कैसे करें?
ताहिर यासीन

6

से pthml और लेआउट फ़ाइलों को ओवरराइड करने के लिए

vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

में

app/Mycompany/OverideCatalog/view/frontend/templates/product/list.phtml

लेआउट:

vendor/magento/module-catalog/view/frontend/layout/catalog_category_view.xml

में

app/Mycompany/OverideCatalog/view/frontend/layout/catalog_category_view.xml

<block class="Magento\Catalog\Block\Product\ListProduct" name="category.products.list" as="product_list" template="Mycompnay_OverideCatalog::product/list.phtml">

3

कस्टम थीम द्वारा ओवरराइड टेम्प्लेट (phtml)

यदि आप vendor\magento\module-catalog\view\frontend\templates\product\some.phtmlपहले अपने कस्टम थीम को ओवरराइड करना चाहते हैं , तो कृपया कस्टम थीम बनाने के लिए इस लिंक को देखें ।

उसके बाद डिफ़ॉल्ट रूप से ओवरराइड करने के लिए अपने कस्टम थीम में phtml फ़ाइल बनाएं

 app/design/frontend/vendor-name/theme-name/Magento_Catalog/templates/product/some.phtml

यह अंततः Magento के कैश के साथ-साथ ब्राउज़र को भी साफ़ करता है, तो अपने पृष्ठ की जाँच करें, नई phtml फ़ाइल केवल प्रतिबिंबित।

उसी तरह आप सभी टेम्प्लेट को ओवरराइड कर सकते हैं।

सौभाग्य


धन्यवाद, मैंने अभी इसे समझ लिया है और अपने स्वयं के प्रश्नों में खोज का उत्तर दिया है, आपका उत्तर मेरे निष्कर्षों के समान है।
न्यूवॉस'

2

फ़ोल्डर खोलें: /vendor/magento/theme-frontend-luma/और मॉड्यूल टेम्पलेट्स और लेआउट फ़ाइलों को दृश्य फ़ोल्डर से कॉपी करें।

फिर फ़ोल्डर बनाएँ: /app/design/frontend/spacename/Theme/

फिर मॉड्यूल फ़ोल्डर बनाएँ और फिर टेम्पलेट और लेआउट फ़ोल्डर बनाएँ।

मॉड्यूल दृश्य फ़ोल्डर से टेम्प्लेट और लेआउट फ़ाइलें सम्मिलित करें।


0

क्लासी लामा ने एक लेख पर अच्छा काम किया जो कई स्थितियों को दिखाता है और उनमें से प्रत्येक में टेम्पलेट फ़ाइलों को कैसे ओवरराइड करना है।

https://www.classyllama.com/blog/template-override-m2

जब मैंने उत्तर की तलाश में इस धागे पर आकर मेरी मदद की।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.