{each}..{eachelse}..{/each}
- Cifro
- Člen | 245
Keďže som robil chvíľu v Smarty a makro {foreachelse} sa mi zapáčilo tak som si ho pridal aj do LatteFiltra. Táto téma sa už riešila viackrát, napr. tu a tu
Zdrojové kódy sú na Githube: https://gist.github.com/462628
Registruje sa to rovnako ako Honzové FormMacros teda v bootstrape. Je to pre PHP 5.3. Ak chcete pre PHP 5.2, tak odstráňte všetky namespace.
\Nette\Templates\AnotherLatteMacros::register();
Použiva sa to jednoducho:
{each $someArray as $key => $value}
<p>
{if $iterator->isFirst()}First item:{/if} <!-- funguje aj iterator, ako v normalnom {foreach} -->
{$key} => {$value}
</p>
{eachelse}
<p>Empty.</p>
{/each}
$someArray
môže byť všetko čo pobere
SmartCachingIterator
.
Enjoy ^_^
Editoval Cifro (4. 7. 2010 0:19)
- Cifro
- Člen | 245
rokerkony napsal(a): díky moc, ušetří to pár znaků :-) :-)
Za málo ^_^
Ja som v tejto mojej implementácii „zjemnil“ Nette a to tak, že keď
hodnota v $someArray
bola null
pretypoval som to na
prázdne pole. Ale Nette vyhadzuje výnimku keď je hodnota
null
.
Neviem či to nechať, alebo zjednotiť s pôvodnou implementáciou
foreach
u?
- rokerkony
- Člen | 122
Cifro napsal(a):
rokerkony napsal(a): díky moc, ušetří to pár znaků :-) :-)
Za málo ^_^
Ja som v tejto mojej implementácii „zjemnil“ Nette a to tak, že keď hodnota v
$someArray
bolanull
pretypoval som to na prázdne pole. Ale Nette vyhadzuje výnimku keď je hodnotanull
.Neviem či to nechať, alebo zjednotiť s pôvodnou implementáciou
foreach
u?
myslím, že by to asi správně mělo být stejné jako v normálním {foreach} lidi by se měli naučit si definovat proměnný a neházet do foreache co si zamanou … :)