Ako poslat do sablony html z presentera

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

Ahojte, ako by som mohol poslat nejaky html kod z presentera do sablony bez toho aby sa na text pouzila funkcia htmlspecialchars?

<?php
$this->template->text = 'NEPRIHLASENY; <a href="'.$this->link("//Sign:In").'">Prihlásiť</a>';
// Output: NEPRIHLASENY; &lt;a href="http://moj.server.sk/sign/in"&gt;Prihlásiť&lt;/a&gt;
?>

Zatial len debuggujem server a potrebujem obcas vypisat nejake html, vacsinou vsak ide len o jednorazovy testovaci vypis a preto mi je pohodlnejsie to spravit priamo cez presenter namiesto toho aby som v latte vytvaral sablonu a tu potom naplnal cez presenter

Editoval buksy (9. 9. 2013 13:24)

Michal Vyšinský
Člen | 608
+
0
-

Ahoj,
v šabloně pak stačí vypisovat {!$text} – ! na začátku vypne escapování.

Editoval CherryBoss (9. 9. 2013 13:29)

David Matějka
Moderator | 6445
+
0
-

lepsi je

$this->template->text = Nette\Utils\Html::el()->setHtml('Nejake <strong>html</strong>');
buksy
Člen | 22
+
0
-

Dakujem :)

MartinitCZ
Člen | 580
+
0
-

@**matej21**: Napsal bys k tomu i důvod, proč je to lepší? Díky :)

Aurielle
Člen | 1281
+
0
-

Nevidím v tom rozdíl, pokud je zdroj bezpečný…

na1k
Člen | 288
+
0
-

V případě obalení Html::el() není potřeba v Latte vypisovat pomocí vykřičníku.

Jelikož má ale samotný vykřičník značit „pozor, tady se dějě něco nestandardního“, je na zvážení, jestli je to skutečně přínos nebo ne.