Überschreiben von .phtml-Dateien in Magento 2


15

Ich möchte die Produktdetailseite anpassen. Daher müssen einige .phtml-Dateien an den folgenden Speicherorten überschrieben werden.

Also möchte ich wissen, wie man .phtml- Dateien in vendor\magento\module-catalog\view\frontend\templates\productoder überschreibtvendor\magento\module-theme\view

Antworten:


23

Manchmal müssen wir Änderungen an vorhandenen Vorlagen vornehmen. Anstatt Änderungen direkt an vorhandenen Vorlagendateien vorzunehmen, sollten wir sie in unserem eigenen Thema überschreiben. Nehmen wir an, wir möchten die Kategorieauflistungsseite ( list.phtml) aktualisieren . Erstellen Sie dazu folgende Verzeichnisstruktur:

app/design/frontend/Mycompany/Basic/Magento_Catalog/templates/product

Hier gehe ich davon aus, dass unser aktuelles Thema Basic ist. Kopieren Sie nun die Datei list.phtml vom folgenden Speicherort in das Produktverzeichnis:

app/vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

Jetzt können Sie alle gewünschten Änderungen an Ihrer überschriebenen Datei vornehmen.

Für Details lesen Sie bitte dieses Tutorial, es hilft Ihnen sehr.


2
Hallo, ich habe gerade die Datei list.phtml im folgenden Pfad überschrieben: \ app \ design \ frontend \ Magento \ luma \ Magento_Catalog \ templates \ product \ list.phtml. Aber es hat nicht geklappt. Kann ich wissen, wo ich falsch gemacht habe?
Vigna S

Gleiches Problem, egal wie oft ich auf "Aktualisieren" drücke, das Standardproblem wird über das benutzerdefinierte Problem geladen. Und JA, ich habe den richtigen Pfad, bevor jemand fragt, aber ich verwende Composer, um Magento zu installieren, damit die Standardeinstellungen an verschiedenen Orten sind, wenn das wichtig ist.
Dustin Poissant

Ich musste den HTML-Block-Cache leeren und dann funktionierte dies perfekt für mich! (Ich lösche den Cache wie diesen blog.gardenhouse.io/2018/05/29/… )
paul

Wie kann ich die Vorlage aus meinem Modul überschreiben?
Schwarz

8

Ich beantworte meine eigene Frage,

Ich habe herausgefunden, wie ich die .phtml-Dateien an den in meiner Frage genannten Orten überschreiben kann.

Sie müssen sie an den folgenden Speicherorten ablegen, um die ursprünglichen Dateien zu überschreiben

app\design\frontend\<VENDOR_NAME>\<THEME_NAME>\Magento_Catalog\templates\product\view

Und ich glaube, die Theorie ist dieselbe für das Überschreiben aller anderen .phtml-Dateien in Magento 2


Könnten Sie bitte kurz mehr ... Wie muss ich meine benutzerdefinierte HTML-Datei in den Themenordner isit kopieren? wie in app \ design \ frontend \ <VENDOR_NAME> \ luma \ Magento_Catalog \ Muss ich meinen Vendor-Ordner erstellen und die Kern-Phtml-Datei darin kopieren? Wenn Sie dies tun, benötigen Sie keine Vorlagen im Ansichtsordner?
Sushivam

Hallo, ich versuche, eine HTML-Datei für ein Widget zu überschreiben, und ich bin nicht sicher, ob der von mir verwendete Pfad korrekt ist. Ist der Magento_Catalog-Teil Ihres Pfads spezifisch für den Modulordner, den Sie überschreiben? Wenn ich also den Anbieter \ magento \ module-catalog-widget \ view \ frontend \ templates \ product \ widget \ content überschreibe, würde ich Magento_Catalog in Ihrer Instanz durch Magento_Catalog_Widget in meiner Instanz ersetzen? Etwas verwirrt, da es mir noch nicht klar ist.
robgt

6

Zum Überschreiben von HTML-, Layout- und Webdateien, um ein benutzerdefiniertes Thema zu erstellen

1) So überschreiben Sie die Vorlagendatei:

Hersteller / Magento / Modul-Katalog / Ansicht / Frontend / Vorlagen / Produkt / Liste.phtml

Folge diesem Pfad

app / design / frontend / Vendor / theme / Magento_Catalog / templates / product / list.phtml

2) So überschreiben Sie die Layoutdatei:

vendor / magento / module-catalog / view / frontend / layout / catalog_product_view.xml

Folge diesem Pfad

app / design / frontend / Vendor / theme / Magento_Catalog / layout / catalog_product_view.xml


Wie kann ich andere Moduldateien wie Observer, Controller usw. überschreiben / anpassen?
Tahir Yasin

6

Zum Überschreiben von HTML- und Layoutdateien von

vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

in

app/Mycompany/OverideCatalog/view/frontend/templates/product/list.phtml

Layout:

vendor/magento/module-catalog/view/frontend/layout/catalog_category_view.xml

in

app/Mycompany/OverideCatalog/view/frontend/layout/catalog_category_view.xml

<block class="Magento\Catalog\Block\Product\ListProduct" name="category.products.list" as="product_list" template="Mycompnay_OverideCatalog::product/list.phtml">

3

Vorlagen (phtml) nach benutzerdefiniertem Thema überschreiben

Wenn Sie vendor\magento\module-catalog\view\frontend\templates\product\some.phtmlzuerst überschreiben möchten, müssen Sie ein benutzerdefiniertes Design erstellen. Informationen zum Erstellen eines benutzerdefinierten Designs finden Sie unter diesem Link.

Danach erstellen Sie eine HTML-Datei in Ihrem benutzerdefinierten Design, um die Standarddatei zu überschreiben

 app/design/frontend/vendor-name/theme-name/Magento_Catalog/templates/product/some.phtml

das ist es endlich den Cache von Magento sowie Browser zu löschen, dann überprüfen Sie Ihre Seite, neue HTML-Datei nur wiedergegeben.

Auf die gleiche Weise können Sie alle Vorlagen überschreiben.

Viel Glück


Danke, ich habe es gerade herausgefunden und den Befund in meinen eigenen Fragen beantwortet. Ihre Antwort ist meinen Befunden sehr ähnlich.
Nuwaus

2

Ordner öffnen: /vendor/magento/theme-frontend-luma/und kopieren Sie die Modulvorlagen und Layoutdateien aus dem Ansichtsordner.

Dann erstelle Ordner: /app/design/frontend/spacename/Theme/

Erstellen Sie dann einen Modulordner und erstellen Sie dann Vorlagen und Layoutordner.

Fügen Sie die Vorlagen und Layoutdateien aus dem Modulansicht-Ordner ein.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.