Tworzę moduł i chcę zastąpić szablon app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml
.
Czy jest to możliwe w module (nie w temacie)
Niestety zmiana nazwy modułu za pomocą układu XML nie wydaje się zbyt łatwa, ponieważ jest to ustawione na stałe w https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/Block /Adminhtml/Product/Edit/Tab/Options.php#L21
Odpowiedzi:
Dodaj folder układu pliku modułu [Dostawca] / [Nazwa modułu] /view/adminhtml/layout/catalog_product_options.xml
Należy również dodać do modułu xml ten wiersz, aby załadować układy po katalogu
źródło
admin.product.options
?Vendor_ModuleName::product_options.phtml
?<action method="setTemplate">
zamiast<arguments>
. To rozwiązanie działa we wszystkich przypadkach.UWAGA: bardzo ważne jest, aby używać
<action method="setTemplate">
zamiast<arguments>
.<arguments>
będzie działać tylko wtedy, gdy w bloku nie ma innego szablonu określonego w deklaracji xml. W każdym innym przypadku musisz<action method="setTemplate">
zastąpić istniejący szablon. Lepiej jest używać,<action method="setTemplate">
ponieważ zawsze działa.źródło
Tak, możesz zastąpić pliki szablonów z aplikacji / kodu niestandardowego modułu. Pamiętaj jednak, że w koncepcji dziedziczenia Magento pliki (szablony, układy, pliki statyczne) z aplikacji / projektu zastępują to samo w aplikacji / kodzie. Tak jak motyw podrzędny nadpisuje motyw nadrzędny.
Dlatego uważam, że najlepiej jest utworzyć niestandardowy motyw dla niestandardowego modułu i dodać tam wszystkie pliki phtml, xml, css, js, czcionkę i obrazy w aplikacji / projekcie.
źródło