Я создал тему, создав и отредактировав следующий файл:
frontend/mypackage/default/layout/local.xml
У меня есть представление магазина "site1", и я хочу сделать исключения в локальном.xml по умолчанию для mypackage, поэтому я создал этот файл:
frontend/mypackage/site1/layout/local.xml
Однако, как только я создаю этот файл, Magento пропускает изменения по умолчанию local.xml.
Как мне сказать Magento использовать local.xml по умолчанию и добавить к нему изменения в local.xml сайта site1?
layout
magento-1
theme
parent-child-theme
theme-fallback
Джерард Нийбоер
источник
источник
Ответы:
Начиная с Magento 1.9 вы можете добавлять пользовательские обновления макета
etc/theme.xml
следующим образом:Если вы определяете макеты для своей темы таким образом, а не используете
local.xml
, легко добавить другое обновление в дочернюю тему.К сожалению, та же проблема связана с theme.xml, что используется только тот из вашей актуальной темы, а не из родительских тем. Но дублирования намного меньше.
Пример
theme.xml
для дочерней темы:Источник и дополнительная информация: http://alanstorm.com/magento_infinite_fallback_theme_xml
источник
Magento не объединяет изменения local.xml с другими файлами local.xml. Резервный вариант Magento работает так, что любой файл, найденный в текущей теме / пакете, будет предпочтительным и будет использоваться над любым другим файлом темы / пакета с таким же именем.
Таким образом, вы не можете создать объединенное переопределение. Это будет возможно в Magento 2, но невозможно в Magento 1.x.
К сожалению, вам придется скопировать ее в вашу локальную тему из настроек по умолчанию и внести в нее изменения.
Удачи.
источник
Фил абсолютно прав, но теоретически есть обходной путь (хотя и не такой красивый).
Вы можете создать собственный модуль, который представит обновление макета. Затем в модуле вы можете проверить, является ли представление магазина не тем, которое требуется, и удалить это обновление макета.
Недостаток этого подхода в том, что вы жестко закодируете представление магазина. И в целом это не выглядит красиво.
источник