# Smarty - String zerlegen und in Tabelle anzeigen...

**URL:** <https://forum.shopware.com/t/smarty-string-zerlegen-und-in-tabelle-anzeigen/16461>\
**Category:** Shopware 3.5\
**Tags:** themes--design\
**Created:** [30. Oktober 2013 um 11:42 UTC](https://forum.shopware.com/t/smarty-string-zerlegen-und-in-tabelle-anzeigen/16461 "2013-10-30T11:42:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![VolkerSchroder](https://avatars.discourse-cdn.com/v4/letter/v/4da419/32.png) [@VolkerSchroder](https://forum.shopware.com/u/VolkerSchroder)\
**Post date:** [30. Oktober 2013 um 11:42 UTC](https://forum.shopware.com/t/smarty-string-zerlegen-und-in-tabelle-anzeigen/16461/1 "2013-10-30T11:42:40Z")

</div>

Ich habe einen String (kommt aus der Wawi und wird per sync zu Shopware in Attribut4 übertragen): z.B. [quote] Drehmoment TAB 6Nm Endabschaltung TAB elektronisch Funk TAB mit Funk [/quote] TAB ist ein Tabsprung (könnte aber auch ein anderes Zeichen sein, wenn das einfacher wird) diesen String möchte zerlegen und wie die Eigenschaften anzeigen. Also jeweils 1 Zeile als 1 Tabellenzeile Den Text vorm Tab als Den Text hinterm Tab als quasi genauso wie das bei den Eigenschaften gemacht wird: [quote]  
{foreach from=$sArticle.sProperties item=sProperty} {\* nur anzeigen wenn wert ausgefüllt \*} {if $sProperty.value} - {$sProperty.name} {$sProperty.value}  
{/if} {/foreach} [/quote] Geht das…? Wie bekomm ich den String in Zeilen zerlegt und wie in den linken/rechten Teil vom Tab? Ich komme da irgendwie nicht weiter ☹

---

<div class="post-metadata">

**Author:** ![hth](https://avatars.discourse-cdn.com/v4/letter/h/b77776/32.png) [@hth](https://forum.shopware.com/u/hth)\
**Post date:** [30. Oktober 2013 um 15:30 UTC](https://forum.shopware.com/t/smarty-string-zerlegen-und-in-tabelle-anzeigen/16461/2 "2013-10-30T15:30:21Z")

</div>

Hallo, in Smarty kann man eine Variable mit dem lanuage modifier regex\_replace modifzieren ([smarty.net](http://smarty.net) und [http://php.net/manual/en/function.preg-replace.php](http://php.net/manual/en/function.preg-replace.php) für die Syntax der Regular Expressions). Damit wäre die Begrenzung durch den Tab realisierbar. Man müsste dann an der entsprechenden Stelle im Template immer alles links oder recht des Tabs aus der Variable ausblenden. Wenn es mehr als zwei Werte sind und nicht immer die identische Anzahl von Werten, wird das mit den RegExpressions kniffelig. Der Weg über PHP-Funktionen als modifier geht auch (siehe [smarty.net](http://smarty.net)). Damit kann man jeden String in einzelne Teile zerlegen oder in ein Array überführen. Hiermit wäre dann eine beliebig lange Liste (=String) splittbar. Die Ausgabe in Tabellenform ist dann in HTML umzusetzen. Entweder als “echte” Tabelle, über display: table-cell, inline-block oder per float. Das hat halt alles Vor- und Nachteile. Bei der Aufzählung von Produkteigenschaften böte sich auch noch eine definition list an. Das wäre semantisch der ideale Weg.

---

<div class="post-metadata">

**Author:** ![hbee](https://avatars.discourse-cdn.com/v4/letter/h/f08c70/32.png) [@hbee](https://forum.shopware.com/u/hbee)\
**Post date:** [30. Oktober 2013 um 22:05 UTC](https://forum.shopware.com/t/smarty-string-zerlegen-und-in-tabelle-anzeigen/16461/3 "2013-10-30T22:05:29Z")

</div>

hi, ich würde es auch, wie hth schon schrieb, über eine php-funktion als modifier machen. in etwa so (ungetestet): `{assign var=foo value="\n"|explode:$sArticle.attr4} ` damit hättest du schon mal die Zeilen in einem Array. Diese kannst du dann noch mal nach deinem Trennzeichen splitten. und dann beliebig ausgeben…
