J'ai construit un thème en créant et en éditant le fichier suivant:
frontend/mypackage/default/layout/local.xml
J'ai une vue de magasin "site1", et je souhaite faire des exceptions sur le fichier local.xml par défaut de "mypackage", j'ai donc créé ce fichier:
frontend/mypackage/site1/layout/local.xml
Cependant, dès que je crée ce fichier, Magento ignore les modifications par défaut local.xml.
Comment puis-je dire à Magento d'utiliser le fichier local.xml par défaut et d'y ajouter les modifications du fichier local.xml de site1?
layout
magento-1
theme
parent-child-theme
theme-fallback
Gerard Nijboer
la source
la source
Réponses:
Depuis Magento 1.9, vous pouvez ajouter des mises à jour de disposition personnalisées
etc/theme.xml
comme ceci:Si vous définissez des dispositions spécifiques à votre thème comme celle-ci au lieu de les utiliser
local.xml
, il est facile d'ajouter une autre mise à jour dans le thème enfant.Malheureusement, le même problème se pose avec theme.xml que seul celui de votre thème réel est utilisé, pas celui des thèmes parents. Mais il y a beaucoup moins de dédoublements.
Exemple
theme.xml
pour le thème enfant:Source et plus d'informations: http://alanstorm.com/magento_infinite_fallback_theme_xml
la source
Magento ne fusionne pas les modifications local.xml des autres fichiers local.xml. La façon dont le thème de secours de Magento fonctionne est que tout fichier trouvé dans le thème / package actuel sera préféré et utilisé par rapport à tout autre fichier de thème / package portant le même nom.
De cette façon, vous ne pouvez pas créer de remplacement fusionné. Cela sera possible dans Magento 2, mais n'est pas possible dans Magento 1.x.
Malheureusement, vous devrez le copier sur votre thème local par défaut et y apporter vos modifications.
Bonne chance.
la source
Phil a tout à fait raison, mais théoriquement, il existe une solution de contournement (pas si jolie que cela).
Vous pouvez créer un module personnalisé qui introduira la mise à jour de la mise en page. Ensuite, dans le module, vous pouvez vérifier si la vue du magasin n'est pas celle qui est requise et supprimer cette mise à jour de la mise en page.
La mauvaise chose à propos de cette approche est que vous coderez en dur la vue du magasin. Et dans l'ensemble, cela n'a pas l'air joli.
la source