chyba při použití noescape

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

Chci se zeptat proč mi vyskakuje laděnka:
Nette\MemberAccessException

Call to undefined method Nette\Templating\FileTemplate::noescape(). search►
na radku 33

<?php
   <div class="product-detail-vyhody-background">
32:                <div class="product-detail-vyhody">
33:                    <?php echo Nette\Templating\Helpers::escapeHtml($template->noescape($productDetail->advantage), ENT_NOQUOTES) ?>
34:
35:                </div>
36:            </div>
?>

v šabloně to vypadá takto:
{$productDetail->advantage|noescape}

díky

David Matějka
Moderator | 6445
+
0
-

co mas za verzi nette?

Domki
Člen | 310
+
0
-

No 2.0

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

Myslím, že v 2.0 ještě noescape nebylo. Použij vykřičník:

{!$productDetail->advantage}
Domki
Člen | 310
+
0
-

A když potřebuju v nette 2
neco takového: {$productDetail->advantage|escape|nl2br|noescape}
Aby mi to vybralo z dtb a \n nahradilo za <br>
Aby to vypsalo odradkovane?

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

toto by myslím mělo fungovat:

{(!$productDetail->advantage)|nl2br}
Domki
Člen | 310
+
0
-

Jo funguje akorát ten vykřičník před závorkou díky

leninzprahy
Člen | 150
+
0
-

Přijde mi, že by to mělo být spíše (hodnotu ošetřit, nahradit \n za <br />, a toto už vypsat neošetřené)

{!$productDetail->advantage|escape|nl2br}

protože v

{(!$productDetail->advantage)|nl2br}

hodnota ošetřena není a hrozí XSS.

Domki
Člen | 310
+
0
-

Jo taky funguje a asi jo
Díky