u horizontálního radioListu popisky jen po stranách
- koren
- Člen | 59
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?
- koren
- Člen | 59
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
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
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);
?>