Ich erstelle ein Modul und möchte die Vorlage überschreiben app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml
.
Ist dies in einem Modul möglich (kein Thema)
Leider scheint es nicht sehr einfach zu sein, den Modulnamen über Layout-XML zu ändern, da dies in https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/Block fest codiert ist /Adminhtml/Product/Edit/Tab/Options.php#L21
Antworten:
Fügen Sie den Layoutordner Ihrer Moduldatei [Vendor] / [ModuleName] /view/adminhtml/layout/catalog_product_options.xml hinzu
Außerdem muss diese Zeile zum Modul xml hinzugefügt werden, um die Layouts nach dem Katalog zu laden
quelle
admin.product.options
?Vendor_ModuleName::product_options.phtml
?<action method="setTemplate">
statt zu verwenden<arguments>
. Diese Lösung funktioniert in allen Fällen.HINWEIS: Es ist sehr wichtig,
<action method="setTemplate">
anstelle von zu verwenden<arguments>
.<arguments>
funktioniert nur, wenn für den Block keine andere Vorlage in der XML-Deklaration angegeben ist. In jedem anderen Fall müssen Sie<action method="setTemplate">
die vorhandene Vorlage überschreiben. Es ist besser zu verwenden,<action method="setTemplate">
weil es immer funktioniert.quelle
Ja, Sie können Vorlagendateien aus der App / dem Code Ihres benutzerdefinierten Moduls überschreiben. Beachten Sie jedoch, dass im Vererbungskonzept von Magento Dateien (Vorlagen, Layouts, statische Dateien) aus App / Design dasselbe in App / Code überschreiben. So wie das untergeordnete Thema das übergeordnete Thema überschreibt.
Daher halte ich es für das Beste, ein benutzerdefiniertes Design für Ihr benutzerdefiniertes Modul zu erstellen und alle Ihre HTML-, XML-, CSS-, JS-, Schrift- und Bilddateien dort in App / Design hinzuzufügen.
quelle