Jak je to s tim routovanim a odkazy…
- onge
- Člen | 53
Kdyz si vytvorim router na zobrazovani clanku v sekcich (pokud je id clanku, vypisu clanek, pokud ne, vypisu seznam clanku v sekci), treba takhle:
$router[] = new Route('<module>/<section>/<article>', array(
'presenter' => 'SimplePage',
'action' => 'default',
'article' => NULL,
));
a chci na to udelat odkaz, jak na to? Pokud zkusim vypsat funkci link, tak mi to nic nevypise tak, ze dam link(:Modul:SimplePage:default, $id), coz by melo odkazovat na sekci (predstavoval bych si www.example.cz/modul/id), dostanu pouze chybu.
Pokud zapnu SimpleRouter, tak to jde, ovsem v neprilis hezke forme. Da se tohle udelat nejak jinak, nez napsanim vlastni Router tridy?
- David Grudl
- Nette Core | 8218
Při generování je vyžadován parametr <section>
, je
tento skutečně odkazem link(:Modul:SimplePage:default, $id)
definován?
- onge
- Člen | 53
aha, myslim, ze uz rozumim (pokud se pletu, opravte me prosim)…
Takze kdyz chci pouzivat nejake dalsi parametry, musim je definovat ve funkci render{View} v presenteru.
V tomto pripade tedy:
function renderDefault($section) {
// do something
}
a potom
$presenter->link(':Modul:SimplePage:default', 1);
vypise to co potrebuju a funguje to bez problemu…alespon zatim se mi to tak zda :)
Jediny problem na ktery narazim je, ze to funguje pouze kdyz mam v Route nadefinovano:
$router[] = new Route('modul/<section>/<article>', array(
'module' => 'Modul',
'presenter' => 'SimplePage',
'action' => 'default',
'article' => NULL,
));
tj. nejde mi predat si modul v URL, musim to nadefinovat takhle natvrdo, pak to slape. Kdyz tam necham <module> tak to routu nenajde. Ale mam revizi 108, zkusim jeste aktualizovat a uvidime…
EDIT: Ne, tak starsi verzi to neni, nefunguje stale
Editoval onge (18. 11. 2008 12:30)