# $event-\>getPagelet()-\>addExtension

**URL:** <https://forum.shopware.com/t/event-getpagelet-addextension/63914>\
**Category:** Programmierung\
**Created:** [10. Januar 2020 um 08:55 UTC](https://forum.shopware.com/t/event-getpagelet-addextension/63914 "2020-01-10T08:55:48Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rakowu](https://avatars.discourse-cdn.com/v4/letter/r/7993a0/32.png) [@Rakowu](https://forum.shopware.com/u/Rakowu)\
**Post date:** [10. Januar 2020 um 08:55 UTC](https://forum.shopware.com/t/event-getpagelet-addextension/63914/1 "2020-01-10T08:55:48Z")

</div>

Hallo zusammen,

aktuell versuche ich ein ganz simples Plug-in zu schreiben. Es handelt sich hierbei einfach nur um ein extra Tab welches mit Files befüllt werden soll die auf dem Server abgelegt werden.&nbsp;

Das Plug-in soll prüfen ob die Files vorhanden sind und wenn ja geladen werden. Jetzt hängt es leider bei mir an der Integrierung der Php Variable in twig.&nbsp;  
Ich habe eine Php Funktion die prüft ob die Datei existieren und gibt einen boolean zurück. Diesen wert hätte ich gerne im frontend zur verfügung. Aber aktuell meckert er bei der Extension (

```
 $event-\>getPagelet()-\>addExtension('fileDoesExist', true);

```

).&nbsp;

&nbsp;

Hier der Quellcode:

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

```
<?php declare(strict_types=1);
namespace DriverTab\Storefront\Subscriber;
use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Aggregation\CountAggregation;
use Shopware\Core\Framework\DataAbstractionLayer\Search\AggregationResult\CountResult;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;
use Shopware\Storefront\Pagelet\Footer\FooterPageletLoadedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class FooterSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        return [
            FooterPageletLoadedEvent::class => 'fileCheck' ]; } public function doSomething(){ return true; } public function fileCheck(FooterPageletLoadedEvent $event): void { $event-\>getPagelet()-\>addExtension('fileDoesExist', **true** ); 

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

&nbsp;

Fehlermeldung:  
  
 &nbsp;

Argument 2 passed to Shopware\Core\Framework\Struct\Struct::addExtension() must be an instance of Shopware\Core\Framework\Struct\Struct or null, boolean given, called in /app/custom/plugins/DriverTab/src/Storefront/Subscriber/FooterSubscriber.php on line 23

&nbsp;

Könnte mir jemand weiterhelfen?&nbsp;  
 Schöne Grüße :)
```

---

<div class="post-metadata">

**Author:** ![Rakowu](https://avatars.discourse-cdn.com/v4/letter/r/7993a0/32.png) [@Rakowu](https://forum.shopware.com/u/Rakowu)\
**Post date:** [10. Januar 2020 um 11:03 UTC](https://forum.shopware.com/t/event-getpagelet-addextension/63914/2 "2020-01-10T11:03:18Z")

</div>

Noch ne kurze Info. Wenn man  
&nbsp;

```
 $event-\>getPagelet()-\>addExtension('fileDoesExist', true); durch 

 $event-\>getPagelet()-\>addExtension('fileDoesExist', null); ersetzt. Dann funktioniert es und wird auch angezeigt mit dem wert null. Ich will aber true oder 1.
```

---

<div class="post-metadata">

**Author:** ![Rakowu](https://avatars.discourse-cdn.com/v4/letter/r/7993a0/32.png) [@Rakowu](https://forum.shopware.com/u/Rakowu)\
**Post date:** [10. Januar 2020 um 11:28 UTC](https://forum.shopware.com/t/event-getpagelet-addextension/63914/3 "2020-01-10T11:28:03Z")

</div>

Niemand? 😃

---

<div class="post-metadata">

**Author:** ![Shopwareianer](https://avatars.discourse-cdn.com/v4/letter/s/b4bc9f/32.png) [@Shopwareianer](https://forum.shopware.com/u/Shopwareianer)\
**Post date:** [10. Januar 2020 um 14:07 UTC](https://forum.shopware.com/t/event-getpagelet-addextension/63914/4 "2020-01-10T14:07:05Z")

</div>

Ja, wenn du dir den Trait anschaust erwartet er ein Struct.

[https://github.com/shopware/platform/blob/fb4bc791e185512bfde8cd0ea462b0cf527cf82f/src/Core/Framework/Struct/ExtendableTrait.php#L18](https://github.com/shopware/platform/blob/fb4bc791e185512bfde8cd0ea462b0cf527cf82f/src/Core/Framework/Struct/ExtendableTrait.php#L18)

```
    /**
     * Adds a new extension struct into the class storage.
     * The passed name is used as unique identifier and has to be stored too.
     */
    public function addExtension(string $name, ?Struct $extension): void
    {
        $this->extensions[$name] = $extension;
    }

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![Rakowu](https://avatars.discourse-cdn.com/v4/letter/r/7993a0/32.png) [@Rakowu](https://forum.shopware.com/u/Rakowu)\
**Post date:** [13. Januar 2020 um 05:51 UTC](https://forum.shopware.com/t/event-getpagelet-addextension/63914/5 "2020-01-13T05:51:42Z")

</div>

Hi, danke für deine Rückmeldung 😃 Ich teste das gleich mal

---

<div class="post-metadata">

**Author:** ![Rakowu](https://avatars.discourse-cdn.com/v4/letter/r/7993a0/32.png) [@Rakowu](https://forum.shopware.com/u/Rakowu)\
**Post date:** [13. Januar 2020 um 06:31 UTC](https://forum.shopware.com/t/event-getpagelet-addextension/63914/6 "2020-01-13T06:31:09Z")

</div>

Zur info falls jemand noch das Problem haben sollte, durch new ArrayEntity(‘id’ =\> ‘123’) konnte ich es lösen. Weiß nicht ob es der beste weg ist aber es funktioniert zumindest 🙂 Namespace muss auch angegeben werden.

&nbsp;
