# Eine Variable aus Plugin ins Theme weiterlaiten

**URL:** <https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934>\
**Category:** Programmierung\
**Created:** [22. Februar 2020 um 19:56 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934 "2020-02-22T19:56:51Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![BlueZero](https://avatars.discourse-cdn.com/v4/letter/b/e95f7d/32.png) [@BlueZero](https://forum.shopware.com/u/BlueZero)\
**Post date:** [22. Februar 2020 um 19:56 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934/1 "2020-02-22T19:56:51Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [22. Februar 2020 um 20:39 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934/2 "2020-02-22T20:39:00Z")

</div>

Wäre das nicht folgendes: ?&nbsp;

```
$event->setParameter('foo', 'bar');

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![BlueZero](https://avatars.discourse-cdn.com/v4/letter/b/e95f7d/32.png) [@BlueZero](https://forum.shopware.com/u/BlueZero)\
**Post date:** [22. Februar 2020 um 21:11 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934/3 "2020-02-22T21:11:20Z")

</div>

Denke nicht

```
    public function onProductsLoaded(EntityLoadedEvent $event)
    {
    	$event->setParameter('foo', 'bar');
    }

```

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/f/f5688569246c8c9c81ecc432f04dddad67600e9d.png)Das passiert wenn ich die Zeile reintue.

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [23. Februar 2020 um 11:41 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934/4 "2020-02-23T11:41:36Z")

</div>

Dieses Tutorial deckt alles ab, was du brauchst 😉

- Event-Listener registrieren

- Daten aus der DB holen&nbsp;

- Ans Frontend durchgeben

- Im Frontend-Template ausgeben

[https://docs.shopware.com/en/shopware-platform-dev-en/how-to/add-data-to-a-storefront-page](https://docs.shopware.com/en/shopware-platform-dev-en/how-to/add-data-to-a-storefront-page)

&nbsp;

---

<div class="post-metadata">

**Author:** ![canetti2](https://avatars.discourse-cdn.com/v4/letter/c/a8b319/32.png) [@canetti2](https://forum.shopware.com/u/canetti2)\
**Post date:** [23. Februar 2020 um 14:46 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934/5 "2020-02-23T14:46:55Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![BlueZero](https://avatars.discourse-cdn.com/v4/letter/b/e95f7d/32.png) [@BlueZero](https://forum.shopware.com/u/BlueZero)\
**Post date:** [23. Februar 2020 um 19:43 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934/6 "2020-02-23T19:43:19Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [23. Februar 2020 um 22:08 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934/7 "2020-02-23T22:08:46Z")

</div>

> 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 ![Sticking-out-tongue](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/sticking-out-tongue.png "Sticking-out-tongue"))

> 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](https://github.com/simkli/swag-docs-extend-page/tree/sw61compatibility)

VG

---

<div class="post-metadata">

**Author:** ![ShapeAndShift](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@ShapeAndShift](https://forum.shopware.com/u/ShapeAndShift)\
**Post date:** [24. Februar 2020 um 04:46 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934/8 "2020-02-24T04:46:35Z")

</div>

> [@BlueZero schrieb:](https://forum.shopware.com/profile/34237/BlueZero "BlueZero")
> 
> 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](https://dub1.discourse-cdn.com/flex013/resources/emoji/lol.png ":D").

Du solltest erst einmal die error aktivieren, damit du auch eine entsprchende Error Meldung bekommst.

[-\>addExtension](https://github.com/shopware/platform/blob/fb4bc791e185512bfde8cd0ea462b0cf527cf82f/src/Core/Framework/Struct/ExtendableTrait.php#L18) nimmt zwei Parameter entgegen:&nbsp;

```
string $name, ?Struct $extension

```

Dein zweiter Parameter ist einfach nur ein String, kein Struct&nbsp;- Deshalb wird es nicht funktionieren nehme ich einmal an.

---

<div class="post-metadata">

**Author:** ![BlueZero](https://avatars.discourse-cdn.com/v4/letter/b/e95f7d/32.png) [@BlueZero](https://forum.shopware.com/u/BlueZero)\
**Post date:** [24. Februar 2020 um 07:47 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934/9 "2020-02-24T07:47:30Z")

</div>

> 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](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:&nbsp;[https://forum.shopware.com/discussion/66324/gibt-es-eine-liste-von-events-fuer-shopify-6](https://forum.shopware.com/discussion/66324/gibt-es-eine-liste-von-events-fuer-shopify-6)

---

<div class="post-metadata">

**Author:** ![Adelbert](https://avatars.discourse-cdn.com/v4/letter/a/b782af/32.png) [@Adelbert](https://forum.shopware.com/u/Adelbert)\
**Post date:** [22. Januar 2021 um 14:13 UTC](https://forum.shopware.com/t/eine-variable-aus-plugin-ins-theme-weiterlaiten/64934/10 "2021-01-22T14:13:08Z")

</div>

@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));
        }
     }

```

&nbsp;
