Povolení jen některých maker

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

Zdravím,
momentálně řeším to, že mám latte kód v DB a vykresluji jej přes Nette\Templating\Template , to je všechno v pořádku a krásně to funguje.
Jenže nevím, jak povolit pouze makro „link“ a popř. nějaké další makro . Nechci totiž nechvávat volnou ruku uživatelům v tom, že by psali do latte cokoliv.

vvoody
Člen | 910
+
0
-

Napíš si vlastný jednoduchý filter, namiesto toho aby si sa prehraboval v latte a nejako sa snažil o to aby robil len to čo chceš užívateľom dovoliť.

jetpack
Člen | 71
+
0
-

No šlo mi o to, abych nepsal zbytečně něco co už je.
V Nette v Nette\Latte\Macros\UIMacros je metoda $me->addMacro(‚link‘, array($me, ‚macroLink‘));
Chtěl jsem akorát toho využít a převzít to do samostatné templaty.

vvoody
Člen | 910
+
0
-

Poriadne si to rozmysli, latte je rozšírené php, aby si užívateľom nedal možnosť spúšťať php kód!

jetpack
Člen | 71
+
0
-

No o to mi jde. Chci pouze mít možnost využít některých maker, které nemohou ohrozit bezpečnost aplikace a zdrojových kódů.

proto {php_funkce()} nechci aby šla a taktéž include a další věci.

Pouze čistě {link destination} aby si mohli psát odkazy jednoduše např. {link Page:detail ‚moje-stranka‘} protože tohle zajišťuje to, že to vezme i persistentní jazykové parametry a další věci dle Rout.

vvoody
Člen | 910
+
0
-

Kvôli tomuto som ti rovno navrhol aby si si napísal vlastný filter. Vôbec si neuvedomuješ že do každého latte makra môžeš písať php kód.

{link Presenter:action max(2,3)}

Znovu, latte je rozšírenie php!!!!

Eda
Backer | 220
+
0
-

Na něco takového se hodí spíše Texy než Latte.

Editoval Eda (22. 10. 2013 22:40)