[2009–12–22] novinka: grid rendering
- David Grudl
- Nette Core | 8253
Potřebujete vyrenderovat pole produktů $products do podobné mřížky?
Kdyby to nebyla mřížka, stačilo by napsat třeba
Ale na mřížku, zdá se, jeden foreach nestačí, jsou potřeba dva vnořené cykly a v takovém případě ani foreach použít nelze. Nebo zapojit nějaké komplikované ify. Nebo použít novinku, metody iteratoru isFirst() a isLast() s podporou renderování mřížek.
V uvedeném příkladě má mřížka šířku 3, kód by tedy vypadal následovně:
Ještě drobnost: v šablonách lze psát XML deklarace
<?xml version=... ?>
a nebudou vyhodnoceny jako PHP kód,
nezávisle na nastavení direktivy short_open_tag.
- Ondřej Mirtes
- Člen | 1536
Hezké, ale je tam WTF faktor :)
Mám tomu rozumět jako ($counter % $number) == 1 || isLast()
?
Dalo by se to nějak použít, kdybych chtěl vyrenderovat tabulku (sloupce tabulky x záznamy)? Tohle je jen pro případ, že chci vyrenderovat do mřížky seznam itemů, ale žádný vztah mezi hodnotou a sloupcem tam není, je to jen mřížka.
- Ondřej Mirtes
- Člen | 1536
Solution napsal(a):
Jen abych to správně pochopil, to se na začátku uloží proměnná, která se iteruje a pokud má číslo 3, tak ukončí nebo začne nový řádek a potom se resetuje?
Jinak hezké :-), píšu si.
To je to modulo :)) https://github.com/…00dcf04d8a18
- sin
- Člen | 82
To funguje jenom ve vyvojove verzi? protoze v API to neni https://api.nette.org/…tor.php.html#64
- Proki
- Člen | 66
Měl bych návrh na drobné vylepšení. Pokud renderuji data do mřížky, tak nyní není možnost jednoduše využít metody isEven() a isOdd() pro odlišení sudých a lichých řádků. Hezké by bylo, kdyby tyto metody přijímaly argument stejný jako metody isFirst() a isLast(). Co si o tom myslíte vy?
Nyní pro zvýraznění sudých řádků musím využívat takto nepěkný kód:
Hezčí by to bylo například takto:
Editoval Proki (15. 1. 2010 21:29)