AjaxListing Erweiterung vom Template

Moin moin,

ich steh grad total auf dem Schlauch und hoffe auf einen hilfreichen Tipp.
Und zwar geht es um das Shopware Jira Ticket unter der URL Shopware Issuetracker.
Ticket: SW-19844 | keine Produktboxerweiterungen mehr beim AjaxListing, auch nicht mit predispatch
Dort wird als Kommentar angemerkt, dass beim AjaxListing kein extendsTemplate mehr funktioniert und man die Templates im Predispatch hinzufügen soll. Habe mein Plugin soweit umgebaut wie im „Shopware-5-plugin-update-guide“ unter „Extending listing templates“ beschrieben und klappt auch soweit.

Jetzt meine Frage dazu bzw. der Part den ich nicht verstehe: Wie kann ich denn im Predispatch auf die View-Daten zugreifen? Ich benötige die Artikel aus dem Listing und habe ja gar keine Möglichkeit auf diese im Predispatch zuzugreifen?!?

Daniel

Du musst das pre dispatch event nur verwenden, um dein Template Verzeichnis zu registrieren, da das listing direkt via smarty->fetch() geladen wird: shopware/Listing.php at 5.3 · shopware/shopware · GitHub

Was hast du denn vor?!

Viele Grüße

@Aquatuning GmbH schrieb:

Was hast du denn vor?!

Ich möchte die Produkte mit einem Button ausstatten im listing inkl. infinite scrolling.

Naja, das “pre” wird ja aufgerufen, eher der eigentliche Controller aufgerufen wird, somit exisitiert im “preDispatch” auch noch keine Liste der Artikel, weil diese ja erst im Controller erzeugt wird, pre ist aber davor. Wenn Du also diese Liste haben möchtest, wäre wohl eher der “postDisptach” Dein Freund. Dort kannst Du Dir aus Smarty das Array zurückholen und weiter verarbeiten - da hast Du dann ja die Liste.

Wo ist dann das Problem?! Erweitere die frontend/listing/listing_ajax.tpl um deinen Button und verwende das widget listing pre dispatch event, um dein Verzeichnis bekannt zu geben. Fertig.

@sonic: das stimmt für dieses Fall nicht.

Viele Grüße

Hey sonic,

genau, aber für das „infinite scrolling“ kann man ab der 5.3.3 das Template nur noch per preDispatch zufügen.

Schön, das SW so konsistent ist…
Da ich selber da was machen wollte, bin ich auch grad wieder auf NULL:
Wenn ich nicht im Template etwas mit der Liste machen will, sondern ggf. noch weitere DB-Abfragen machen möchte, hab ich die Daten theoretisch schon im preDisptach?
Da bin ich aber froh, dass ich mein kleines neues Projekt noch nicht angefangen habe  Wink

Falls ihr die Artikel mit weiteren Daten füttern wollt, dann müsst ihr weiter oben anfangen und den list product service dekorieren. Hier geht es nur darum, wann man das Template Verzeichnis registrieren muss - und in diesem Fall im pre dispatch. Warum?! Siehe oben mein Link auf github.

Viele Grüße

1 Like

@Aquatuning GmbH schrieb:

Wo ist dann das Problem?! Erweitere die frontend/listing/listing_ajax.tpl um deinen Button und verwende das widget listing pre dispatch event, um dein Verzeichnis bekannt zu geben. Fertig.

@sonic: das stimmt für dieses Fall nicht.

Viele Grüße

Das mache ich ja bereits. Das Problem dabei ist, dass ich im PostDispach Variablen setze was aber zu spät ist und diese nicht im Template ankommen.

Siehe https://forum.shopware.com/discussion/comment/205592/#Comment_205592

Viele Grüße

@Aquatuning GmbH schrieb:

Siehe https://forum.shopware.com/discussion/comment/205592/#Comment_205592

Viele Grüße

OK. Dann werde ich mir das einmal genauer anscheun. Besten Dank schonmal!