Problém s Routami a dvěma moduly
- vymak
- Člen | 92
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
pouzij RouteList se specifikovanym modulem
$router[] = $frontRoutes = new RouteList('Front');
$frontRoutes[] = new Route('<presenter>/<action>/[<id>]', 'Homepage:default');
- vymak
- Člen | 92
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 :)