ConventionalRenderer a styly u prvků jako select, textarea…
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- repli2dev
- Člen | 57
Zarazilo mě, že ConventionalRenderer
umožňuje přidat styly
inputům, ale nezvládá totéž pro seznam, textareu apod:
Například:
$renderer = $this->getRenderer();
$renderer->wrappers['control']['.select'] = 'select';
$renderer->wrappers['control']['.textarea'] = 'textarea';
Chci se zeptat, brání něco tomu, aby to Nette taky umělo?
P.S. Vím, že kdyby si to chtěl přiohnout, tak renderer zdědím a přepíšu metodu init třeba takhle:
protected function init()
{
$clientScript = $this->getClientScript();
if ($clientScript !== NULL) {
$clientScript->enable();
}
// TODO: only for back compatiblity - remove?
$wrapper = & $this->wrappers['control'];
foreach ($this->form->getControls() as $control) {
if ($control->getOption('required') && isset($wrapper['.required'])) {
$control->getLabelPrototype()->class($wrapper['.required'], TRUE);
}
$el = $control->getControlPrototype();
if ($el->getName() === 'input' && isset($wrapper['.' . $el->type])) {
$el->class($wrapper['.' . $el->type], TRUE);
} else {
if(isset($wrapper['.' . $el->getName()])){
$el->class($wrapper['.' . $el->getName()], TRUE);
}
}
}
}