Nastavenie (vytvorenie) vykreslenia formulara
- Marcel
- Člen | 6
Zdravim,
pokusal som sa nastavit si vlastny renderer na vykreslenie formulara. Postupoval
som podla prikladov a nasiel som tuto konstrukciu:
$renderer->wrappers['form']['container'] = Html::el('div')->id('form');
vyskusal som aj
$renderer->wrappers['controls']['container'] = Html::el('table')->class('formlayout');
Ale ako nahle som chcel nastavit specificky class na obalovaci element pre
control
napr:
$renderer->wrappers['control']['container'] = Html::el('td')->class('ctrl');
tak mi to vypisalo chybu:
Fatal error: [] operator not supported for strings in
/var/www/share/Nette/Forms/Renderers/ConventionalRenderer.php on
line 458
Robim nieco zle, alebo to nie je podporovane?
- David Grudl
- Nette Core | 8218
Je to tím, že atributy objektu Html mohou být řetězce nebo pole a ConventionalRenderer očekával pole. Fixnu to
- Roman Pištěk
- Člen | 10
Bylo by možné u objektu RadioList přidat setter
pro $container
a $separator
?
Hodila by se možnost udělat z jednotlivých radio+label plovoucí boxy a řadit je vedle sebe namísto pod sebe.
- David Grudl
- Nette Core | 8218
To by mělo jít řešit přes gettery getSeparatorPrototype() a getContainerPrototype(). Vrátí objekty Html a můžeš jim doplnit stylování.
- Roman Pištěk
- Člen | 10
U $separator
to jde, přes display: none
se ho
zbavím. Ale kontejneru (defaultně prázdnému uzlu) můžu jen přidat
potomka, který je v DOM na stejné úrovni jako později přidaná radia.
Co přidat do RadioList renderovací alternativu
<label><input /> ...</label>
vedle současné
<input /><label for="">...</label>
?
- David Grudl
- Nette Core | 8218
Roman Pištěk napsal(a):
U
$separator
to jde, přesdisplay: none
se ho zbavím. Ale kontejneru (defaultně prázdnému uzlu) můžu jen přidat potomka, který je v DOM na stejné úrovni jako později přidaná radia.
Zrušit separátor:
$control->getSeparatorPrototype()->setName(NULL);
Nebo udělat z něj mezeru:
$control->getSeparatorPrototype()->setName(NULL)->setHtml(' ');
Co přidat do RadioList renderovací alternativu
<label><input /> ...</label>
vedle současné<input /><label for="">...</label>
?
Nebude fungovat v IE.