# Smarty Funktion in Shopseiten-Template funktioniert nicht

**URL:** <https://forum.shopware.com/t/smarty-funktion-in-shopseiten-template-funktioniert-nicht/49065>\
**Category:** Programmierung\
**Created:** [25. Oktober 2017 um 12:31 UTC](https://forum.shopware.com/t/smarty-funktion-in-shopseiten-template-funktioniert-nicht/49065 "2017-10-25T12:31:59Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![der-lizzard](https://avatars.discourse-cdn.com/v4/letter/d/bb73d2/32.png) [@der-lizzard](https://forum.shopware.com/u/der-lizzard)\
**Post date:** [25. Oktober 2017 um 12:31 UTC](https://forum.shopware.com/t/smarty-funktion-in-shopseiten-template-funktioniert-nicht/49065/1 "2017-10-25T12:31:59Z")

</div>

Hallo zusammen,

meine eigene Smarty-Funktion (function.partnersuche.php) funktioniert nicht wie ich mir das vorstelle.  
Die Funktion wird in einer Template-Datei mittel {partnersuche} aufgerufen, diese Template-Datei verwende ich für eine Shopseite.

Die Funktion macht was sie soll, wenn ich die Datei unter engine/Library/Smarty/plugins ablege.  
Lege ich die Datei (function.partnersuche.php) im \_private-Verzeichnis meines Templates ab, erhalte ich folgende Ausgabe bzw. Fehlermeldung:

```
Ups! Ein Fehler ist aufgetreten!

Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. 

Syntax Error in template "/www/htdocs/xxxxxx/themes/Frontend/MeinTheme/frontend/index/partnersuche.tpl" on line 1 "{partnersuche}" unknown tag "partnersuche" in engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 657

Stack trace:

#0 engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(443): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "pa...', 1)
#1 engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(2393): Smarty_Internal_TemplateCompilerBase->compileTag('partnersuche', Array)
#2 engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(3101): Smarty_Internal_Templateparser->yy_r37()
#3 engine/Library/Smarty/sysplugins/smarty_internal_templateparser.php(3201): Smarty_Internal_Templateparser->yy_reduce(37)
#4 engine/Library/Smarty/sysplugins/smarty_internal_smartytemplatecompiler.php(105): Smarty_Internal_Templateparser->doParse(10, '\n')
#5 engine/Library/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(192): Smarty_Internal_SmartyTemplateCompiler->doCompile('{partnersuche}\n')
#6 engine/Library/Smarty/sysplugins/smarty_internal_template.php(187): Smarty_Internal_TemplateCompilerBase->compileTemplate(Object(Enlight_Template_Default))
#7 engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php(155): Smarty_Internal_Template->compileTemplateSource()
#8 engine/Library/Enlight/View/Default.php(287): Smarty_Internal_TemplateBase->fetch('frontend/index/...', NULL)
#9 engine/Shopware/Controllers/Frontend/Custom.php(71): Enlight_View_Default->fetch('frontend/index/...')
#10 engine/Library/Enlight/Controller/Action.php(159): Shopware_Controllers_Frontend_Custom->indexAction()
#11 engine/Library/Enlight/Controller/Dispatcher/Default.php(530): Enlight_Controller_Action->dispatch('indexAction')
#12 engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#13 engine/Shopware/Kernel.php(189): Enlight_Controller_Front->dispatch()
#14 vendor/symfony/http-kernel/HttpCache/HttpCache.php(491): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#15 engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#16 vendor/symfony/http-kernel/HttpCache/HttpCache.php(448): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#17 vendor/symfony/http-kernel/HttpCache/HttpCache.php(344): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch(Object(Symfony\Component\HttpFoundation\Request), true)
#18 engine/Shopware/Components/HttpCache/AppCache.php(189): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#19 vendor/symfony/http-kernel/HttpCache/HttpCache.php(210): Shopware\Components\HttpCache\AppCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#20 engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#21 shopware.php(118): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))

```

Wenn ich die Funktion z.B. in der frontend/index.tpl aufrufe, funktioniert auch alles wie gewollt. Denke es muss also irgendwie an der Verwendung der Funktion in der Template-Datei in Verbindung mit der Shop-Seite bzw. des \_private-Verzeichnisses liegen.

Kennt jemand den Effekt oder übersehe ich einfach etwas?

Gruß vom Lizzard

---

<div class="post-metadata">

**Author:** ![der-lizzard](https://avatars.discourse-cdn.com/v4/letter/d/bb73d2/32.png) [@der-lizzard](https://forum.shopware.com/u/der-lizzard)\
**Post date:** [26. Oktober 2017 um 05:29 UTC](https://forum.shopware.com/t/smarty-funktion-in-shopseiten-template-funktioniert-nicht/49065/2 "2017-10-26T05:29:29Z")

</div>

Keiner einen Ansatz wo das Problem liegen könnte? Evtl. ein Bug? Was ich vergaß zu erwähnen: habe das ganze auch mit dem Standard-Responsive Template getestet: selber Effekt bzw. Fehler.

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [26. Oktober 2017 um 08:02 UTC](https://forum.shopware.com/t/smarty-funktion-in-shopseiten-template-funktioniert-nicht/49065/3 "2017-10-26T08:02:01Z")

</div>

Hab leider keine Idee. KOmmt mir auch wie ein Bug vor.

---

<div class="post-metadata">

**Author:** ![MrWulf](https://avatars.discourse-cdn.com/v4/letter/m/7ab992/32.png) [@MrWulf](https://forum.shopware.com/u/MrWulf)\
**Post date:** [6. August 2019 um 10:58 UTC](https://forum.shopware.com/t/smarty-funktion-in-shopseiten-template-funktioniert-nicht/49065/4 "2019-08-06T10:58:31Z")

</div>

Auch wenn es hierfür nun reichlich spät ist, ich hatte hier dasselbe Problem und antworte nur der Vollständigkeit halber falls jemand anderes dasselbe Problem haben sollte. Grundsätzlich sagt die Fehlermeldung ja aus das im aktuellen Kontext das Plugin nicht bekannt ist. Dafür spricht ja auch dass der Aufruf an einer anderen Stelle durchaus funktioniert.  
Meine Lösung war, auch bei einem Event auf “Enlight\_Controller\_Action\_PreDispatch\_Frontend\_Custom”&nbsp; das Plugin Verzeichnisses über&nbsp;Shopware()-\>Template()-\>addPluginsDir($verzeichnispfad) hinzuzufügen. Zuvor wurde dies nur bei einem Event auf&nbsp;“Enlight\_Controller\_Action\_PreDispatch\_Frontend” gemacht. Dadurch wird das Pluginverzeichnis auch im Kontext von Shopseiten bekannt und die Plugins können verwendet werden. Meinem Verständis nach sollte letzteres Event zwar den ersten Aufruf mit beinhalten da es ein gröber definiertes Event ist, allerdings scheint dies hier nicht gegriffen zu haben. Vermutlich gibt es hierfür allerdings auch einfachere Möglichkeiten.

---

<div class="post-metadata">

**Author:** ![shyim](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/shyim/32/7681_2.png) [@shyim](https://forum.shopware.com/u/shyim)\
**Post date:** [8. August 2019 um 17:53 UTC](https://forum.shopware.com/t/smarty-funktion-in-shopseiten-template-funktioniert-nicht/49065/5 "2019-08-08T17:53:24Z")

</div>

Welche Shopware Version benutzst du denn?

---

<div class="post-metadata">

**Author:** ![lutuh](https://avatars.discourse-cdn.com/v4/letter/l/6f9a4e/32.png) [@lutuh](https://forum.shopware.com/u/lutuh)\
**Post date:** [12. September 2019 um 05:13 UTC](https://forum.shopware.com/t/smarty-funktion-in-shopseiten-template-funktioniert-nicht/49065/6 "2019-09-12T05:13:11Z")

</div>

Ich kann dieses Verhalten in Shopware 5.6.1 reproduzieren.&nbsp;

> [@MrWulf schrieb:](https://forum.shopware.com/profile/26671/MrWulf "MrWulf")
> 
> Meine Lösung war, auch bei einem Event auf „Enlight\_Controller\_Action\_PreDispatch\_Frontend\_Custom“&nbsp; das Plugin Verzeichnisses über&nbsp;Shopware()-\>Template()-\>addPluginsDir($verzeichnispfad) hinzuzufügen.&nbsp;

MrWulf, hättest du evtl. Beispielcode für diesen Lösungsansatz? Habe mich an&nbsp;[https://developers.shopware.com/developers-guide/event-guide/#some-examples](https://developers.shopware.com/developers-guide/event-guide/#some-examples)&nbsp;versucht, aber bin nicht so recht vorangekommen. Bisher hat es nur geholfen, das Plugin in&nbsp;engine/Library/Smarty/plugins abzulegen. Langfristig möchte ich solche Core-Veränderungen eher vermeiden, und würde daher deinen Weg bevorzugen.
