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
+
0
-

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);
				}
			}
		}
	}