Ztráta proměnných (vytvořených v šabloně) ve snippetu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
medhi
Generous Backer | 255
+
0
-

V Poslední beta verzi 2.0 se do snippetů nedostanou „šablonovské“ proměnné:

	{var $jmeno = 'pavel'}
	{$jmeno}
	{snippet jmena}
		{$jmeno} <- neexistuje
	{/snippet}

Což je velký problém, pokud je snippet umístěn v makru foreach

	{foreach [jirka, pavel, tomas] as $item}
		{snippet jmeno-$item}
			{$item} <- neexistuje
		{/snippet}
	{/foreach}
bojovyletoun
Člen | 667
+
0
-

Mám za to, že Do snippetů se dostanou jen globální proměnné šablony() .zde

Editoval bojovyletoun (30. 5. 2011 18:41)

medhi
Generous Backer | 255
+
0
-

bojovyletoun napsal(a):

Mám za to, že Do snippetů se dostanou jen globální proměnné šablony() .zde

Já vím, a to mi právě přijde jako chyba, protože pak nelze pracovat s tím foreachem.

David Grudl
Nette Core | 8145
+
0
-

Do snippetů se vždy dostali jen globální proměnné šablony. Že v betě jde {snippet jmeno-$item} je spíš bug. Doporučil bych jít touto cestou.

Patrik Votoček
Člen | 2221
+
0
-

Proč je to bug? {snippet jmeno-$item} pokud budu mít řádek v tabulce jako snippet příjde mi v payloadu jako jmeno-$item a můžu podle toho překreslit správnej řádek. Kdežto když použiju navrhované řešení tak jak poznám, který řádek mám překreslit?

David Grudl
Nette Core | 8145
+
0
-

medhi napsal(a):

Což je velký problém, pokud je snippet umístěn v makru foreach

Mělo by to fungovat, pokud to celé umístíš do velkého snippetu a ten dáš invalidovat.