Správné vyrenderování vloženehé makra?

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

Zdravim,

mam sablonu, ve ktere mam makro {!$horni_napis} a v presenteru do nej vkladam retezec z xml. Vsiml sem si ovsem, ze pokud v tom retezci pouziju treba nejake makro, napriklad {plink Default:Default}, tak se makro neprerendruje a vlozi se tak, jak je.
Jde nejak prinutit sablonu aby to vlozene makro vyrenderovalo spravne? Nebo nejak si ho „predrenderovat“ v presenteru a vlozit to do te sablony?

Diky za rady.

Jan Tvrdík
Nette guru | 2595
+
0
-

To dost dobře nejde, musel bys to parsovat za letu a prohnat evalem.

Dj_Oggy
Člen | 67
+
0
-

Aha, no i to by se siklo. Metodu parse jsem v LatteFilter nasel a tou bych to asi mohl zparsovat. A jak to pak prohnat evalem, abych tam priradil nejake parametry?

Aurielle
Člen | 1281
+
0
-

Úplně normálně jako bys psal kód (doufám, eval jsem nikdy nepoužil):

eval('$result = dibi::query("SELECT * FROM [table]")->fetch();');
Dj_Oggy
Člen | 67
+
0
-

Aha, diky

Ondřej Mirtes
Člen | 1536
+
0
-

Tento způsob nedoporučuji, je to obrovská bezpečnostní díra.

Měl by ses vyvarovat samotnému evalu :)

„If eval() is the answer, you’re almost certainly asking the wrong question.“

Dj_Oggy
Člen | 67
+
0
-

Heh, dobra no,tak se na to vybodnu :D

Yrwein
Člen | 45
+
0
-

Dj_Oggy: A proč nepředávat nějakou komponentu místo textu? Text by se ukládal do dočasného souboru (jak moc dočasného jest otázka) a komponenta by ho vyrenderovala jako nette šablonu…

Dj_Oggy
Člen | 67
+
0
-

Neco podobneho me taky napadlo, ale jeste jsem nemel cas se blize na to mrknout.

Editoval Dj_Oggy (2. 11. 2009 12:36)