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..