Obalový prvok okolo SELECT

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Kranox
Člen | 9
+
0
-

Zdravím,
snažil som sa dopátrať ako vytvoriť obalový DIV pre SELECT prvok formulára. Ale nikde som nenašiel nič ani len podobné.

<?php
->getControlPrototype()->setName('div class=form_select');
?>

mi zmení SELECT na DIV čo bohužiaľ nie je vyhovujúce.

<?php
->setAttribute('class', 'form_select');
?>

mi pridá triedu, ale stále mi tam chýba obalový div :/
Chcel by som niečo podobné ako toto:

<?php
getRenderer()->wrappers['control']['container'] = 'div class=form_select'
?>

ale len pre jeden prvok(control) vo formulári, alebo len SELECT prvky a nie pre všetky prvky.
Manuálne renderovanie neprichádza do úvahy vzhľadom na množstvo a rozsah formulárov.

enumag
Člen | 2118
+
0
-

Budeš si asi muset podědit třídu SelectBox a přetížit getControl.

Kranox
Člen | 9
+
0
-

Zatiaľ som to riešil pomocou setatribute class a v HTML cez jQuery .wrap() funkciu. Je to trocha divoké ak sa stránka načítava dlhšie.

To preťaženie je ten kód ďalej? Až tak zbehlý v programovaní ešte nie som. A v tom kóde Nette sa nevyznám takmer vôbec :/
Asi viem ten základ, len netuším čo ďalej:

<?php
class MojSelectBox extends SelectBox {
	public function getControl() {
		$control = parent::getControl();
		return '<div class="form_select">'.$control.'</div>'; //zjednodušene
	}
?>

Len ako to použiť?