Я постараюсь дать общий ответ.
Как изменить шаблоны
В вашей теме вы можете переопределить любые phtml
файлы из темы по умолчанию или родительской темы. Скопируйте исходный файл app/design/frontend/[package]/[theme]/template/[path/to/phtml]
и внесите изменения.
Если у вас еще нет специальной темы для проекта, например, потому что вы только что купили тему, обязательно создайте ее на
app/design/frontend/[original-package]/[project-name]
Он унаследует от [original-package]/[default]
вас, вам не нужно копировать все по умолчанию, только файлы, в которые нужно внести изменения.
Модульные изменения
Альтернативой переопределению phtml
файла является изменение пути к шаблону. Обычно это можно сделать в макете XML следующим образом:
<reference name="the-block-name">
<action method="setTemplate"><name>path/to/new/template.phtml</name></action>
</reference>
Но это предназначено для использования модулями, которым нужно переключать шаблон, а не для конкретных изменений темы. Новый шаблон должен быть в base/default
то время.
Как использовать local.xml / theme.xml
local.xml
Файл должен находиться в каталоге актуальной темы , которую вы используете, т.е.
app/design/frontend/[package]/[theme]/layout
Несколько local.xml
файлов в резервной иерархии не учитываются. Первый из них, который можно найти, используется:
app/design/frontend/[package]/[theme]/layout/local.xml
app/design/frontend/[package]/default/layout/local.xml
app/design/frontend/base/default/layout/local.xml
(при условии иерархии по умолчанию и никакой пользовательской иерархии)
Как внести изменения
Вы должны иметь только изменения в local.xml, но не повторять определения, которые уже есть в исходных XML-файлах. Это также означает, что следует избегать копирования файлов XML из темы по умолчанию, чтобы вносить изменения непосредственно в файлы. Держите layout
каталог вашей темы в чистоте!
Типичными элементами local.xml
являются <remove>
полное удаление существующих блоков <action method="unsetChild">
и <action method="append">
перемещение блока от одного родителя к другому или вызов любых других методов в существующих блоках для изменения их поведения.
Magento 1.9
Начиная с Magento 1.9, лучше всего не использовать layout/local.xml
эти изменения, ноetc/theme.xml
Короче говоря, вы можете добавить обновление макета в app / design / frontend / yourpackage / etc / theme.xml. Преимущество заключается в том, что вы можете контролировать порядок загрузки обновлений макета. До Magento 1.9 файл local.xml всегда загружался последним, и после него невозможно было выполнить директивы компоновки.
Я больше не использую local.xml для модификации темы проекта. Я думаю, что local.xml просто используется в целях обратной совместимости (в 1.9 и выше), так как больше нет смысла его использовать. Local.xml также исключен в Magento 2 ( https://github.com/magento/magento2/issues/1037 ).
Источник: https://erfanimani.com/dont-use-local-xml/