Jak zastąpić podstawowe pliki szablonów z niestandardowego modułu?
10
Chcę zastąpić dwa pliki. Mianowicie view.phtmli print.phtmlzleceń sprzedaży.
(ścieżka: app/design/frontend/base/default/template/sales/order/)
Tworzę moduł, w którym chcę utworzyć ścieżkę, app/design/frontend/base/default/template/<My Module Name>/sales/order/aby rdzeń view.phtmli print.phtmlpliki nie zostały nadpisane.
Więc proszę, poprowadź mnie, jak osiągnąć to zadanie.
Możesz to zrobić z plikiem XML układu w swoim module. Musisz mieć sekcję w module config.xmlpodobną do tej, aby Magento załadował układ modułu XML (ścieżka:) app/design/frontend/base/default/layout/mymodulename.xml:
Krok 4: należy utworzyć plik local.xml w folderze układu (Możliwa ścieżka: app / design / frontend / package / theme / layout). To jest dla print.phtml.
Nie ma potrzeby przepisywania całego bloku. W mojej odpowiedzi Mage_Sales_Block_Order_Viewnajpierw wywoływany jest konstruktor get's i ustawia szablon, a następnie setTemplatewywoływany get przez XML układu z mojego przykładu i ustawia szablon niestandardowy. Chciałbym wybrać rozwiązania, które nie wykorzystują przepisywania, ponieważ mogą potencjalnie powodować konflikty.
7ochem
7ochem ma rację. Nie ma potrzeby ustawiania szablonu w bloku. Rozwiązanie 7ochem jest dobre i zadziałało dla mnie.
Rajan Faldu
To zależy od ciebie. Jeśli zastąpisz lub dodasz jakąś metodę php, musisz zastąpić blok, w przeciwnym razie po prostu zmienisz szablon poprzez module.xml lub local.xml. Moje rozwiązanie nie działa na żadną wersję Magento.
Załóżmy, że nasza nazwa modułu to „CustomSales” i nazwa pakietu „Exercise”.
Krok 1: Utwórz plik konfiguracyjny modułu w app / etc / modules / Exercise_CustomSales.xml
Krok 2: Utwórz plik konfiguracyjny w app / code / local / Exercise / CustomSales / etc / config.xml
Krok 3: Utwórz plik php, który zastąpi rzeczywisty plik view.phtml, app / code / local / Exercise / CustomSales / Block / Sales / Order / View.php
Krok 4: należy utworzyć plik local.xml w folderze układu (Możliwa ścieżka: app / design / frontend / package / theme / layout). To jest dla print.phtml.
np. (app / design / frontend / rwd / default / layout / local.xml)
Przenieś pliki view.phtml i print.phtml do „app / design / frontend / package / theme / template / Customales / sales / order”.
Wyczyść pamięć podręczną Magento.
źródło
Mage_Sales_Block_Order_View
najpierw wywoływany jest konstruktor get's i ustawia szablon, a następniesetTemplate
wywoływany get przez XML układu z mojego przykładu i ustawia szablon niestandardowy. Chciałbym wybrać rozwiązania, które nie wykorzystują przepisywania, ponieważ mogą potencjalnie powodować konflikty.