ako funguje n:if … doplnenie kodu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Takeshi
Člen | 596
+
0
-

Ahojte … mam pole a chcem ho vykreslit pomocou foreach, ale tak aby v jednom riadku bli iba dve poozky … cize nieco v tomto zmysle … ako to teda upravit na spravny kod?

{$i=0}
<n:foreach n:foreach="$knihy as $kniha">
    {$partner}
    {$i++}
    <n:if="$i%2==0">
        <br/>
    </n:if>
</n:foreach>
Jan Endel
Člen | 1016
+
+1
-

Co takhle

<n:foreach="$knihy as $kniha">
    {$kniha} <br n:if="$iterator->getCounter() % 2 === 0">
</n:foreach>
Takeshi
Člen | 596
+
0
-

Jan Endel napsal(a):

Co takhle

<n:foreach="$knihy as $kniha">
    {$kniha} <br n:if="$iterator->getCounter() % 2 === 0">
</n:foreach>

To sa mi páči, môže byť :-)

norbe
Backer | 405
+
0
-

Nebo ještě líp takhle:

<n:foreach="$knihy as $kniha">
    {$kniha} <br n:if="$iterator->isLast(2)">
</n:foreach>
jiri.pudil
Nette Blogger | 1032
+
+1
-

Tak když už se předháníme o co nejkratší kód, přihodím takový, který je dokonce i skvěle pochopitelný :)

<n:foreach="$knihy as $kniha">
    {$kniha} <br n:if="$iterator->isEven()">
</n:foreach>
Šaman
Člen | 2666
+
+6
-

To jsou mi nějaké novinky. K čemu je dobré zapisovat makra pomocí inline zápisu, když nejsou v žádném elementu? Zvlášť, když zápis pomocí maker je kratší. n:makra bych použil jen v html elemetu (viz n:if)

{foreach $knihy as $kniha}
    {$kniha} <br n:if="$iterator->isEven()">
{/foreach}

Editoval Šaman (9. 7. 2014 17:42)