Vložení odkazu do popisku checkboxu

Vojtha
Člen | 36
+
0
-

Ahoj,

zasekl jsem se na vytváření checkboxu u kontaktního formuláře „souhlasím se zpracováním osobních údajů“.
Rád bychv do tohoto textu propašoval odkaz na stránku s ochranou osobních údajů, ale protože se formulář vytváří v presenteru, když nechám odkaz generovat tam, Nette mi html tagy nezpracuje.

Předpokládám, že je to běžná záležitost, ale pořád mi asi něco uniká.
Díky za pomoc.

David Matějka
Moderator | 6445
+
+1
-

Ahoj, jako label muzes pouzit Html::el()

Vojtha
Člen | 36
+
0
-

No, to jsem právě zkoušel, mám tam

	$linkGdpr = Html::el('a')->href('/homepage/gdpr')->setHtml($this->translator->translate('ui.menu.gdpr'));
	$form->addCheckbox('agree', $this->translator->translate('form.contact.form-agreement') . " " . $linkGdpr);

A stránka mi pak vyhazuje toto

	I agree with <a href="/homepage/gdpr">Personal data protection</a>
nightfish
Člen | 472
+
+1
-

Vojtha napsal(a):

No, to jsem právě zkoušel, mám tam

	$linkGdpr = Html::el('a')->href('/homepage/gdpr')->setHtml($this->translator->translate('ui.menu.gdpr'));
	$form->addCheckbox('agree', $this->translator->translate('form.contact.form-agreement') . " " . $linkGdpr);

Spojením řetězce s Html vynutíš jeho převedení na řetězec, což nechceš. Chceš celý ten label, včetně textové části, mít jako jeden Html objekt, který předáš do addCheckbox(). Zhruba nějak takto:

$labelGdpr = Html::el()
                 ->setText($this->translator->translate('form.contact.form-agreement'))
                 ->addText(' ')
                 ->addHtml(Html::el('a')
                               ->href('/homepage/gdpr')
                               ->setHtml($this->translator->translate('ui.menu.gdpr'))
                          );
$form->addCheckbox('agree', $labelGdpr);
Vojtha
Člen | 36
+
0
-

Super, tak to jsem zase nepochopil, jak to má fungovat :-) . Díky!