Stworzyłem motyw, tworząc i edytując następujący plik:
frontend/mypackage/default/layout/local.xml
Mam widok sklepu „site1” i chcę zrobić wyjątki w domyślnym pliku local.xml „mypackage”, więc utworzyłem ten plik:
frontend/mypackage/site1/layout/local.xml
Jednak jak tylko utworzę ten plik, Magento pomija domyślne zmiany local.xml.
Jak mam powiedzieć Magento, aby domyślnie używał pliku local.xml, i do tego dodać zmiany w pliku local.xml serwisu site1?
layout
magento-1
theme
parent-child-theme
theme-fallback
Gerard Nijboer
źródło
źródło
Odpowiedzi:
Od Magento 1.9 możesz dodawać niestandardowe aktualizacje układu w
etc/theme.xml
następujący sposób:Jeśli zdefiniujesz takie układy motywu zamiast tego, możesz
local.xml
łatwo dodać kolejną aktualizację do motywu potomnego.Niestety ten sam problem dotyczy pliku theme.xml, który jest używany tylko z motywu rzeczywistego, a nie z motywów nadrzędnych. Ale duplikacja jest znacznie mniejsza.
Przykład
theme.xml
motywu podrzędnego:Źródło i więcej informacji: http://alanstorm.com/magento_infinite_fallback_theme_xml
źródło
Magento nie scala zmian local.xml z innych plików local.xml. Działanie rezerwowej kompozycji Magento polega na tym, że każdy plik znaleziony w bieżącym motywie / pakiecie będzie preferowany i używany w stosunku do każdego innego pliku motywu / pakietu o podobnej nazwie.
W ten sposób nie można utworzyć scalonego zastąpienia. Będzie to możliwe w Magento 2, ale nie jest możliwe w Magento 1.x.
Niestety będziesz musiał skopiować go z domyślnego motywu lokalnego i dokonać tam modyfikacji.
Powodzenia.
źródło
Phil ma absolutną rację, ale teoretycznie istnieje obejście (choć nie takie ładne).
Możesz utworzyć niestandardowy moduł, który wprowadzi aktualizację układu. Następnie w module możesz sprawdzić, czy widok sklepu nie jest tym, który jest wymagany i usunąć tę aktualizację układu.
Złą rzeczą w tym podejściu jest to, że na stałe zakodujesz widok sklepu. I ogólnie to nie wygląda ładnie.
źródło