Problém s Routami a dvěma moduly

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

Ahoj,
Potřeboval bych od Vás radu.
Moje aplikace má dva moduly Front a Admin, hraji si s routama a trochu jsem se zastavil na jednom problému :(

Mám tyhle dvě routy:

$router[] = new Route('<module (?!Front)[^/]+>/<presenter>/<action>/[<id>/]', 'Homepage:default');
$router[] = new Route('<presenter>/<action>/[<id>]', 'Front:Homepage:default');

Ta první zaručí přístup pokud se zavolá http://www.domain.tld/admin/ tam vše funguje správně. Problém je s druhou routou, která by měla být pro frontend.

Pokud ji nechám tak jak jí mám napsanou tak stránky fungují, ale adresa je ve formátu http://www.domain.tld/front.stranka/, ale já potřebuji formát http://www.domain.tld/stranka/

Obešel jsem to přes tohle nastavení, ale příjde mi to jako prasárna to takhle vypisovat :)

// routery pro FrontModule default stránky
$router[] = new Route('sluzby/<action>/', 'Front:Sluzby:default');
$router[] = new Route('stahnout/<action>/', 'Front:Stahnout:default');
$router[] = new Route('novinky/<action>/', 'Front:Novinky:default');
$router[] = new Route('stahnout/<action>/', 'Front:Stahnout:default');
$router[] = new Route('chyba/<action>/', 'Front:Chyba:nahlasit');
$router[] = new Route('doplnky/<action>/', 'Front:Doplnky:default');
$router[] = new Route('produkty/<action>/', 'Front:Produkty:default');
$router[] = new Route('dotaznik/<action>/', 'Front:Dotaznik:default');
$router[] = new Route('partneri/<action>/', 'Front:Partneri:default');
$router[] = new Route('fotogalerie/<action>/', 'Front:Fotogalerie:default');
$router[] = new Route('poptavka/<action>/', 'Front:Poptavka:default');
$router[] = new Route('hledat/<action>/', 'Front:Hledat:default');
$router[] = new Route('rss/<action>/', 'Front:Rss:default');
$router[] = new Route('api/<action>/<id>/', 'Front:Api:default');
//
$router[] = new Route('<module (?!Front)[^/]+>/<presenter>/<action>/[<id>/]', 'Homepage:default');
$router[] = new Route('<presenter>/<action>/[<id>]', 'Front:Homepage:default');

Určitě to půjde nějak univerzálněji, ale ještě jsem nepřišel jak to udělat :(

David Matějka
Moderator | 6445
+
0
-

pouzij RouteList se specifikovanym modulem

$router[] = $frontRoutes = new RouteList('Front');
$frontRoutes[] = new Route('<presenter>/<action>/[<id>]', 'Homepage:default');
vymak
Člen | 92
+
0
-

Díky za nakopnutí :)
Stálo mě to hodně nervů, ale už to funguje :)

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

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

Ještě jednou díky :)