Problém s aplikováním stejné routy na různých stránkách

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

Zdravím,
mám nastavené routy a pěkně se mi generují friendly url na homepage pro odkaz na článek. Problém nastavá, když se má odkaz vygenerovat na stránce výpisu hledání http://blog.akcednes.cz/search/a ,tak už to žádná routa neodchytí. Díky

$router[] = new Route( 'search/<term>', array(
        'presenter' => 'Homepage',
        'action' => 'search' ) );

$router[] = new Route( '<category>/<title>', array(
        'presenter' => 'Homepage',
        'action' => 'article' ) );

$router[] = new Route( '<category>', array(
        'presenter' => 'Homepage',
        'action' => 'default' ) );



$router[] = new Route( '<presenter>/<action>[/<id>]', 'Homepage:default' );

Editoval JaroslavRamba (19. 8. 2013 23:55)

enumag
Člen | 2118
+
0
-

Jak vypadá ten odkaz který se nechytí a která routa ho má chytit?

Jan Mikeš
Člen | 771
+
0
-

Mam obavy, ze

$router[] = new Route( '<presenter>/<action>[/<id>]', 'Homepage:default' );

se ti neprovede nikdy, protoze router se k teto route nedostane. postupuje v poli od nejdrive deklarovanych az po pozdejsi a vsechny obecne pozadavky ti pojme routa

$router[] = new Route( '<category>', array(
        'presenter' => 'Homepage',
        'action' => 'default' ) );

Predstav si odkaz RandomPresenter:default, budes ocekavat neco /random/ to se ale nestane, protoze routa se prelozi jako Presenter->homepage, action->default, category->random

To same pokud by jsi chtel RandomPresenter:RandomAction, tak se ti prelozi do 2. routy – presenter->homepage, action->article, category->random, title->random

Mas routy moc obecne a musis je zkonkretizovat (stejne jako to mas u pripadu search, tam mas search/ napevno, coz je spravne), jinak ti to fungovat nebude.

Edit: Dale bych ti doporucil pouzit filtry, nebo si v DB vytvorit sloupec pro url adresy, odkaz http://blog.akcednes.cz/…ruj-ameri-an- neni uplne ok (pomlcka na konci, vynechana pismenka)

Edit2: vypni si redscreen na produkci, nebo pokud sdilis projekt, da se tam toho spoustu vycist, predejdes tim neprijemnostem

Editoval Lexi (20. 8. 2013 9:16)

JaroslavRamba
Člen | 20
+
0
-

Díky hoši za rady, moc pomohly. Vyřešeno.