Jak „zakázat“ escapování Html::el(‚a‘) v Checkbox->description

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

Zdravím, snažím se do popisku checkboxu dostat dva funkční odkazy, ale po vykreslení se escapují. Celý formulář je dost dlouhý a nechci ho vykreslovat ručně, existuje nějaké řešení (bez JS)? Nette v 2.0 beta

ve formuláři:

$this->addCheckbox('access', 'četl/a jsem a souhlasím se')
	->setOption('description', Nette\Utils\Html::el('a')
					->target('_blank')
					->href($parent->link('Pages:popUp', '1'))
					->setText('storno poplatky').
				' a ' .
					\Nette\Utils\Html::el('a')
					->target('_blank')
					->href($parent->link('Pages:popUp', '1'))
					->setText('ubytovacím řádem'));

s výstupem:

<input type="checkbox" name="access" id="frmbookingForm-access">
	<label for="frmbookingForm-access">četl/a jsem a souhlasím se</label>
	<small>&lt;a target="_blank" href="/maxmilian/richtrovyboudy.cz/www/pages/pop-up/?id=1"&gt;storno poplatky&lt;/a&gt; a &lt;a target="_blank" href="/maxmilian/richtrovyboudy.cz/www/pages/pop-up/?id=1"&gt;ubytovacím řádem&lt;/a&gt;</small>
PavelJurasek
Člen | 39
+
0
-

Zkus:

$label = Nette\Utils\Html::el('a')
                                        ->target('_blank')
                                        ->href($parent->link('Pages:popUp', '1'))
                                        ->setText('storno poplatky').
                                ' a ' .
                                        \Nette\Utils\Html::el('a')
                                        ->target('_blank')
                                        ->href($parent->link('Pages:popUp', '1'))
                                        ->setText('ubytovacím řádem');
$this->addCheckbox('access', 'četl/a jsem a souhlasím se')
        ->setOption('description', $label);

Editoval PavelJurasek (6. 3. 2012 15:51)

Milo
Nette Core | 1283
+
0
-

Když uděláš Html::el() . ' a ' . Html::el() tak z toho máš string. Musíš to zachovat jako Html objekt.

$label = Html::el();

$label->add(Html::el('a')->href('...'))
	->add(' a ')
	->add(Html::el('a')->href('...'));
Kyslik
Člen | 15
+
0
-

Milo napsal(a):

Když uděláš Html::el() . ' a ' . Html::el() tak z toho máš string. Musíš to zachovat jako Html objekt.

$label = Html::el();

$label->add(Html::el('a')->href('...'))
	->add(' a ')
	->add(Html::el('a')->href('...'));

Díky, to je ono…