Smarty a foreach, způsob jak odlišit první a poslední iteraci

Způsob jak donutit smarty vypisovat v cyklu třeba toto:

prvni | druhy | treti

Kde za třetí už není oddělovací čára. Jde tedy o to,jak u posledního( nebo prvního) prvku vykonat něco jiného než u ostatních.

Řešení je snadné, cyklus pojmenujeme( tag name) a pak jen testujeme, jestli jeho iterace je poslední(první) a vykonáme co je třeba.

{foreach name=foo from=$array}
{if $smarty.foreach.foo.first} První iterace {/if}

Jakýkoli výpis v každé obrátce cyklu

{if $smarty.foreach.foo.last}  Poslední iterace {/if}
{/foreach}

A k příkladu z úvodu:

{foreach name=foo from=$array item=polozka}

{$polozka}

{if !$smarty.foreach.foo.last}  | {/if}
{/foreach}

Tedy pokaždé vypíše obsah buňky pole,a pokud není poslední, vypíše i oddělovač.