Routa se matchne, ale presmeruje se na „nehezkou url“ verzi

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

Ahoj, mam routu:

<?php
$router[] = new Route('<presenter clanky>/<page>', array(
    'action' => 'default',
    'page' => 1
));
?>
  • matchne se dobre, ale presmeruje me to na „/?page=1“ (clankovy presenter mam defaultni).

Toto naopak funguje, ale neni to cisty „nette“ zapis:

<?php
$router[] = new Route('/clanky/<page>', array(
    'presenter' => 'Articles',
    'action' => 'default',
));
?>

Jeste mam prekladove tabulky, ale ty by nemely delat problem:

<?php
Route::setStyleProperty('presenter', Route::FILTER_TABLE, array(
        'uzivatele' => 'Users',
	'pravidla' => 'Rules',
	'vyhledavani' => 'Search',
	'clanky' => 'Articles',
	'clanek' => 'Articles'
));

Route::setStyleProperty('action', Route::FILTER_TABLE, array(
        'uzivatele' => 'users',
        'register' => 'registrace',
        'neprihlasen' => 'notlogged'
));
?>

Nevi nekdo, jak zprovoznit prvni routu? Ostatni routy mam napsane skoro obdobne a funguji, diky

  • Jeste jsem ted zjistil, ze kdyz smazu z prekladove tabulky radek s indexem „clanek“

a obdobnou routu:

<?php
$router[] = new Route('<presenter clanek>/<url>', array(
    'url' => NULL,
    'action' => 'detail'
));
?>

tak to jede, ale porad to problem neresi.

Editoval MelkorNemesis (1. 2. 2010 0:35)

Vyki
Člen | 388
+
0
-
<?php
$router[] = new Route('<presenter>/<page>', array(
    'presenter' => 'clanky',
    'action' => 'default',
    'page' => 1
));
?>

To také neběží jak má?
//EDIT A jak tvoříš odkaz? {link clanky:default page=>2} ??
Zkus místo parametru page použít parametr id. Jenom to prostě přejmenuj.

Editoval Vyki (1. 2. 2010 9:15)

MelkorNemesis
Člen | 36
+
0
-

no odkaz delam {link Articles: ‚page‘ ⇒ $i}

zkusim to podle tebe

MelkorNemesis
Člen | 36
+
0
-
<?php
$router[] = new Route('<presenter clanky>/<id [0-9]+>', array(
    'action' => 'default',
    'id' => 1
));
?>

prehodil sem to za id a nic to nedela, urcite tam bude nejake problem s tou prekladovou tabulkou, fakt kdyz tu routu na jedne clanek + jeji preklad z presenter tabulky smazu tak to jede. Ale tim ze zprovoznim jedno z nefunkcnim druhe si nepomuzu.

Editoval MelkorNemesis (1. 2. 2010 11:11)

Ola
Člen | 385
+
0
-

Myslím, že důvod, proč to nejede je úplně jednoduchý :) aneb clanky vs Clanky vs Articles :)

Editoval Ola (1. 2. 2010 14:04)

Ondřej Mirtes
Člen | 1536
+
0
-

Odkazy určitě vytvářet jako {link Articles: ...}, něco jiného je nesmysl. A routu zkus ve tvaru:

$router[] = new Route('<presenter clanek|clanky>/<id [0-9]+>', array(
    'action' => 'default',
));
Ola
Člen | 385
+
0
-