Formulare a grupy

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

Zacal jsem se trochu vrtat v renderovani formularu a zjistil jsem, ze prace s grupami je takova nesikovna…resp. kdyz chci vyrenderovat vsechny prvky formulare, tak pomoci metody $form->getComponents() dostanu vsechny controly ve formulari, ale uz se nemam jak dozvedet, jestli nektere s controlu jsou v nektere ze skupin. Pokud jdu stejnou cestou jako ConventionalRenderer, tak vykreslim vsechny skupiny, ale nektere controly v zadne byt nemusi a musim na to myslet. Navic je takto formular „rozkouskovany“ na jednotlive grupy, coz sice muze byt nekdy sikovne, ale nekdy taky ne. Je to napriklad pricinou toho, ze ackoliv mam nektery prvek ve formulari nadefinovany jako prvni, tak se vykresli klidne az na konci, protoze nektere prvky mam definovane ve skupinach a ty se renderuji nejdriv. Pokud mam vsechno zavrene treba v divech, tak to jeste docela jde, ale pokud chci mit formular treba v tabulce, tak se pak uz tezko ovlivnuje poradi, v jakem budou jednotlive prvky na strance umisteny.

Proste mi to prijde takove ne uplne sikovne. Ja chapu, ze grupy jsou v podstate jenom vizualni prvky, nicmene pri vykreslovani je potreba na ne brat velky zretel. Coz takhle grupu povysit na uroven Containeru s tim, ze ma proste jiny vyznam? Pak pomoci getComponent() dostanu i grupy a bude se dat jednotlive prvky formulare vyrenderovat presne v tom poradi, ve kterem jsou nadefinovay. Neni to sice uplne „košér“ nicmene dalsim zpusobem je renderovat formulare prvek po prvku rucne primo v sablone (a to uznate, ze je pekne na…). Nebo alespon udelat to, aby kazdy prvek formulare byl v nejake skupine; tedy aby existovala nejaka ‚default‘ grupa.

A jeste by mozna stalo za to dotahnout odebirani prvku z formulare, protoze tento pak zustava viset ve skupine:-)

Co vy na to?

P.S.: Ted me jeste tak napadlo, coz takhle pridat moznost setOption a getOption metod primo do tridy Form. Nekdy by treba bylo uzitecne si do rendereru predavat nejake parametry primo pro formular.

Editoval arron (8. 5. 2009 21:55)