Listing anzeige verändern

Hallo Ich habe mir ein kleines Plugin geschrieben. Mein Plugin verändert diese Dateien listing -> box_article.tpl listing -> product-box -> box-basic.tpl listing -> product-box -> box-emotion.tpl listing -> product-box -> box-minimal.tpl listing -> product-box -> product-price.tpl listing -> product-box -> product-price-unit.tpl Auf der ersten Seite wird es wunderbar angezeigt nur wenn man unter rollt und es wird automatisch die 2 Seite angezeigt wird das Standart Listing angezeigt Wenn man auf den Browser wieder auf Aktualisieren klick wird es wieder so angezeigt wie ich es haben will. Welche Datei muss ich noch verändern? das beim Automatischen Seitenwechsel die Listing von mein Plugin angezeigt wird?

Hallo, für das Infinite Scrolling musst Du noch die listing/listing_ajax.tpl anpassen. Sonnige Grüße, Phil

in der listing_ajax.tpl steht das drin {block name="frontend\_listing\_list\_inline\_ajax"} {\* Actual listing \*} {foreach $sArticles as $sArticle} {include file="frontend/listing/box\_article.tpl"} {/foreach} {/block} mein neue box_article.tpl liegt aber in engine -> Shopware -> Plugins -> Local -> Frontend -> Mattes -> Views -> listing Ich habe versucht es so zu Ändern {include file="engine/Shopeare/Plugins/Local/frontend/Mattes/Views/listing/box\_article.tpl"} Leider kein Erfolg Wie muss ich es ändern?

Hallo, Du musst die listing/listing_ajax.tpl ebenfalls bei Dir im Theme anlegen, damit auch wirklich die box_article.tpl aus Deinem Theme eingebunden wird. Der {include} Befehl aus der Eltern-Datei sucht ja in der eigenen Vererbungsebene und bindet daher die ursprüngliche box_article.tpl ein. Damit diese aus Deinem Theme eingebunden wird musst Du diese selbst einbinden. Der Pfad sieht dann genau so aus, mit dem Unterschied, dass Du Dich auf der Vererbungsebene Deines eigenen Themes befindest. Sonnige Grüße, Phil

Ich habe aber kein neuen Theme erstellt sondern ich habe ein Plugin geschrieben. Mein Plugin überprüft ob der User eingelogt oder oder nicht. Wenn der User nicht eingelogt ist soll er mir das Listing verändern.

Dein event wird nicht geworfen. Siehe programmierung-f103/plugin-infinite-scrolling-t27569.html Viele Grüße

if ( Shopware()-\>Modules()-\>Admin()-\>sCheckUser() ) { }else{ // Kunde nicht eingeloggt $view-\>extendsTemplate('listing/box\_article.tpl'); $view-\>extendsTemplate('listing/listing.tpl'); $view-\>extendsTemplate('listing/listing\_ajax.tpl'); } So sieht mein Bootstrap.php aus und in Verzeichnis view ->Listing ist die Datei listing_ajax.tpl drin aber die wird glaub ich nicht angenommen.

Danke Aquatuning Aber der Beitrag hilf mir nicht weiter oder ich verstehe es nicht

Dann wäre das hier eine gute, erste Anlaufstelle: sonstiges-f58/faq-haufig-gestellte-fragen-t24425.html#p109837 Viele Grüße

Hallo Ich habe mir das alles mal genauer angeschaut. Ich denke das mein Datei Bootstrap.php falsch für Shopware 5 Bei Shopware 4 geht es ja ohne Probleme anbei mein Bootstrap.php code [code]<?php header(„Content-Type: text/html; charset=utf-8“);
class Shopware_Plugins_Frontend_Mattes_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{

// Installation in Shopware Backend
public function install()
{

    $this->subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Listing', 'MattesListing' ); return true; } // Funktion für Listing anzeige public function MattesListing(Enlight\_Event\_EventArgs $arguments) { $controller = $arguments-\>getSubject(); $view = $controller-\>View(); $sArticle = $view-\>getAssign('sArticle'); $view-\>addTemplateDir($this-\>Path() . 'Views/'); if ( Shopware()-\>Modules()-\>Admin()-\>sCheckUser() ) { // Kunde eingeloggt }else{ // Kunde nicht eingeloggt $view-\>extendsTemplate('listing/product-box/box-basic.tpl'); $view-\>extendsTemplate('listing/product-box/box-emotion.tpl'); $view-\>extendsTemplate('listing/product-box/box-minimal.tpl'); $view-\>extendsTemplate('listing/product-box/product-price.tpl'); $view-\>extendsTemplate('listing/product-box/product-price-unit.tpl'); } } // ende } [/code] Ich habe im Forum gelesen das man das extendsTemplate bei Shopware 5 nicht verwenden soll. wie binde ich diese Zeile richtig ein? $view-\>extendsTemplate('listing/product-box/box-basic.tpl');

https://devdocs.shopware.com/developers-guide/ Das wird hier beschrieben :wink: Grundsätzlich bindest du die Templates nur noch ein und Shopware kümmert sich um den Rest. //Add our plugin template directory $view-\>addTemplateDir(\_\_DIR\_\_ . 'Views/');

Hallo Ich habe meine Datei so geändert aber passiert leider nix [code]<?php header(„Content-Type: text/html; charset=utf-8“);
class Shopware_Plugins_Frontend_Mattes_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{

// Installation in Shopware Backend
public function install()
{

    $this->subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatchSecure\_Frontend\_Listing', 'MattesListing' ); return true; } //$this-\>subscribeEvent('Enlight\_Controller\_Action\_PostDispatchSecure\_Frontend\_Detail', 'onSecureDetailPostDispatch'); // Funktion für Listing anzeige public function MattesListing(Enlight\_Event\_EventArgs $arguments) { $controller = $arguments-\>getSubject(); $controller-\>View()-\>addTemplateDir($this-\>Path() . 'Views/'); // $view = $controller-\>View(); // $sArticle = $view-\>getAssign('sArticle'); // $view-\>addTemplateDir($this-\>Path() . 'Views/'); if ( Shopware()-\>Modules()-\>Admin()-\>sCheckUser() ) { // Kunde eingeloggt }else{ // Kunde nicht eingeloggt if (Shopware()-\>Shop()-\>getTemplate()-\>getVersion() \>= 3) { $controller-\>View()-\>addTemplateDir($this-\>Path() . 'Views/listing/'); } else { $controller-\>view()-\>extendsBlock('listing/product-box/box-basic.tpl'); $controller-\>view()-\>extendsBlock('listing/product-box/box-emotion.tpl'); $controller-\>view()-\>extendsBlock('listing/product-box/box-minimal.tpl'); $controller-\>view()-\>extendsBlock('listing/product-box/product-price.tpl'); $controller-\>view()-\>extendsBlock('listing/product-box/product-price-unit.tpl'); // $controller-\>View()-\>mediaSelection = $this-\>Config()-\>mediaselection; } } } // ende }[/code] Wenn ich das Richtig verstanden habe muss man bei SW5 diesen Code benutzen $controller-\>View()-\>addTemplateDir($this-\>Path() . 'Views/listing/'); Ich habe die Dateinamen so wie bei Original in diesen Verzeichnis Leider passiert da nix Ich habe es auch so probiert $controller-\>View()-\>addTemplateDir($this-\>Path() . 'Views/listing/product-box/'); weil in diesen Verzeichnis die Dateien geändert sind Leider auch kein erfollt. Was habe ich übersehen?

Die entscheidenden Hinweise aus dem anderen Beitrag, den du hättest lesen sollen: [quote] Also mein Tipp: - prüfe, ob dein event überhaupt im widget ausgeführt wird [/quote] [quote] Du suchst Enlight_Controller_Action_PostDispatchSecure_Widgets [/quote] Viele Grüße

[quote]Also mein Tipp: - prüfe, ob dein event überhaupt im widget ausgeführt wird[/quote] Wo kann man das Prüfen? wie macht man das? [quote]Du suchst Enlight_Controller_Action_PostDispatchSecure_Widgets[/quote] Wo kann ich nach Enlight_Controller_Action_PostDispatchSecure_Widgets suchen?

Hallo Ich komme leider nicht weiter oder ich versteh das nicht richtig so wie ich sehe müsste mein Bootstrap richtig sein. Ich komm leider nicht drauf was ich da Falsch hab. Wie muss ich mein Bootstrap bei Shopware 5 richtig aufsetzen? Kann mir jemand ein Beispiel geben?

Hallo, ich klinke mich hier mal ein, habe ein ähnliches Problem mit dem infinite scrolling. Ich habe mir ein eigenes Kategorielisting erstellt und dort Blöcke ausgeblendet bzw. überschrieben. Das ganze funktioniert soweit auch sehr gut nur sobald per infinite scrolling eine neue Seite nachgeladen wird sind meine Anpassungen weg und er lädt das alte Template wieder. Hat mir da jemand von euch einen Tipp, wie ich das in den Griff kriege? Danke und Gruß

Guckt euch mal bitte den request an, der gesendet wird, wenn Artikel im Listing via infinite scroll nachgeladen werden. Siehe: sonstiges-f58/faq-haufig-gestellte-fragen-t24425.html#p106944 Anschließend prüft - zb simpel mit einem die(„test“) - ob euer event bei diesem request überhaupt ausgeführt wird. Dann werdet ihr sehr schnell feststellen, dass das richtige event für das infinite scroll Enlight_Controller_Action_PostDispatchSecure_Widgets ist. Viele Grüße

Hallo, Aquatuning hat recht. Wenn ihr die listing_ajax.tpl erweitern wollt ist das richtige Event: Enlight_Controller_Action_PostDispatchSecure_Widgets_Listing Sonnige Grüße, Phil

Danke Danke Danke Jetzt hab ich es. Wo kann man nachschauen welche Event es gibt? Weil ich wäre die auf das Widgets_Listing gekommen

Ich muss schon sage, das Shopware 5 im großen und ganzen unfertig wirkt. Es fehlen einige Elementare Dinge, wenn man sich schon selbst, Plugins Programmieren muss, damit man eine “Listen” Ansicht erhält. In Shopware 4 konnte man noch wählen…