{include} a předání parametrů pomocí pole

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

Dá se nějak v latte předat pole parametrů do includované šablony?
Mám třeba pole [foo => 123, bar => 456] a v includované šabloně bych chtěl použít přímo {$foo}.
{include template.latte $params} mi to přepíše na CoreMacros::includeTemplate('template.latte', array($params), ...).
Jediné co mu fungovalo je

{? $template->setParameters($params)}
{include template.latte}

ale to je prasárna a přepisuje mi to proměnné v aktuální šabloně.

Editoval mkoubik (10. 4. 2014 17:28)

MartinitCZ
Člen | 580
+
0
-

Nejsem si jist, ale zkus:

{include template.latte, foo => $params['foo'], bar => $params['bar']}

EIDT: Tak v doc je to taky :) https://latte.nette.org/cs/tags#…

Editoval martinit (10. 4. 2014 17:38)

mkoubik
Člen | 728
+
0
-

Jasný, tohle znám, jde mi o to tam předat pole parametrů, který dopředu neznám (nedokážu je v šabloně vyjmenovat). Souvisí to s parsováním %node.array v PhpWriteru.
Podobný případ je <div n:attr="$attributes">, které také nefunguje (vypíše <div 0="key1:value1 key2:value2">).

janpecha
Backer | 75
+
0
-

Hele, pokud se nepletu, mělo by fungovat něco takového:

{include template.latte, (expand) $params}
mkoubik
Člen | 728
+
0
-

Super, tušil jsem že to nějak šlo. Díky.