Proszę zasugerować właściwe podejście, chcę dostosować stronę „EMAIL do znajomego” w wyskakującym oknie, gdy użytkownik kliknie przycisk (wyślij ten produkt e-mailem). Dzięki włączeniu podpowiedzi do szablonów odkryłem, że przycisk jest renderowany
frontend / rwd / default / template / catalog / product / view / sharing.phtml
Odpowiedni plik układu to catalog.xml
(w frontend / rwd / default / layout)
Więc utworzyłem local.xml
w tym samym folderze, w którym catalog.xml
istnieje, z następującym kodem (tylko, że podałem test.phtml
zamiast sharing.phtml
, tylko do „Debugowania”)
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<catalog-product-view>
<reference name="content">
<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
<block type="catalog/product_view" name="product.info.sharing" as="sharing" template="catalog/product/view/test.phtml"/>
</block>
</reference>
</catalog-product-view>
</default>
</layout>
Ale nic się nie dzieje, mam na myśli to, jak mogę zmienić (nadpisać) domyślny projekt motywu bez modyfikowania istniejących xml
i phtml
plików?
<reference name="content"><block type="core/template" name="test.block" template="catalog/product/view/test.phtml" /></reference>
bezpośrednio pod węzłem<catalog_product_view>
. i sprawdź, czy zawartość pliku test.phtml jest dostępna w dolnej części strony widoku produktuSpró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 plikapp/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ć
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: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, czyliWielokrotność
local.xml
plików w hierarchii rezerwowej nie jest branych pod uwagę. Pierwszy z nich, który można znaleźć, jest używany:(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 motyw
layout
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
Źródło: https://erfanimani.com/dont-use-local-xml/
źródło