Jak dostat iterator do $this->global
- ali
- Člen | 342
Ahoj,
jak lze do promenne $this->global v sablone vlozit iterator z foreach nejak elegantneji nez pres jeho pouziti (viz kod nize)?
{foreach $day as $hour => $minutes}
{$iterator->isFirst()}
<tr n:if="$this->global->its[0]->isFirst()">
{foreach $minutes as $seconds}
<th>{$seconds}</th>
{/foreach}
</tr>
{/foreach}
- CZechBoY
- Člen | 3608
Na co to potřebuješ? Proč ti nestačí
$iterator->isFirst()
, případně uložení iteratoru do
pomocné proměnné?
{foreach $day as $hour => $minutes}
{var $dayIterator = $iterator}
<tr n:if="$dayIterator->isFirst()">
{foreach $minutes as $seconds}
{var $minuteIterator = $iterator}
<th>{$seconds}</th>
{/foreach}
</tr>
{/foreach}
- ali
- Člen | 342
Pomocna promenna je samozrejme mozna, jde mi spis o to, ze v latte ~2.3.0 jsem pouzival promennou $_l->its pro tyhle ty ucely, ktera je v aktualni verzi deprecated.
A pokud jsem to dobre pochopil, tak nahrada by mela byt prave promenna $this->global->its, kde se taky iterator uklada, ale az po jeho pouziti v sablone.
- ali
- Člen | 342
Ja nepsal, ze nemuzu pouzivat docasny promenny, jen jsem byl zvykly pouzivat
jinaci reseni, tot vse :-).
A pouzivam to tehdy, kdyz chci v makru foreach pouzit iterator z rodicovskeho
foreach.
V promenne $_l byli ulozeny iteratory z foreach, takze si mohl pouzivat jednotlive iteratory, bez deklarovani dalsich promennych, viz priklad:
{foreach $a => $b}
{foreach $b => $c}
{foreach $c => $d}
{$_l->its[0]->getCounter()} {* iterator pole $a *}
{$_l->its[1]->getCounter()} {* iterator pole $b *}
{$_l->its[2]->getCounter()} {* iterator pole $c *}
{/foreach}
{/foreach}
{/foreach}