Spróbuję udzielić ogólnej odpowiedzi.
Jak zmienić szablony
W swoim motywie możesz zastąpić dowolne phtml
pliki z motywu domyślnego lub motywu nadrzędnego. Skopiuj oryginalny plik app/design/frontend/[package]/[theme]/template/[path/to/phtml]
i wprowadź zmiany.
Jeśli nie masz jeszcze niestandardowego motywu specyficznego dla projektu, na przykład dlatego, że właśnie kupiłeś motyw, pamiętaj, aby go utworzyć
app/design/frontend/[original-package]/[project-name]
Dziedziczy po [original-package]/[default]
, nie musisz kopiować wszystkiego z domyślnych, tylko pliki, w których musisz wprowadzić zmiany.
Zmiany specyficzne dla modułu
Alternatywą dla zastąpienia phtml
pliku jest zmiana ścieżki szablonu. Zwykle można to zrobić w układzie XML w następujący sposób:
<reference name="the-block-name">
<action method="setTemplate"><name>path/to/new/template.phtml</name></action>
</reference>
Ale jest to przeznaczone do użytku przez moduły, które muszą zmienić szablon, a nie do zmian specyficznych dla motywu. Powinien być base/default
wtedy nowy szablon .
Jak korzystać z local.xml / theme.xml
The local.xml
Plik musi znajdować się w katalogu rzeczywistego motywu, którego używasz, czyli
app/design/frontend/[package]/[theme]/layout
Wielokrotność local.xml
plików w hierarchii rezerwowej nie jest branych pod uwagę. Pierwszy z nich, który można znaleźć, jest używany:
app/design/frontend/[package]/[theme]/layout/local.xml
app/design/frontend/[package]/default/layout/local.xml
app/design/frontend/base/default/layout/local.xml
(przy założeniu domyślnej hierarchii i braku niestandardowej hierarchii)
Jak wprowadzać zmiany
Powinieneś mieć tylko modyfikacje w pliku local.xml, a nie powtarzać definicji, które są już w oryginalnych plikach XML. Oznacza to również, że należy unikać kopiowania plików XML z domyślnego motywu, aby wprowadzać zmiany bezpośrednio w plikach. Zachowaj swój motywlayout
katalog czystości!
Typowe elementy local.xml
to <remove>
całkowite usunięcie istniejących bloków <action method="unsetChild">
i <action method="append">
przeniesienie bloku z jednego rodzica do drugiego lub wywołanie innych metod na istniejących blokach, aby zmodyfikować ich zachowanie.
Magento 1.9
Począwszy od Magento 1.9, najlepszą praktyką jest nie używanie layout/local.xml
tych zmian, aleetc/theme.xml
Krótko mówiąc, możesz dodać aktualizację układu w app / design / frontend / yourpackage / etc / theme.xml. Zaletą jest to, że masz kontrolę nad kolejnością ładowania aktualizacji układu. Przed Magento 1.9 plik local.xml był zawsze ładowany jako ostatni i po nim nie można było wykonać dyrektyw układu.
Nie używam już local.xml do modyfikacji kompozycji specyficznych dla projektu. Myślę, że plik local.xml jest używany tylko ze względu na kompatybilność wsteczną (w wersji 1.9 i nowszych), ponieważ nie ma sensu z niego korzystać. Plik Local.xml został także wyeliminowany w Magento 2 ( https://github.com/magento/magento2/issues/1037 ).
Źródło: https://erfanimani.com/dont-use-local-xml/