Wenn ihr z.B. ein Array in Smarty ausgeben wollt, welche durch ein Komma („,“) getrennt ist, dann bietet sich folgende Möglichkeit an:
{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.
{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!
Du hast recht, da gibt’s noch was anderes 😉
Schau mal da nach: http://www.smarty.net/manual/en/language.function.foreach.php
dem foreach noch ein name=foo verpassen
$smarty.foreach.foo.index => enthält den aktuellen Array-Index
$smarty.foreach.foo.last => ist TRUE wenn man beim letzten Array-Element angelangt ist 😉
War ja klar, dass gerade jetzt die Seite down ist..
Morgen seh ich mir das noch mal an..