Ich möchte meinen benutzerdefinierten Block auf der Listenseite [Magento-2] hinzufügen, jedoch ohne Änderungen an list.phtml
oder einer.phtml
Datei. Gibt es eine Möglichkeit, eine xml
Datei zu verwenden?
Jede Hilfe wird geschätzt.
magento2
product-list
Keyur Shah
quelle
quelle
Antworten:
Sie können dies tun, wenn Sie ein neues Modul erstellen, um diesen Block zu überschreiben:
vendor\magento\module-catalog\Block\Product\ListProduct.php
diesen Block außer Kraft zu setzen, müssen Sie erstellen
di.xml
aufapp\code\Vendor\Module_Name\etc
di.xml
Inhalt:Erstellen Sie einen neuen Dateinamen
ListProduct.php
unterapp\code\Vendor\Module_Name\Block\Product
ListProduct.php
Inhalt:Sie können den Block
Magento\Framework\View\Element\Template
in Ihren Block änderntest.phtml
Datei erstellen unterapp\code\Vendor\Module_Name\view\frontend\templates
quelle
di.xml
obigen Methode überschrieben . Wie kann ich nun meinen benutzerdefinierten Attributwert auf der Listenseite anzeigen?Derzeit können Sie dies nicht tun, da die gesamte Logik der Produktausgabe in der
list.phtml
Vorlage fest codiert ist .quelle
Hier ist meine Sicht auf die Lösung - aber Sie müssen die
list.phtml
Vorlage ändern :catalog_category_view.xml
In
custom-block.phtml
können Sie das Produkt wie folgt erhalten:Sie müssen die
list.phtml
Vorlage jedoch überschreiben ... Fügen Sie dies einfach dort hinzu, wo Ihr benutzerdefinierter Block angezeigt werden soll:Wenn Sie wirklich vermeiden möchten, die
list.phtml
Vorlage zu ändern , können Sie möglicherweise etwas Ähnliches tun, jedoch in einer anderen Vorlage.quelle