routování a moduly – všechny moduly v jedné routě
- t-lama
- Člen | 3
Zdravím,
potřeboval bych pomoci s routováním – proč nefunguje tato routa?
$router[] = new Route('//[<module>.]web.<lang cz|sk>/<presenter>/<action>[/<id>]', array(
'module' => 'Www',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL
));
Dokud odkazuji v rámci jednoho modulu, je vše v pořádku, ale jakmile chci odkázat do modulu jiného, je to problém (error: No route for…).
Díky předem za odpovědi :-)
- t-lama
- Člen | 3
Aha, to mě nenapadlo. lang
je označen jako perzistentní
v BasePresenteru každého modulu.
Upravil jsem odkaz na
<a n:href=":Modul:Default:, $lang">
a fci renderDefault tak, aby přijala parametr lang
a funguje
to :-)
Neexistuje nějaká lepší cesta, jak udělat parametr perzistentní i mezi moduly?
- Panda
- Člen | 569
Ta nejčistší: udělat $lang
persistentní v
BasePresenter
u, ze kterého budou dědit
BasePresenter
y každého modulu. Jednoduše řečeno: společný
předek všech presenterů ze všech modulů. Nette kontroluje, kde je
persistentní parametr definovaný a pokud mají dva presentery společného
předka se stejným parametrem, tak se předá.