Smarty foreach
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č.