pair container: ako nastavím css triedu?

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

Ahoj

mám formulár:

$form = new Form();
$form->renderer = new MyRenderer();
$form->addText('date', SELECT_DATE . ':')->emptyValue = date("d. m. Y", time());
$form['date']->labelPrototype->class('dateLabel');
$form['date']->controlPrototype->class('datePicker');
$form->addSubmit('continue', CONTINUE_NEXT_STEP);
echo $form;

vytvoril som si naň vlastný Renderer:

class MyRenderer extends ConventionalRenderer
{
	public function __construct()
	{
		$this->wrappers['controls']['container'] = NULL;
		$this->wrappers['pair']['container'] = 'div';
		$this->wrappers['label']['container'] = NULL;
		$this->wrappers['control']['container'] = NULL;
		$this->wrappers['label']['requiredsuffix'] = "<em>*</em>";
	}
}

a generuje mi to kód:

<form action="" method="post">
<div> 	<!--ako nastavím triedu u tohoto divu -->
	<label class="dateLabel" for="frm-date">vyberte si dátum:</label>
	<input type="text" class="datePicker text" name="date" id="frm-date" value="22. 12. 2009">
</div>
<div>
	<input type="submit" class="button" name="continue" id="frm-continue" value="Pokračovať &gt;&gt;">
</div>
</form>

no a ako najjednoduchšie nastavím triedu DIVu ktorý obaluje label a control?

skúšal som vlastnosť: $form['date']->containerPrototype->class('dateContainer'); ale nič také neexistuje :/

viem že u rendereru môžem nastaviť triedu takto:

$this->wrappers['pair']['container'] = 'div class="dateContainer"';

ale to mi zase nastaví tú triedu u všetkých divov…

Editoval blizzboz (22. 12. 2009 3:15)

Filip Procházka
Moderator | 4668
+
0
-
$this->wrappers['pair']['container'] = Html::el('div')->class('dateContainer');
blizzboz
Člen | 13
+
0
-

HosipLan: no veď tento spôsob napadol aj mňa ale ja som chcel nastaviť triedu iba u toho vrchného kontaineru, ale už som ten problém vyriešil tak že som ho vykreslil ručne.

PetrP
Člen | 587
+
0
-

Jestli využíváš ConventionalRenderer tak cokoly nastavíš jako option (krome nekterych jako description) se prida jako attr do pairu.

$form['date']->setOption('class', 'datePicker');

(Ale nedělá to u buttonu = bug)