Magento 2 HTML-Datei und HTML-Datei im benutzerdefinierten Vorlagenprozess?

10

Wie ich aus der Magento 2-Dokumentation über das Ändern von Minicart-Inhalten nachgesehen habe.

Es gibt zwei Möglichkeiten:

  1. Auf dieser Seite: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html

Wir ändern es, indem wir minicart.phml anpassen und platzieren in: app/design/frontend/OrangeCo/orange/Magento_Checkout/templates/cart/minicart.phtml

  1. Aber auf der anderen Seite: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html

Wir passen es in content.html an und platzieren es in:

app/design/frontend/OrangeCo/orange/Magento_Checkout/web/template/minicart/content.html

Diese Fragen sind also:

Wie entscheidet Magento 2, wann HTML- und HTML-Dateien verwendet werden sollen?

Bezieht sich dies auf den 3-Modus in Magento 2: Standard, Entwickler und Produktion?

thienphucvx
quelle

Antworten:

10

Sowohl .phtmlals auch .htmlDateien sind Teil der Ansichtsebene in Magento 2, da phtmlDateien mit Block arbeiten, der laut Magento Docs eine spezielle PHP-Klasse ist, die normalerweise (aber nicht immer) eng mit einer Vorlage verbunden ist. Blöcke arbeiten normalerweise mit der Modellebene (Core Magento) zusammen, um Daten zu bearbeiten und Ergebnisse / Antworten auf Vorlagen (.phtml- oder .html-Dateien) zurückzugeben. Diese Dateien werden von Layoutdateien beim Einrichten von Vorlagen für bestimmte Blöcke usw. verwendet.

htmlDateien am anderen Ende werden ausschließlich zum Anzeigen von Inhalten im Frontend verwendet, und Javascript-Bibliotheken wie Knockout JS verwenden sie entsprechend. Diese Dateien werden auch zum Laden von AJAX-Inhalten verwendet.

Devtype
quelle
6

HTML-Dateien als Backend-PHP-Vorlagen verwendet. HTML-Dateien, die als Frontend-Javascript-Vorlagen verwendet werden.

Dies hängt nicht mit dem Magento-Modus zusammen.

KAndy
quelle
Ich glaube nicht. Haben Sie jede Modul-HTML-Datei im Frontend / in den Vorlagen überprüft? Werden all diese Dateien nur für Backend-PHP-Vorlagen verwendet? Warum hat der Ansichtsordner jedes Moduls zwei Ordner: Frontend und Backend?
Thienphucvx
Wenn ich Frontend / Backend sage, meine ich auf Server / Client-Seite. Der Ordner adminhtml ist Admin Panel und Frontend ist Store Front Teil (kann Frontend / Backend Teil haben)
KAndy
Ich glaube, ich verstehe, dass HTML von Javascript gerendert wird. Aber mir ist nicht klar, warum sie es benutzen. Zum Beispiel passen wir den Inhalt von Minicart auf content.html an . Aber zum Anpassen des Formulars in der Überprüfung bearbeiten wir es auf form.phtml ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/… )
thienphucvx
m2 hat viele Legacy-Codes (m1). Nicht alle Teile wurden überarbeitet, aber der Prozess zum Verschieben des Renderns von Inhalten auf der Clientseite wird fortgesetzt. und Sie können clientseitiges Rendering verwenden
KAndy
Es bedeutet also, dass es in Zukunft nur noch eine HTML-Datei für die Clientseite gibt.
Thienphucvx
2

@thienphucvx Die Dokumentation unter http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html ist falsch.

Die richtige Antwort finden Sie unter: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html .

Wenn Sie sich die Datei ansehen, auf die im ersten Link verwiesen wird vendor/magento/module-checkout/view/frontend/templates/cart/minicart.phtml, werden Sie feststellen, dass Sie die Platzierung von Elementen im Minicart mit der Schaltfläche zum Auschecken nicht ändern können.

Dies liegt daran, dass dieser Teil des Minicarts hier ist: vendor/magento/module-checkout/view/frontend/web/template/minicart/content.html

Wenn ich Inkonsistenzen in den Dokumenten finde, wie Sie hier haben, öffne ich eine Pull-Anfrage in GitHub. Es gibt zu viele Dokumente, als dass das Dokumentationsteam sie jederzeit zu 100% korrigieren könnte. Öffnen Sie eine PR, sie überprüfen Ihr Update. Wenn sie sich nicht sicher sind, wenden sie sich an eine interne Behörde zu diesem Thema und melden sich mit dem Feedback, ob Sie korrekt sind oder nicht. Sie sind freundlich. Tue es!

ryanF
quelle