Спробую дати загальну відповідь.
Як змінити шаблони
У вашій темі ви можете замінити будь-які 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
Якщо коротко, ви можете додати оновлення макета в додаток / дизайн / 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/isissue/1037 ).
Джерело: https://erfanimani.com/dont-use-local-xml/