Как переопределить .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

Та же проблема, независимо от того, сколько раз я нажимаю обновить, по умолчанию загружается поверх моего пользовательского. И ДА, у меня есть правильный путь, прежде чем кто-нибудь спросит, но я использую composer для установки magento, поэтому значения по умолчанию находятся в разных местах, если это имеет значение.
Дастин Пуассан

Я должен был очистить кэш 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? как в app \ design \ frontend \ <VENDOR_NAME> \ luma \ Magento_Catalog \ Нужно ли мне создавать папку Vendor и копировать в нее основной файл phtml? Если при этом не нужны шаблоны в папке просмотра?
Сушивам

Привет, я пытаюсь переопределить файл phtml для виджета, и я не уверен, что путь, который я использовал, является правильным. Является ли часть вашего пути Magento_Catalog определенной для папки модуля, которую вы переопределяете? Итак, если я переопределяю vendor \ magento \ module-catalog-widget \ view \ frontend \ templates \ product \ widget \ content, я бы заменил Magento_Catalog в вашем экземпляре на Magento_Catalog_Widget в моем случае? Немного смущен, так как мне пока не ясно.
Робгт

6

Для переопределения phtml, макета и веб-файлов в собственную пользовательскую тему

1) Переопределить файл шаблона:

продавец / Magento / модуль-каталог / просмотр / интерфейс / шаблоны / продукта / list.phtml

Следуйте по этому пути

приложение / дизайн / интерфейс / Производитель / Тема / Magento_Catalog / шаблоны / продукта / list.phtml

2) Переопределить файл макета:

продавец / Magento / модуль-каталог / вид / интерфейс / расположение / catalog_product_view.xml

Следуйте по этому пути

приложение / дизайн / интерфейс / Производитель / Тема / Magento_Catalog / макет / catalog_product_view.xml


Как переопределить / настроить другие файлы модуля, такие как Observer, Controller и т. Д.?
Тахир Ясин

6

Переопределить файлы pthml и layout из

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 файл только отражается.

так же, как вы можете сделать для всех шаблонов переопределения.

удачи


Спасибо, я только что понял это и ответил на вывод в моих собственных вопросах, ваш ответ очень похож на мои выводы.
nuwaus

2

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

Затем создайте папки: /app/design/frontend/spacename/Theme/

Затем создайте папку модуля, а затем создайте шаблоны и папку макета.

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.