Routa pro více modulů, kde má každý ‚admin‘ submodul
- Robyer
- Člen | 74
Zdravím,
mám situaci, kdy mám několik modulů (forum, wiki, clanky,…) a u každého chci mít administraci – tzn. řekněme submodul admin. Jak napsat routu aby obsáhla všechny moduly i se submoduly?
Pro frontend mám něco takového:
$router[] = new Route("//<module>.domena.cz/<presenter>/<action>/<id>", array(
'module' => 'Homepage',
'presenter' => 'Home',
'action' => 'default',
'id' => null,
));
Jak tam ale přidat ten submodul? Kdybych to psal pro každou zvlášť, tak bych to měl takto:
$router[] = new Route("//forum.domena.cz/admin/<presenter>/<action>/<id>", array(
'module' => 'Forum:Admin',
'presenter' => 'home',
'action' => 'default',
'id' => null,
));
$router[] = new Route("//wiki.domena.cz/admin/<presenter>/<action>/<id>", array(
'module' => 'Wiki:Admin',
'presenter' => 'home',
'action' => 'default',
'id' => null,
));
...
Jde to nějak napsat jedinou routou?
Díky za případné odpovědi :)
Editoval Robyer (6. 8. 2011 23:45)
- Filip Procházka
- Moderator | 4668
Mohlo by to jít takto:
$router[] = $admin = new RouteList('Admin');
$admin[] = new Route("//<module>.domena.cz/admin/<presenter>/<action>/<id>", array(
'presenter' => 'Home',
'action' => 'default',
'id' => null,
));
- Robyer
- Člen | 74
S Route::FILTER_TABLE administrace fungovala, ale ta routa se brala jako „výchozí“ pro všechny požadavky a k routě frontendu už se nic nedostalo.
Na druhou stranu, mohl bych nějak jednoduše určit, že ta frontend routa
$router[] = new Route("//<module>.domena.cz/<presenter>/<action>/<id>", array(
'module' => 'Homepage',
'presenter' => 'Home',
'action' => 'default',
'id' => null,
));
by ignorovala presenter s názvem „admin“, takže by se přeskočilo na
další (tzn. admin routu)?
Zkoušel jsem tam nějak nacpat regulární výraz, ale zřejmě špatně.