Möglichkeit einer Auflistung in Smarty

Wenn ihr z.B. ein Array in Smarty ausgeben wollt, welche durch ein Komma („,“) getrennt ist, dann bietet sich folgende Möglichkeit an:

1
2
3
4
5
{counter start="0" assign="tagCounter"} 
{foreach from=$tagList item=tag}
    {counter}
    <a href="search.php?tagID={$tag.id}">{$tag.name|capitalize}</a>{if $tagCounter < count($tagList)},{/if}
{/foreach}

Die erste Zeile initialisiert einen Counter, danach wird eine foreach-Schleife durchlaufen. Mit „{counter}“ wird der Zähler hochgezählt. Das „{if}“ am Ende prüft einfach ob noch Items vorhanden sind, wenn ja, einfach ein Komma ausgeben.

1
2
3
{foreach from=$tagList item=tag name=tagForeach}               
    <a href="search.php?tagID={$tag.id}">{$tag.name|capitalize}</a>{if !$smarty.foreach.tagForeach.last},{/if}
{/foreach}

Dank mahe gehts auch deutlich kürzer 😉

Sicherlich gibt es noch bessere Lösungen aber was besseres wollte mir spontan nicht einfallen. Eine fertige Smartyfunktion scheint es nicht zu geben!

2 Gedanken zu „Möglichkeit einer Auflistung in Smarty“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.