Criei um tema criando e editando o seguinte arquivo:
frontend/mypackage/default/layout/local.xml
Eu tenho uma visualização de loja "site1" e desejo fazer exceções no local.xml padrão de "mypackage", então criei este arquivo:
frontend/mypackage/site1/layout/local.xml
No entanto, assim que eu crio esse arquivo, o Magento ignora as alterações padrão do local.xml.
Como eu digo ao Magento para usar o local.xml por padrão e adicionar as alterações no local.xml do site1?
layout
magento-1
theme
parent-child-theme
theme-fallback
Gerard Nijboer
fonte
fonte
Respostas:
Desde o Magento 1.9, você pode adicionar atualizações de layout personalizadas da
etc/theme.xml
seguinte maneira:Se você definir layouts específicos do tema como este em vez de usar
local.xml
, será fácil adicionar outra atualização no tema filho.Infelizmente, com o theme.xml, o mesmo problema ocorre com o uso apenas do tema atual, e não dos temas principais. Mas há muito menos duplicação.
Exemplo
theme.xml
para o tema filho:Fonte e mais informações: http://alanstorm.com/magento_infinite_fallback_theme_xml
fonte
O Magento não mescla alterações local.xml de outros arquivos local.xml. O funcionamento do fallback do tema Magento é que qualquer arquivo encontrado no tema / pacote atual será preferido e usado em relação a qualquer outro arquivo de tema / pacote com o mesmo nome.
Dessa maneira, você não pode criar uma substituição mesclada. Isso será possível no Magento 2, mas não no Magento 1.x.
Infelizmente, você terá que copiá-lo para o tema local a partir do padrão e fazer suas modificações lá.
Boa sorte.
fonte
Phil está absolutamente certo, mas teoricamente há uma solução alternativa (não tão bonita assim).
Você pode criar um módulo personalizado que apresentará a atualização de layout. Em seguida, no módulo, você pode verificar se a visualização da loja não é a necessária e remover esta atualização de layout.
O lado ruim dessa abordagem é que você codificará a visualização da loja. E no geral isso não parece bonito.
fonte