2016-01-04 3 views
2

В панели администрирования Magento 2.0 (Store> Cofiguration> Developer> Debug) Я установил «Enabled Template Path Hints for Storefront» в «Yes». Это дает мне ссылки на файлы phtml, которые генерируют HTML-код для каждого раздела.Как заменить phtml-файлы в Magento 2.0?

Q1) Внесение изменений в эти файлы дает результат, который я получил после. Но я полагаю, что они будут восстановлены/изменены, если я решит обновить Magento до более новой версии. Я прав?

Q2) Есть ли способ изменить файлы phtml другим способом размещения файлов phtml в моей папке тем? Если да, где их разместить?

(Я не большой поклонник XML для простых изменений HTML, по возможности я хотел бы как можно больше написать статический HTML. Я активировал собственную тему без какой-либо базовой темы. Я новичок в Magento.)

Спасибо!

ответ

3

Насколько я знаю, существует два способа изменить шаблоны phtml. Внесение изменений в оригинал Файлы Magento - это плохая практика, и ее следует избегать.

Пользовательской Тема

Внутри пользовательской тему вы можете изменить любой понравившийся шаблон, после папки в иерархии Magento2. . изменение login.phtml (поступающего из модуля Magento_Customer) ваш FilePath будет выглядеть следующим образом:

app/design/frontend/${VENDORNAME}/${THEMENAME}/Magento_Customer/templates/form/login.phtml

Исходный файл живет в:

app/code/Magento/Customer/view/frontend/templates/form/login.phtml

Я надеюсь, что это помогает понять схема именования здесь.

Пользовательский модуль

Внутри пользовательского модуля это немного сложнее изменить шаблоны. Ниже приведен пример изменения topmenu.html, исходящего от модуля Magento_Theme. В вашем модуле шаблон должен быть размещен здесь:

app/code/${VENDORNAME}/${MODULENAME}/view/frontend/templates/html/topmenu.phtml

Кроме того, требуется определение макета:

app/code/${VENDORNAME}/${MODULENAME}/view/frontend/layout/default.xml

<?xml version="1.0"?> 
<page layout="1columns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> 
    <body> 
    <referenceBlock class="Magento\Theme\Block\Html\Topmenu" name="catalog.topnav" template="${VENDORNAME}_${MODULENAME}::html/topmenu.phtml" ttl="false"/> 
    </body> 
</page> 

Посмотрите app/code/Magento/Theme/view/frontend/layout/default.xml для справки, где это xml crap можно найти;)

+0

Большое вам спасибо за очищение этого от меня! Я думаю, что вижу логику. Мои подсказки пути дают мне, например, «/vendor/magento/module-theme/view/frontend/templates/html/bugreport.phtml» (я считаю, что это «поставщик/...», потому что я загрузил и установил его с Magento.com).Я заменяю «vendor/magento/module-XXX» на «app/design/frontend/YOURVENDORNAME/YOURTHEMENAME/Magento_XXX /» и удаляю «view/frontend /» из адреса, который из примера дает мне «app/design/frontend/YOURVENDORNAME/YOURTHEMENAME/Magento_Theme/шаблоны/html/bugreport.phtml». – Gordova

+0

Для удаления нижнего колонтитула, я думаю, вам нужно отредактировать XML. См. Http://magento.stackexchange.com/questions/93628/magento-2-remove-and-change-footer-links – Gordova

+0

Означает ли это, что есть 2 способа переопределения основных файлов phtml? и предпочтительнее использовать наследование темы ... Если мы сохраним наш пользовательский файл phtml в папке темы, нет необходимости в шаблонах в view/frontend? А как насчет файлов макетов? –

0

Создать файл журнала «mylog.log» внутри var/log/и поместите этот код в свою функцию.

$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/mylog.log'); 
    $logger = new \Zend\Log\Logger(); 
    $logger->addWriter($writer); 
    $logger->info("Here your cmment"); 

Дайте разрешение на чтение данного файла.

Смежные вопросы