Як замінити HTML-файл за допомогою спеціального модуля?


20

Я розробляю спеціальний модуль для способу оплати в Magento 2. В даний час я використовую cc-form.html з каталогу постачальників і модуля. Дивіться нижче шлях:

vendor / magento / module-payment / view / frontend / web / template / Payment / cc-form.html

Чи є спосіб замінити HTML-файл?

Примітка. Я хотів би змінити це за допомогою спеціального розширення. Дивіться нижче шлях:

app / code / Простір імен / Модуль / view / frontend / web / template / Payment / cc-form.html

Будь-яка допомога буде вдячна. Дякую!


коли ви користувались цією формою, будь ласка, покажіть посилання або мапу сайту
MrTo-Kane

Відповіді:


34

Робоче рішення.

Просто створіть або відредагуйте файл Requjs-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-файлу шаблону електронної пошти у продажу модулів?
fudu

14

Ви можете просто додати файл cc-form.html у свій модуль оплати теми.

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

Ви можете змінити відповідно до своїх вимог вище.

Видаліть папку var із кореня та видаліть pub/static/frontendпапку.

Ви повинні мати команду run php bin/magento setup:static-content:deploy

Очистіть кеш браузера та поставте прапорець.


Я знаю, що це буде добре, якщо я розміщую cc-form.html під моєю темою. але я створюю розширення, тому не можу розмістити його під темою. я повинен повинен помістити цей файл у каталог модуля.
Маквана Кетан

1
Дякую, рейкеш. я знайшов рішення в stackoverflow.com/questions/37430036 / ...
Makwana кета

9

Прийняте рішення є правильним, але я копію тут повну відповідь @AntonGuz з "Переповнення стека" (дуже добре пояснено):

Так, є. Ви можете подивитися в статичній пабі, щоб побачити, як будується шлях до статичного активу.

Як це працює

Кожен актив доступний зі сторінки за допомогою enter code heres "RequireJS ID". Він схожий на реальний шлях, але різноманітний.

Наприклад файл http://magento.vg/static/adminhtml/Magento/backend/en_US/Magento_Theme/favicon.ico.

Це справжній шлях /app/code/Magento/Theme/view/adminhtml/web/favicon.ico. Це ідентифікатор RequireJS є Magento_Theme/favicon.ico. Це означає, що до файлу можна отримати доступ через require("text!Magento_Theme/favicon.ico")або подібну команду.

Ви можете виявити, що ідентифікатор RequireJS складається з назви модуля та корисної частини шляху (після папки 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

Отже, його ідентифікатор RequireJS є
Magento_Payment/template/payment/cc-form.html

Бічна примітка: Всередині компонентів інтерфейсу інтерфейс, яким він дорівнює Magento_Payment/payment/cc-form. Слова "шаблон" та ".html" додаються автоматично.

Тепер ви можете замінити цей файл для програми через конфігурацію RequireJS

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

Цей фрагмент коду, який ви розміщуєте у requirejs-config.jsфайлі у своєму модулі. Це все.

Можливо, це допоможе комусь зрозуміти, як це відбувається.


Як додати та змінити файл JS для цього html
jibin george

4

Я не знаю, з якої версії Magento2 вона потрібна, але якщо ви хочете замінити шаблон з модуля Magento_Ui, вам потрібно надати такий шлях:

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

Тому що в цьому файлі:

vendor / magento / module-ui / view / base / Requjs-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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.