# Custom Smarty Modifier für Plugins verfügbar machen

**URL:** <https://forum.shopware.com/t/custom-smarty-modifier-fur-plugins-verfugbar-machen/66906>\
**Category:** Programmierung\
**Created:** [13. Mai 2020 um 08:38 UTC](https://forum.shopware.com/t/custom-smarty-modifier-fur-plugins-verfugbar-machen/66906 "2020-05-13T08:38:57Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![FFWDcc](https://avatars.discourse-cdn.com/v4/letter/f/4bbf92/32.png) [@FFWDcc](https://forum.shopware.com/u/FFWDcc)\
**Post date:** [13. Mai 2020 um 08:38 UTC](https://forum.shopware.com/t/custom-smarty-modifier-fur-plugins-verfugbar-machen/66906/1 "2020-05-13T08:38:57Z")

</div>

Hallo Zusammen,

ich sitze gerade an einem Projekt dei dem ich eine Bildausgabe im Frontend durch Freitextfelder benötige. Durch einige Suchen bin ich auf div. Lösungen gekommen.

pluginname-\>\_private-\>smarty-\>modifier.mediaurl.php

```
Models()->getRepository('Shopware\Models\Media\Media')->findOneBy(['id' => $id]);
        if ($media) {
            $path = $media->getPath();

            $mediaUrl = Shopware()->Container()->get('shopware_media.media_service')->getUrl($path);

            return $mediaUrl;
        }
    }
}

```

Dadurch die Entwicklung innerhalb eines Plugins und nicht in einem Theme erfolgt, wird der Modifier leider nicht direkt erkannt. Also habe ich weiter gesucht und eine Möglichkeit der Registrierung in den Docs gefunden. mainplugin.php:

```
public function build(ContainerBuilder $container)
    {
        parent::build($container);
        $container->addCompilerPass(new AddTemplatePluginDirCompilerPass());
    }

```

Diese zeigt auf Plugin-\>Components-\>CompilerPass-\>AddTemplatePluginDirCompilerPass.php:

```
getDefinition('template');
        $template->addMethodCall('addPluginsDir', ['pluginname/_private/smarty']);
    }
}

```

Leider kann ich in Smarty weiterhin nicht auf den modifier {$sCategoryContent.attr|mediaurl} zugreifen. Wie kann ich Shopware nun diesen Modifier korrekt&nbsp;beibringen?

---

<div class="post-metadata">

**Author:** ![Lukaschel](https://avatars.discourse-cdn.com/v4/letter/l/e56c9b/32.png) [@Lukaschel](https://forum.shopware.com/u/Lukaschel)\
**Post date:** [13. Mai 2020 um 17:51 UTC](https://forum.shopware.com/t/custom-smarty-modifier-fur-plugins-verfugbar-machen/66906/2 "2020-05-13T17:51:02Z")

</div>

Hallo,

wo soll denn das Bild genau ausgegeben werden?

Im Artikel?

Wenn du sowieso ein Plugin gebaut hast würde ich eher an ein dementsprechendes Event hängen und das Bild dort an das Template übergeben.

Grüße Lukaschel

---

<div class="post-metadata">

**Author:** ![FFWDcc](https://avatars.discourse-cdn.com/v4/letter/f/4bbf92/32.png) [@FFWDcc](https://forum.shopware.com/u/FFWDcc)\
**Post date:** [14. Mai 2020 um 06:34 UTC](https://forum.shopware.com/t/custom-smarty-modifier-fur-plugins-verfugbar-machen/66906/3 "2020-05-14T06:34:55Z")

</div>

Das Bild soll im Kategoriemenü über ein Freitextfeld definiert werden und dann im Frontend (z.B: Listing) ausgegeben werden. Da die entsprechenden Freitextfelder aber nur eine ID und keinen Pfad ausgeben muss ich eine entsprechende Interpretation erreichen. In einigen Beiträgen stand, dass dies am besten über einen SmartyModifier zu erreichen ist.&nbsp;

[https://forum.shopware.com/discussion/comment/199709/#Comment\_199709](https://forum.shopware.com/discussion/comment/199709/#Comment_199709)

Die entsprechende Einbindung soll angeblich so funktionieren:

[https://developers.shopware.com/designers-guide/smarty/#register-custom-smarty-plugins-in-a-shopware-plugin](https://developers.shopware.com/designers-guide/smarty/#register-custom-smarty-plugins-in-a-shopware-plugin)&nbsp;

Bei deiner Idee&nbsp;müsste es ein Frontend Event sein und eine Methode die die Funktion des&nbsp;SmartyModifier mit einer Datenbankabfrage kombiniert und alles in eine neues Attribut bereitstellt oder?
