Vykreslování custom labelu

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

Zdravím,
s Nette začínám. Mám problém s vlastním vykreslováním formuláře.
Potřebuji v HTML pomocí Latte dospět k výsledku:

<input type="radio" name="sex" value="male" id="male"/>
<label for="male">
	<div class="box">Male</div>
</label>
<br />
<input type="radio" name="sex" value="female" id="female"/>
<label for="female">
	<div class="box">Female</div>
</label>

V továrničce pro tvorbu formuláře jsem se snažil dopátrat místa,
ve kterém se tvoří kód labelu takovým způsobem:

$gender = $form->addRadioList('gender', 'Pohlaví:', $sex)->getLabelPrototype()->getHtml();

Což je špatně, jelikož výsledkem je prázdný řetězec.
Jak je tedy možné dospět k požadovanému tvaru?
Jinak řečeno, jak text labelu obalit divem s požadovanou
třídou? ->

<input type="radio" name="sex" value="male" id="male"/>
<label for="male">
	<div class="box">Male</div>
</label>

s použitím Latte zápisu:

<tr class="required">
	<th>{label gender /}</th>
	<td>{input gender}</td>
</tr>

Dík za odpověď.

Mikee1988
Člen | 2
+
0
-

Tak po delší době tápání jsem došel na řešení,
pokud je to špatně, tak mě prosím opravte!
Továrnička produkující požadovanou položku:

protected function createComponentAddForm()
{
	$form = new Form;
        $muz = new Nette\Utils\Html;
        $muz->setHtml('<div class="box">muž</div>');
        $sex = array(
            'm' => $muz,
            'f' => 'žena',
        );
        $form->addRadioList('gender', 'Pohlaví:', $sex);

        return $form;
}
Milo
Nette Core | 1283
+
0
-

Můžeš to zkrátit:

$sex = array(
	'm' => Nette\Utils\Html::el('div')->class('box')->setText('muž'),
	'f' => 'žena',
);