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