Bagaimana cara mengganti file HTML menggunakan modul khusus?


20

Saya sedang mengembangkan modul khusus untuk metode pembayaran di Magento 2. Saat ini, saya menggunakan cc-form.html dari direktori vendor dan modul berfungsi dengan baik. Lihat jalur di bawah ini:

vendor / magento / pembayaran modul / tampilan / antarmuka / web / template / pembayaran / cc-form.html

Apakah ada cara untuk mengganti file HTML?

Catatan: Saya ingin menimpanya menggunakan ekstensi khusus. Lihat jalur di bawah ini:

app / code / Namespace / Module / view / frontend / web / template / pembayaran / cc-form.html

Bantuan apa pun akan dihargai. Terima kasih!


kapan Anda menggunakan formulir ini, tunjukkan tautan atau peta situs.
MrTo-Kane

Jawaban:


34

Solusi kerja.

Cukup buat atau edit file requireejs-config.js dari jalur di bawah ini.

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

Dan tempatkan kode di bawah ini di requireejs-config.js

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

Jadi kita dapat mengganti file html dengan cara ini.


tidak berfungsi untuk file html templat email dalam penjualan modul?
fudu

14

Anda bisa menambahkan file cc-form.html Anda di dalam modul pembayaran tema Anda.

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

Anda dapat mengubah sesuai dengan kebutuhan Anda di tempat di atas.

Hapus folder var dari root dan hapus pub/static/frontendfolder.

Anda harus menjalankan perintah php bin/magento setup:static-content:deploy

Bersihkan cache browser Anda dan periksa.


Saya tahu ini akan berfungsi dengan baik jika saya menempatkan cc-form.html di bawah tema saya. tetapi saya membuat ekstensi jadi saya tidak bisa menempatkannya di bawah tema. saya harus meletakkan file ini di bawah direktori modul.
Makwana Ketan

1
Terima kasih rakesh. saya menemukan solusinya di stackoverflow.com/questions/37430036/…
Makwana Ketan

9

Solusi yang diterima benar, tetapi saya salin di sini jawaban lengkap @AntonGuz dari "Stack Overflow" (dijelaskan dengan sangat baik):

Ya ada. Anda dapat melihat di pub statis untuk melihat bagaimana jalur ke aset statis dibangun.

Bagaimana itu bekerja

Setiap aset dapat diakses dari halaman dengan enter code here"ID Wajib". Itu mirip dengan jalan nyata, tetapi bervariasi.

Misalnya file http://magento.vg/static/adminhtml/Magento/backend/en_US/Magento_Theme/favicon.ico.

Ini jalan yang sebenarnya /app/code/Magento/Theme/view/adminhtml/web/favicon.ico. Ini Membutuhkan ID JS adalah Magento_Theme/favicon.ico. Ini berarti file tersebut dapat diakses melalui require("text!Magento_Theme/favicon.ico")atau perintah serupa.

Anda dapat menemukan bahwa RequireJS ID terdiri dengan nama modul dan bagian jalur yang berguna (setelah folder web).

Bagaimana saya bisa mengganti file

Jadi, Anda punya file
vendor/magento/module-payment/view/frontend/web/template/payment/cc-form.html

Pada halaman itu dimuat dengan src as
http://magento.vg/static/frontend/Magento/luma/en_US/Magento_Payment/template/payment/cc-form.html

Jadi ID Persyaratannya adalah
Magento_Payment/template/payment/cc-form.html

Catatan: Di dalam komponen-komponen UI itu sama dengan Magento_Payment/payment/cc-form. Kata "templat" dan ".html" ditambahkan secara otomatis.

Dan sekarang Anda dapat mengganti file ini untuk aplikasi melalui confe RequireJS

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

Cuplikan kode ini Anda tempatkan dalam requirejs-config.jsfile di modul Anda. Itu semuanya.

Mungkin itu akan membantu seseorang untuk memahami apa yang terjadi.


Bagaimana Anda menambahkan dan memodifikasi file JS untuk html ini
jibin george

4

Saya tidak tahu karena versi Magento2 mana yang diperlukan tetapi jika Anda ingin mengganti template dari modul Magento_Ui, Anda perlu memberikan path seperti ini:

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

Karena dalam file ini:

vendor / magento / module-ui / view / base / requireejs-config.js

Ada pemetaan jalur:

/**
 * 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'
        }
    }
};
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.