# Smarty CMS Action Plugin

**URL:** <https://forum.shopware.com/t/smarty-cms-action-plugin/25531>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [10. März 2015 um 16:26 UTC](https://forum.shopware.com/t/smarty-cms-action-plugin/25531 "2015-03-10T16:26:10Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![japanwelt](https://avatars.discourse-cdn.com/v4/letter/j/898d66/32.png) [@japanwelt](https://forum.shopware.com/u/japanwelt)\
**Post date:** [10. März 2015 um 16:26 UTC](https://forum.shopware.com/t/smarty-cms-action-plugin/25531/1 "2015-03-10T16:26:10Z")

</div>

Hallo liebe Shopware Programmierer, Hier mal ein Exote, wir brauchen “dynamische” Daten in einer Shopseite, also beispielsweise eine dynamische Generierung von Eckdaten in den ABGs, abhängig vom Datenbestand des Shops. Dies würde aktuell allein schon daran scheitern, dass man nur statisches HTML benutzen kann. Ein möglicher (und mMn eleganter) Workaround dazu wäre: 1. Die Shopseiten Smarty-Fähig zu machen 2. Das “Action Plugin” von Shopware benutzen, und sich die Daten aus einem Widget laden Punkt 1. lässt sich effektiv mit einer einzigen Zeile Quelltext bewerkstelligen (abgesehen von dem Modul drumherum): ` //... $smartified = $subject-\>View()-\>fetch('string:' . $staticPage['html']); $subject-\>View()-\>sContent = $smartified; //... ` …als Ersatz für Shopware\_Controllers\_Frontend\_Custom::indexAction Dieser Fix funktioniert auch ganz gut, mann auf die Smartyplugins von Shopware wunderbar zugreifen, Custom Templates einbinden usw. usf. ABER: Beim Versuch via. {action module=widgets…} zu benutzen, wird die Seite einfach weiß, ohne Fehler. Eine etwas tiefere Tour mit Debugger hat mich dann auf eine mögliche Fehler Quelle geführt in Dispatcher/Default.php um Zeile 540 ` if (empty($disableOb)) { $content = ob\_get\_clean(); $response-\>appendBody($content); } ` Ich gehe davon aus, dass View()-\>fetch(‘string:…’) da mit in den Buffer greift, dieser jedoch vorher schon geleert wird. Eine (eher dumme) Idee war es bisher, den Buffer kurzzeitig vor dem View()-\>fetch() zwischen zu speichern und wieder via ob\_start() und echo $bufferContent wieder zu setzen, die Seite blieb aber hemmungslos weiß wie vorher… Jemand Ideen wie man hier vorran kommt? lg japanwelt

---

<div class="post-metadata">

**Author:** ![t2oh4e](https://avatars.discourse-cdn.com/v4/letter/t/a5b964/32.png) [@t2oh4e](https://forum.shopware.com/u/t2oh4e)\
**Post date:** [10. März 2015 um 16:31 UTC](https://forum.shopware.com/t/smarty-cms-action-plugin/25531/2 "2015-03-10T16:31:21Z")

</div>

Ohne mich wirklich mit dem Thema beschäftigt zu haben: Vielleicht ist dieser PR und die dazugehörige Diskussion interessant für dich: [https://github.com/shopware/shopware/pull/226](https://github.com/shopware/shopware/pull/226)

---

<div class="post-metadata">

**Author:** ![japanwelt](https://avatars.discourse-cdn.com/v4/letter/j/898d66/32.png) [@japanwelt](https://forum.shopware.com/u/japanwelt)\
**Post date:** [11. März 2015 um 13:05 UTC](https://forum.shopware.com/t/smarty-cms-action-plugin/25531/3 "2015-03-11T13:05:01Z")

</div>

Hallo, vielen Dank für den Hinweis. Ein Kollege dort hat den entscheidenen Hinweis gegeben. Die Lösung ist: kein Modul verwenden, sondern die „frontend/custom/index.tpl“ (je nach gewähltem Template natürlich umbauen, und zwar wie folgt: aus ` {\* Article content \*} {block name='frontend\_custom\_article\_content'} {$sContent} {/block} ` muss ` {\* Article content \*} {block name='frontend\_custom\_article\_content'} {include file="string:{$sContent}"} {/block} ` gemacht werden. Damit werden Shopseiten „smartyfähig“, und man kann auch das Action Plugin verwenden Hoffe das hilft ggf. jemanden weiter. LG japanwelt

---

<div class="post-metadata">

**Author:** ![netzperfekt](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/netzperfekt/32/7765_2.png) [@netzperfekt](https://forum.shopware.com/u/netzperfekt)\
**Post date:** [20. Juni 2016 um 17:58 UTC](https://forum.shopware.com/t/smarty-cms-action-plugin/25531/4 "2016-06-20T17:58:39Z")

</div>

Bin heute auch auf das Problem gestossen und habe (mehr oder weniger&nbsp;intuitiv) eine ähnliche Lösung verwendet, hätte das aber lieber im Controller/Plugin gehandhabt, da so noch zusätzlich - und eigentlich unnötigerweise - ein Frontend-Template überschrieben werden muss (= mögliche Fehlerquelle bei Updates und komplexeren Plugin-Szenarien).&nbsp;

Insofern: gibt es für die aktuelle Version (5.1.6 oder sogar 5.2) noch einen anderen Ansatz, um Action-Controller in View()-\>fetch(…) zu verwenden?

```
 &nbsp;
```
