routování podle toho co je za otazníkem

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

Ahoj potřebuju vyřešit problém:

když mám url – http://www.example.cz/test/
použiji routu $router[] = new NRoute('test/', 'test:default');

když mám url – http://www.example.cz/test/qqq
použiji routu $router[] = new NRoute('test/<action>', 'qqq:default');

ale když mám url – http://www.example.cz/test/?…
jak by měla vypadat routa v tomto případě, aby se použil mnou definovaný presenter? a zachovala se správná funkčnost předešlých rout?

Editoval loov (9. 2. 2011 16:29)

Jan Tvrdík
Nette guru | 2595
+
0
-

Dokumentaci jsi četl?

error414-c
Člen | 45
+
0
-

ja bych to trochu upresnil

mam adresy ve tvaru

admin?pid=nastaveni

admin?pid=logout

pro tyhle adresy pouzivam routu

<?php
$router[] = new Route('admin/?<pid>', array(
    'presenter' => 'Admin',
    'action' => 'default',
    'pid' => 'home',
),( SimpleRouter::SECURED )
);
?>

Vzdy se zavola presenter „Admin“ a zavola akce „default“ ktera podle parametru pid vykona nejakou akci.
Takto je to reseno protoze se nette nasazovalo na stary projekt a prepisovani by zabralo hodne casu.

Ted se pridavaji nove funcke a ty chci uz delat v nette. Potreboval bych tedy vyjmout s tohodle pravidla pro routu napriklad „admin/?pid=uzivatele“.

Pro pid „uzivatele“ bych chtel zavolat akci „renderUzivatele“ a ne default.

Zkousel jsem to:

<?php

$router[] = new Route('admin/?pid=uzivatele', array(
    'presenter' => 'Admin',
    'action' => 'default',
),( SimpleRouter::SECURED )
);


$router[] = new Route('admin/?<pid>', array(
    'presenter' => 'Admin',
    'action' => 'default',
    'pid' => 'home',
),( SimpleRouter::SECURED )
);
?>

ale to nefunguje dobre. Pro adresu „admin/?pid=nastaveni“ odpovida routa

<?php
$router[] = new Route('admin/?pid=uzivatele', array(
    'presenter' => 'Admin',
    'action' => 'default',
),( SimpleRouter::SECURED )
);

?>

v dokumentaci jsem nenasel zpusob jak ty routy nastavit.

Editoval error414-c (9. 2. 2011 22:56)

Michalek
Člen | 211
+
0
-

admin/?<pid> nemá být admin/?pid=<pid>?

error414-c
Člen | 45
+
0
-

Michalek napsal(a):

admin/?<pid> nemá být admin/?pid=<pid>?

puvodne jsem mel admin/?pid=<pid>, konstrukci admin/?<pid> jsem zkousel v ramci testovani noveho chovani ale funguji me obe uplne stejne. Bude to asi tim ze odkazy jsou napsany rucne a ne pres makro link

Editoval error414-c (9. 2. 2011 23:51)