Nerenderovat checkbox vnořený do label
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Zapotocny
- Člen | 16
Ahoj,
navrhl jsem si vlastní form renderer, a css frameworku se nelíbí, že nette defaultně renderuje checkbox jako
<label><input/></label>
potřeboval bych docílit tohohle
<label></label>
<input/>
jednoduše přetížená metoda render
MujRenderer.php
...
public function render(Nette\Forms\Form $form, $mode = null)
{
foreach ($form->getControls() as $control) {
if ($control instanceof Controls\Button) {
$control->getControlPrototype()->addAttributes(['class' =>'ui button']);
} elseif ($control instanceof Controls\Checkbox ||
$control instanceof Controls\CheckboxList ||
$control instanceof Controls\RadioList) {
//todo: weird checkbox nesting
$control->getSeparatorPrototype()->setName('div')->addAttributes(['class' => ['ui', $control->getControlPrototype()->type]]);
}
}
return parent::render($form, $mode);
}
a chtěl bych to nechat v php v tom rendereru, vím, že kdybych si na renderování udělal šablonu, tak to půjde jednoduše, ale pro úplnost a případné další distribuování bych to chtěl nechat v php
Díky moc předem
Luboš