Feature requesty – widget, ifCurrent, Presenter::getParams

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

Ahoj,
vyvíjíme teď jednu komponentu a narazili jsme na pár omezení:

Widget makro neumožňuje do render metody poslat více parametrů. Když do šablony zapíšu:

{control my:menu param1 param2}

Tak to do render metody přijde jako jeden string:

'param1 param2'

Lepší by bylo, kdyby to počítalo s tím, že ta render metoda může mít dva vstupní parametry a podle nich se to zachovalo. Mohl bych to parsovat, ale kdyby si to Nette pořešilo samo, bylo by to lepší.

Dále: lepší práce s ifCurrent. Tento požadavek už může být zastaralý, zahlédl jsem, že David chystá přepsání této funkčnosti do $presenter->isCurrent(), aby to šlo kombinovat s dalšími podmínkami. Problém současné verze je v tom, že nelze makru předat proměnnou, která obsahuje pole parametrů. Ono se to přeloží, že do $this->link() se dostane array($parametry), tudíž pole v poli.

A na konec – Presenteru by se hodila metoda getParams(), která vrátí seznam všech parametrů. Nyní se to dá vytáhnout přes $presenter->request->params, ale tato zkratka by se hodila, když už má Presenter metodu getParam().

Co vy na to?

Editoval Ondřej Mirtes (26. 11. 2009 11:48)

David Grudl
Nette Core | 8170
+
0
-

Nefunguje {control my:menu param1, param2}?

ad getParams: getParam() (bez parametrů) je vrátí všechny, je to sice neintuitivní, ale vzhledem k tomu, že se to v podstatě nepoužívá…

Honza Kuchař
Člen | 1662
+
0
-

Nefunguje {control my:menu param1, param2}?

Používám, funguje.