Texy! + Latte & <nette:texy>

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

Ahoj,

Existuje nějaká možnost jak použít Texy! a Nette (nebo Latte) jak bylo ukázáno Davidem Grudlem v článku Jak si rozmí Nette s Texy! (z roku 2006)? Tedy tak, že se nette kód uzavře do tagu <nette:texy> (nebo něco na ten způsob).

Jan Tvrdík
Nette guru | 2595
+
+4
-

Nejjednodušší je zaregistrovat si filtr (dříve se tomu říkalo helper) texy a v šabloně pak použít něco jako:

{block|texy}
**tučný text**, ...
{/block}

Nebo si můžeš vytvořit vlastní makro {texy}...{/texy}, což ti umožní překládat ten text v rámci kompilace.

japlavaren
Člen | 404
+
+2
-

Prehladal som zdrojaky nette a texy mi nenaslo, takze predpokladam, ze nativna podpora tam nieje.
Takze by som to riesil nasledovne:

1. vytvoril sluzbu TexyFilter, ktora by vytvorila texy a nastavila vsetko potrebne

<?php
// service sa mi nechce pisat, v skratke:
// objekt ktory bude mat metodu process ktora to prezenie cez texy
// k texy pristupovat ako k singleton, tj. objekt private propperty a k nej getter ktory vytvori ak neexistuje
?>

2. zaregistroval ju v neone,

service:
	texyFilter: App\Model\TexyFilter

3. zaregistroval filter

service:
	nette.latteFactory:
		setup:
			- addFilter(null, [@texyFilter, process])

4. v sablone mozes pouzivat nasledovne

{$text |texy}

ps: aby si v sablone nemusel zakazovat escapovanie texy, vracaj si vystup zo service alo objekt Html, ten latte neescapuje

Editoval japlavaren (4. 8. 2014 17:01)

japlavaren
Člen | 404
+
0
-

pozeram ze pocas pisania prispevku si ma prebehol :D