Jak je to s tim routovanim a odkazy…

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

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?

Jod
Člen | 701
+
0
-

Nevidím tam definované <module> a <section>

onge
Člen | 53
+
0
-

V Routeru? Module a section dostanu z URL, proto je mam jako povinne polozky – takze jsem nedefinoval defaulni hodnoty.

LM
Člen | 206
+
0
-

Jakou chybu?

David Grudl
Nette Core | 8218
+
0
-

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
+
0
-

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)