moznost vypisu jednotlivych polozek v RadioListu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Vitek Jezek
hledá kolegy | 285
+
0
-

modelova situace: mame radky s textInputem napr. otazek a mame radio button, ktery oznacuje radku se spravnou odpovedi. Nyni bohuzel muzeme pouzit na radio pouze radioList, ktere nam pri $form['radio']->control vypise cely radioList. Potreboval bych ale nekdy rict, ktery prvek bych vypsal (abych na modelovem pripade mohl na vypis pouzit foreach a vzdy si zazadat o jednodlivy „button“).

//spolu s tim se poji mene zavazna otazka/popr. request – da se nejak zmenit separator v radiu?

Predem dekuju : )

Vitek Jezek
hledá kolegy | 285
+
0
-

resit. dg

crempa
Člen | 198
+
0
-

Lze to resit manualnim vlozenim jednotlivych radio do sablony, s tim, ze si je stejne do formulare v presenteru pridas (kvuli kontrole), ale nenechas je vykreslit

Musis v takovem pripade taky resit vyber (napr. pri editu zaznamu…). Zrovna nedavno sem to resil a muzu rict, ze formular kde sem mel 20 radio sem placal snad dve hodiny – desna prace :-)

Takze davam palec nahoru pro tento request.

Jod
Člen | 701
+
0
-

Tiež som za, bolo by dobré môcť to vypisovať aj po jednom.

David Grudl
Nette Core | 8218
+
0
-

Lze to nyní vypisovat pomocí echo $form['gender']->getControl($key), kde $key je klíč jednotlivé položky.

crempa
Člen | 198
+
0
-

Diky! tohle vazne pomuze :)

Muzu se jinak zeptat, zda jeste stale visi ve vzduchu nejake forma Hybridu mezi validátorem a filtrem ? Ja jen abych nevynalezal skoro hotove kolo..

David Grudl
Nette Core | 8218
+
0
-

visí :-)

deric
Člen | 93
+
0
-

Bylo by možné přidat do RadioList metody setContainer(Html $html) a setSeparator(Html $html)? Je sice možné napsat si vlastní renderer, ale pokud to potřebuju zabalit třeba jenom do divu, tak je to zbytečná práce.

Editoval deric (14. 3. 2009 17:13)

deric
Člen | 93
+
0
-

resp. lepší by bylo umožnit zapouzdření jednotlivých radio buttonů. např:

/**
 RadioList.php: getControl($key = NULL)
*/
//...
            $html = (string) $control . (string) $label . $separator;
            if(!empty($this->box)){
                $box = clone $this->box;
                $box->add($html);
                $container->add($box);
            }else{
                $container->add($html);
            }
//..