Hab leider nichts dazu in der Doku gefunden, hab nur ein Code fuer Shopware 5 gefunden:
$event->getSubject()->View()->assign('mytestvar', '3456');
aber das funzt in Shopware 6 nicht.
Kann mich jemand auf den richtigen Weg weisen?
Danke
Hab leider nichts dazu in der Doku gefunden, hab nur ein Code fuer Shopware 5 gefunden:
$event->getSubject()->View()->assign('mytestvar', '3456');
aber das funzt in Shopware 6 nicht.
Kann mich jemand auf den richtigen Weg weisen?
Danke
Wäre das nicht folgendes: ?
$event->setParameter('foo', 'bar');
Denke nicht
public function onProductsLoaded(EntityLoadedEvent $event)
{
$event->setParameter('foo', 'bar');
}
Das passiert wenn ich die Zeile reintue.
Dieses Tutorial deckt alles ab, was du brauchst
Event-Listener registrieren
Daten aus der DB holen
Ans Frontend durchgeben
Im Frontend-Template ausgeben
https://docs.shopware.com/en/shopware-platform-dev-en/how-to/add-data-to-a-storefront-page
Kann ich leider nicht bestätigen!
Wenn ich das Tutorial-Plugin installiere, geht auf der Frontend-Seite gar nichts mehr - bzw. eine Fehlermeldung wird ausgegeben. Also das original Shopware Tutorials nicht funktionieren finde ich sehr frustrierend und raubt allen interessierten wertvolle Lebenszeit.
Genau, bei mir funzt der Beispiel auch nicht.
Habe es versucht auch selbst zu implementieren, aber Shopware stuertzt ab an dieser Zeile:
public function onProductsLoaded(EntityLoadedEvent $event)
{
$event->getPagelet()->addExtension('mytestvar2', '8745');
}
Genauer schon hier:
$event->getPagelet();
Habe versucht ein var_export davon zu machen aber stuertzt ab. Gute Nachticht ist das zumindest die Variable $event existiert :D.
Genau, bei mir funzt der Beispiel auch nicht.
Ja, das stimmt, das Beispiel ist noch für die EA Version von Shopware 6 geschrieben. Da haben sich ein paar Dinge beim Abrufen von Daten aus der Datenbank geändert. Das zuweisen von Variablen in Frontend hat sich jedoch nicht verändert. (Hättet ihr das Plugin nicht 1:1 kopiert und nur die Stelle zum Zuweisen von Variablen benutzt, hätte es keinen Crash gegeben )
Habe es versucht auch selbst zu implementieren, aber Shopware stuertzt ab an dieser Zeile:
public function onProductsLoaded(EntityLoadedEvent $event)
{
$event->getPagelet()->addExtension(‚mytestvar2‘, ‚8745‘);
}
Ich denke mal, dass du kein Pagelet-Event benutzt. Folglich wird der getPagelet-Aufruf fehlschlagen.
Ich habe das Plugin mal gefixed. Pull-Request ist erstellt. Ihr könnt es euch hier vorab herunterladen:
GitHub - simkli/swag-docs-extend-page at sw61compatibility
VG
Genau, bei mir funzt der Beispiel auch nicht.
Habe es versucht auch selbst zu implementieren, aber Shopware stuertzt ab an dieser Zeile:
public function onProductsLoaded(EntityLoadedEvent $event)
{
$event->getPagelet()->addExtension(‚mytestvar2‘, ‚8745‘);
}Genauer schon hier:
$event->getPagelet();
Habe versucht ein var_export davon zu machen aber stuertzt ab. Gute Nachticht ist das zumindest die Variable $event existiert .
Du solltest erst einmal die error aktivieren, damit du auch eine entsprchende Error Meldung bekommst.
->addExtension nimmt zwei Parameter entgegen:
string $name, ?Struct $extension
Dein zweiter Parameter ist einfach nur ein String, kein Struct - Deshalb wird es nicht funktionieren nehme ich einmal an.
Ich habe das Plugin mal gefixed. Pull-Request ist erstellt. Ihr könnt es euch hier vorab herunterladen:
https://github.com/simkli/swag-docs-extend-page/tree/sw61compatibility
Vielen Dank, ja das funzt.
Ich denke mal, dass du kein Pagelet-Event benutzt. Folglich wird der getPagelet-Aufruf fehlschlagen.
Das ist richtig. Ich benutze hier kein Pagelet, sondern
public static function getSubscribedEvents()
{
return [
ProductEvents::PRODUCT_LOADED_EVENT => 'onProductsLoaded',
];
}
Wie kann ich die Variable in diesem Fall setzen?
Eigentlich suche ich ein event der beim Darstellen der Top-Navigation getriggert wird, aber hab keine Ahnung wie ich rausfinden kann welche Events ich genutzen kann, deswegen hab ich diese Frage gestellt: https://forum.shopware.com/discussion/66324/gibt-es-eine-liste-von-events-fuer-shopify-6
@BlueZero: In deinem Fall kannst du es direct über die ProductEntity machen:
@ShapeAndShift: anstelle von String kannst du die ArrayEntity nehmen. Siehe Beispiel.
public function onProductsLoaded(EntityLoadedEvent $event): void
{
/** @var ProductEntity $product */
foreach ($event->getEntities() as $product) {
$product->addExtension('customArray', new ArrayEntity('custom' => 123));
}
}