makro attr nefunguje v novej verzii

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

Prišlo pri poslednom release ku zmene makra {attr …}, poprípade jeho zápisu ? Kedze tento zápis mi nefunguje

{attr class(‚first‘,$iterator->isFirst()) class(‚last‘,$iterator->isLast())}

vyhodí mi to túto chybu –

syntax error, unexpected ‚(‘, expecting T_STRING

22
Člen | 1478
+
0
-

mám pocit, že je zrušené:

<li {first}class="first"{/first}></li>
uestla
Backer | 796
+
0
-

Lépěji takto:

<li n:class="$iterator->first ? first, $iterator->last ? last"></li>
22
Člen | 1478
+
0
-

to je fakt, je to přehlednější a kratší :-)

<li class="{first}first{/first}{last}last{/last}"></li>

Editoval 22 (7. 6. 2011 10:22)

uestla
Backer | 796
+
0
-

Prosím, ne – fujkity fuj…

Na ricco24ův problém byly navrženy n:atributy

Může se ti to zdát delší a nepřehledné, ale tvoje řešení u vnitřních prvků vykreslí prázdný atribut class (blé!), pokud je jediný prvek v poli, bude mít class="firstlast" (chyba!). Makra {first /} a {last /} se na tohle nehodí.

Čili ricco24: neposlouchej ho, používej n:atributy :-)

uestla
Backer | 796
+
0
-

Hlavně mi ale přijde, že chyba bude jinde :-D

Makro {attr ?} je pouze deprecated (tutonc), kdežto tobě to vyhazuje syntax error… Buďto tomu vadí volání metody nad $iteratorem, nebo máš překlep jinde (troufnu si odhadnout, že pomůže nahrazení za $iterator->first a $iterator->last).

Nicméně aspoň ses díky tomu dozvěděl o novém řešení a na makro {attr ?} s radostí zapomeň :)

ricco24
Člen | 141
+
0
-

first a last bol len priklad pretoze mi neslo pouzit makro {attr}. Potreboval som rozlisit parny a neparny prvok co som nakoniec s vasou pomocou spravil takto –

n:class="$iterator->odd ? odd, $iterator->even ? even

Dakujem za pomoc

_Martin_
Generous Backer | 679
+
0
-

n:class="$iterator->odd ? odd, $iterator->even ? even

o chlup lepší by bylo:

<atribut n:class="$iterator->odd ? odd : even">