कस्टम मॉड्यूल का उपयोग करके HTML फ़ाइल को ओवरराइड कैसे करें?


20

मैं Magento 2 में भुगतान विधि के लिए एक कस्टम मॉड्यूल विकसित कर रहा हूँ। वर्तमान में, मैं विक्रेता निर्देशिका और ठीक काम कर रहे मॉड्यूल से cc-form.html का उपयोग कर रहा हूं । नीचे देखें पथ:

विक्रेता / Magento / मॉड्यूल भुगतान न / देखें / दृश्यपटल / वेब / टेम्पलेट / भुगतान / cc-form.html

क्या HTML फ़ाइल को ओवरराइड करने का कोई तरीका है?

नोट: मैं एक कस्टम एक्सटेंशन का उपयोग करके इसे ओवरराइड करना चाहूंगा। नीचे देखें पथ:

एप्लिकेशन / कोड / नाम स्थान / मॉड्यूल / देखें / दृश्यपटल / वेब / टेम्पलेट / भुगतान / cc-form.html

किसी भी सहायता की सराहना की जाएगी। धन्यवाद!


आपने इस फॉर्म का उपयोग कब किया, कृपया लिंक या मानचित्र साइट दिखाएं।
MrTo-Kane

जवाबों:


34

काम करने का उपाय।

नीचे दिए गए पथ से बस आवश्यकताएं बनाएँ या संपादित करेंjj-config.js फ़ाइल।

/app/code/Namespace/Module/view/frontend/requirejs-config.js

और requjs-config.js में कोड के नीचे रखें

var config = {
    map: {
        '*': {
          'Magento_Payment/template/payment/cc-form.html': 
              'Namespace_Module/template/payment/cc-form.html'
        }
  }
};

तो हम इस तरह से किसी भी html फ़ाइल को ओवरराइड कर सकते हैं।


मॉड्यूल बिक्री में ईमेल टेम्पलेट HTML फ़ाइल के लिए काम नहीं करता है?
फुडू

14

आप बस अपने थीम भुगतान मॉड्यूल के अंदर अपनी cc-form.html फ़ाइल जोड़ सकते हैं।

<mage_dir>/app/design/frontend/{Package}/{themename}/Magento_Payment/web/template/payment/cc-form.html

आप उपरोक्त स्थानों पर अपनी आवश्यकताओं के अनुसार बदल सकते हैं।

Var फ़ोल्डर को रूट से निकालें और pub/static/frontendफ़ोल्डर निकालें ।

आपके पास कमांड चलना चाहिए php bin/magento setup:static-content:deploy

अपना ब्राउज़र कैश साफ़ करें और जांचें।


मुझे पता है कि अगर मैं cc-form.html को अपने विषय के अंतर्गत रखता हूँ तो यह ठीक चलेगा। लेकिन मैं एक्सटेंशन बना रहा हूं इसलिए मैं इसे थीम के तहत नहीं रख सकता। मुझे इस फाइल को मॉड्यूल की डायरेक्टरी में रखना होगा।
मकवाना केतन

1
शुक्रिया राकेश। मैंने इसका समाधान stackoverflow.com/questions/37430036/…
मकवाना केतन

9

स्वीकृत समाधान सही है, लेकिन मैं यहां "स्टैक ओवरफ्लो" से पूर्ण @AntonGuz उत्तर (बहुत समझाया):

हाँ वहाँ है। आप पब स्टेटिक में देख सकते हैं कि किस तरह से स्टैटिक एसेट का निर्माण किया गया है।

यह काम किस प्रकार करता है

हर संपत्ति पृष्ठ से enter code here"एसआरईजेएस आईडी" द्वारा सुलभ है । यह वास्तविक पथ के समान है, लेकिन विविध है।

उदाहरण के लिए फ़ाइल http://magento.vg/static/adminhtml/Magento/backend/en_US/Magento_Theme/favicon.ico

यह असली रास्ता है /app/code/Magento/Theme/view/adminhtml/web/favicon.ico। यह आवश्यकता है ID आईडी है Magento_Theme/favicon.ico। इसका मतलब यह है कि फ़ाइल के माध्यम से require("text!Magento_Theme/favicon.ico")या इसी तरह के आदेश तक पहुँचा जा सकता है ।

आप पा सकते हैं कि आवश्यकताएँ आईडी में मॉड्यूल नाम और पथ के उपयोगी भाग (फ़ोल्डर के बाद web) शामिल हैं।

मैं किसी फ़ाइल को कैसे बदल सकता हूँ

तो आपके पास फाइल है
vendor/magento/module-payment/view/frontend/web/template/payment/cc-form.html

पृष्ठ पर इसे src के रूप में लोड किया गया है
http://magento.vg/static/frontend/Magento/luma/en_US/Magento_Payment/template/payment/cc-form.html

तो इसकी आवश्यकताएँ आईडी है
Magento_Payment/template/payment/cc-form.html

साइड नोट: यूआई घटकों के अंदर सामान इसके बराबर होता है Magento_Payment/payment/cc-form। शब्द "टेम्पलेट" और ".html" स्वचालित रूप से जुड़ जाते हैं।

और अब आप आवश्यकताएँ के लिए इस फ़ाइल को आवश्यकता के अनुसार कॉन्फ़िगर कर सकते हैं

var config = {
  "map": {
    "*": {
      "Magento_Payment/template/payment/cc-form.html": 
          "<OwnBrand>_<OwnModule>/template/payment/cc-form.html"
    }
  }
};

इस कोड को आप requirejs-config.jsअपने मॉड्यूल में फ़ाइल में रखते हैं। बस इतना ही।

शायद यह किसी को समझने में मदद करेगा जैसा कि होता है।


आप इस html के लिए JS फाइल को कैसे जोड़ और संशोधित करते हैं
jibin george

4

मुझे नहीं पता कि Magento2 के किस संस्करण की आवश्यकता है, लेकिन यदि आप Magento_Ui मॉड्यूल से टेम्पलेट को ओवरराइड करना चाहते हैं, तो आपको इस तरह से पथ प्रदान करने की आवश्यकता है:

var config = {
    map: {
        "*": {
            'ui/template/form/element/select.html':'Vendor_Module/templates/form/element/select.html'
        }
    }
};

क्योंकि इस फ़ाइल में:

विक्रेता / Magento / मॉड्यूल-ui / देखें / आधार / requirejs-config.js

पथ मानचित्रण है:

/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

var config = {
    paths: {
        'ui/template': 'Magento_Ui/templates'
    },
    map: {
        '*': {
            uiElement:      'Magento_Ui/js/lib/core/element/element',
            uiCollection:   'Magento_Ui/js/lib/core/collection',
            uiComponent:    'Magento_Ui/js/lib/core/collection',
            uiClass:        'Magento_Ui/js/lib/core/class',
            uiEvents:       'Magento_Ui/js/lib/core/events',
            uiRegistry:     'Magento_Ui/js/lib/registry/registry',
            consoleLogger:  'Magento_Ui/js/lib/logger/console-logger',
            uiLayout:       'Magento_Ui/js/core/renderer/layout',
            buttonAdapter:  'Magento_Ui/js/form/button-adapter'
        }
    }
};
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.