Як замінити .phtml файли в Magento 2


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 \ templates \ product \ list.phtml. Але це не спрацювало. Чи можу я знати, де я зробив неправильно?
Vigna S

Та ж проблема, незалежно від того, скільки разів я натискаю, щоб оновити типовий, завантажений над моїм користувацьким. І так, я маю правильний шлях, перш ніж хтось запитає, але я використовую композитор для встановлення магенто, тому типові параметри знаходяться в різних місцях, якщо це має значення.
Дастін Пуассан

Мені довелося очистити кеш-пам'ять html-блоку, і тоді це прекрасно працювало для мене! (Я очистити кеш , як цей blog.gardenhouse.io/2018/05/29 / ... )
Поль

Як же замінити шаблон зі свого модуля?
Чорний

8

Я відповідаю на власне запитання,

Я дізнався, як замінити файли .phtml у місцях, зазначених у моєму запитанні,

Ви повинні розмістити їх у наступних місцях, щоб змінити вихідні файли

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

І я вважаю, що теорія така ж і для перекриття будь-яких інших .phtml-файлів у Magento 2


Чи можете ви, будь ласка, коротко докладніше ... Як я повинен копіювати свій власний файл phtml у папку теми isit? наприклад у програму \ design \ frontend \ <VENDOR_NAME> \ luma \ Magento_Catalog \ Чи потрібно створити папку Vendor і скопіювати в неї основний файл phtml? Якщо так чи не потрібні шаблони у папці перегляду?
Сушівам

Привіт, я намагаюся замінити файл phtml на віджет, і я не впевнений, що шлях, який я використав, є правильним. Чи визначена Magento_Catalog частина вашого шляху до папки модуля, яку ви переосмислюєте? Отже, якщо я перекриваю постачальник \ magento \ module-catalog-widget \ view \ frontend \ templates \ product \ widget \ content, я замінив би Magento_Catalog у вашому екземплярі на Magento_Catalog_Widget у моєму випадку? Трохи розгублений, оскільки мені це поки не зрозуміло.
robgt

6

Щоб замінити phtml, макет та веб-файли, щоб мати власну власну тему

1) Перезапис файлу шаблону:

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

Дотримуйтесь цього шляху

додаток / дизайн / frontend / постачальник / тема / Magento_Catalog / шаблони / продукт / list.phtml

2) Перезапис файлу макета:

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

Дотримуйтесь цього шляху

app / design / frontend / Vendor / topic / Magento_Catalog / layout / catalog_product_view.xml


Як замінити / налаштувати інші файли модулів, такі як Observer, Controller тощо?
Тахір Ясін

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

ось остаточно очистити кеш-пам'ять Магенто, а також браузер, а потім перевірити свою сторінку, лише відображений новий файл phtml.

так само, як ви можете це зробити для всіх шаблонів, що переоформляють.

Щасти


Дякую, я щойно це зрозумів і відповів на висновки у своїх власних питаннях, ваша відповідь набагато схожа на мої висновки.
nuwaus

2

Відкрити папку: /vendor/magento/theme-frontend-luma/і скопіюйте шаблони модулів та файли макета з папки перегляду.

Потім створіть папки: /app/design/frontend/spacename/Theme/

Потім створіть папку модулів, а потім створіть папки шаблонів та макетів.

Вставте файли шаблонів та макет із папки перегляду модулів.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.