Latte pole v parametrech komponenty

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

Ahoj, hraju si s vlastními makry do Latte u komponent a narazil jsem na jeden problém. Nevím, jestli něco dělám špatně já (velmi pravděpodobnější varianta :-) nebo je to chybka v Nette, každopádně, když mám v Latte šablonu a mám v ní následující kód:

{control test,[1,2,3]}
{control test,[1,2,3,'key' => 'value']}
{control test:big,[1,2,3]}
{control test:big,[1,2,3,'key' => 'value']}

Tak se mi to zkompiluje do:

$_ctrl->render(array(1,2,3));
$_ctrl->render(array(array(1,2,3,'key' => 'value')));
$_ctrl->renderBig(array(1,2,3));
$_ctrl->renderBig(array(array(1,2,3,'key' => 'value')));

Proč prosím když mám renderovací parametr jako normální pole, tak se parametry předávají jako array(…) a když tam mám hashové pole, tak to jde jako array(array(…)) ?
Dělá mi to jak u normálního renderu, i pokud si nastavím renderovací mód přes dvojtečku (viz příklad výše).

EDIT:

Ještě to zkouším a dělá to takhle jenom u toho makra control, když mám třeba v Latte:

{var $variable1 = [1,2,3]}
{var $variable2 = [1,2,3,'key' => 'value']}

Tak se to zkompiluje na podle mne správné:

$variable1 = array(1,2,3);
$variable2 = array(1,2,3,'key' => 'value');

Editoval Bilbo (30. 7. 2012 22:47)

jtousek
Člen | 951
+
0
-

Smaž ty hranaté závorky.

{control test,1,2,3}

EDIT: Aha, to asi nebude to co hledáš. :-D Myslím, že tohle je brouk.

Editoval jtousek (30. 7. 2012 23:14)

Bilbo
Člen | 16
+
0
-

Tak jsem na to asi přišel, kdyby to někoho zajímalo, když se to zapíše bez hranatých závorek jako:

{control test,'key' => 'value','key2' => 'value2'}

Tak se to správně přeloží na:

$_ctrl->render(array('key' => 'value','key2' => 'value2'));