W poprzednim rozdziale opisałem jeden ze sposobów nadpisywania szablonów Magento na „frontendzie”, wykorzystując do tego celu własny motyw. Jest to najprostsza metoda, którą można wykorzystać również do przysłaniania „backendu”. Oczywiście nie zawsze, czasem będziemy zmuszeni skorzystać z własnego modułu aby rozszerzyć funkcjonalność danego widoku. Jest to druga najczęściej używana metoda, którą pasuje znać 😉 .

Dla przykładu nadpiszemy widok ze szczegółami zamówienia z modułu Magento_Sales.
W tym celu:

1. Utwórz moduł o nazwie np: Spin_Sales:

app/code/Spin/Sales/etc/module.xml

app/code/Spin/Sales/registration.php

2. Skopiuj plik szablonu ze szczegółami zamówienia – items.phtml, który znajduje się w lokalizacji:
vendor/magento/module-sales/view/adminhtml/templates/order/view/items.phtml
i zapisz go do swojego modułu:
app/code/Spin/Sales/view/adminhtml/templates/order/view/items.phtml

Zwróć uwagę na strukturę katalogów, która musi być analogiczna jak w oryginalnym położeniu: view/adminhtml/templates/order/view/items.phtml

3. Skopiuj plik z layoutem – sales_order_view.xml ze ścieżki:
vendor/magento/module-sales/view/adminhtml/layout/sales_order_view.xml
do odpowiedniego katalogu w swoim module:
app/code/Spin/Sales/view/adminhtml/layout/sales_order_view.xml

Edytuj plik, zmieniając w nim zapis, który odpowiada za wczytanie szablonu, czyli:
template=”Magento_Sales::order/view/items.phtml”
na:
template=”Spin_Sales::order/view/items.phtml”

Oczywiście cała zawartość skopiowanego pliku sales_order_view.xml jest niepotrzebna, gdyż nadpisujemy jedynie szablon, tak więc można to uprościć do postaci:

4. Z wiersza poleceń ssh aktualizujemy zmiany:

Na koniec czyścimy cache:

i testujemy 🙂