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?!?
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.
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
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.
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.