Как переопределить .phtml файлы в Magento 2

15

Я хочу настроить страницу сведений о продукте, поэтому требуется переопределить некоторые файлы .phtml в следующих местах.

Поэтому я хочу знать, как переопределить .phtml файлы в vendor\magento\module-catalog\view\frontend\templates\productилиvendor\magento\module-theme\view

nuwaus
источник

Ответы:

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

Теперь вы можете вносить любые изменения в ваш переопределенный файл.

Для подробностей, пожалуйста, прочитайте этот урок, он вам очень поможет.

Arunendra
источник
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

nuwaus
источник
Не могли бы вы рассказать подробнее ... Как я должен скопировать свой собственный файл 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/

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

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

Абхинав Сингх
источник
0

Classy Llama хорошо поработала над статьей, в которой показано несколько ситуаций и как переопределить файлы шаблонов в каждой из них.

https://www.classyllama.com/blog/template-override-m2

Это помогло мне, когда я пришел в эту ветку в поисках ответов.

Рикардо Мартинс
источник