u horizontálního radioListu popisky jen po stranách

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

Zdravím.
Rád bych se zeptal, jestli je v defaultním rendereru formuláře nějaká možnost vypsat popisky u horizontálního radioListu, ale pouze vpravo a vlevo ( viz obrázek http://postimage.org/…e/dmw8boxip/ ).

Z určitých důvodů se mi nehodí použít manuální renderování, tak hledám nějaký způsob jak to takto zařídit.

Zatím jsem vymyslel pouze hnusný hack uvedený níže. U pravého popisku je to celkem OK, ale ten levý řeším tak, že k prvnímu radiu dám daný popisek a input pak v css skyju. Jistě mi dáte za pravdu, že toto není moc hezké :)

<?php
$horizontalRadios = array(0=>"začátečník",1=>"",2=>"",3=>"",4=>"",5=>"",6=>"",7=>"",8=>"",9=>"",10=>"expert");
$form->addGroup($poll->title)->setOption('container', Html::el('div')->class('horizontalRadio group'));
$form->addRadioList($name, NULL, $horizontalRadios) // vytvorime radio list pro vsechny prislusne options
     ->getSeparatorPrototype()->setName(NULL);
?>

Napadá vás prosím něco jiného?

jtousek
Člen | 951
+
0
-

Po pravdě nenapadá, přesně pro tyhle případy je určené manuální renderování. Spíš bych tedy řešil a odstranil důvody, kvůli kterým to manuální použít nechceš / nemůžeš.

Tabetha
Člen | 140
+
0
-

ja osobne riešim ručným vykresľovaním…a to vo forme tabuľky…je to veľmi ľahko formulovateľné a nastavovateľné…urob to zrejme ručne…

koren
Člen | 59
+
0
-

no problém je, že tenhle radioList je jen částí mnohem většího, dynamicky vytvářenýho, formuláře… proto je nanejvýš vhodný to manuálně nevykreslovat… nebo snad existuje i nějaká jednoduchá možnost jak si nechat vypsat všechny části formuláře automaticky a z nich si vybrat jednu (tuto), kterou si vykreslíme manuálně? mě nic takovýho nenapadá…

Ascaria
Člen | 187
+
0
-

Doporučuju důkladně přečíst https://forum.nette.org/…0-radku-kodu (předposlední příspěvek) a taky ten odkaz z posledního příspěvku na dané adrese. Zachováš si tímto „automatické renderování“ a budeš moct libovolný řádek poupravit dle potřeby. Osobně ve formulářích už conventional renderer nepoužívám a tam kde je ho postupně nahrazuju šablonou.

koren
Člen | 59
+
0
-

Díky za odpověď1 Vyzkoušim ale až příště. Aplikace už musela rychle bežet, takže nakonec jsem to vyřešil pomoci pomocí ->setOption(), trochu to nastyloval a vypadá to přesně jak jsem chtěl :)

<?php

$horizontalRadios = array(1=>"",2=>"",3=>"",4=>"",5=>"",6=>"",7=>"",8=>"",9=>"",10=>"expert");
$firstLabel = Html::el('span','začátečník')->class('firstLabel');

$form->addGroup($poll->title)->setOption('container', Html::el('div')
     ->setOption('description', $firstLabel);
$form->addRadioList($name, NULL, $horizontalRadios)
     ->getSeparatorPrototype()->setName(NULL);
?>
bojovyletoun
Člen | 667
+
0
-

Ještě mě napadá input type=range