Jak rozdělit prezentery do sekcí
- lutor
- Člen | 27
Zdravím, jako začátečník s Netet jsem narazil na (pro mě zatím
neřešitelný) problém – mám web, klasicky front-end a administrace,
avšak v administraci bych potřeboval ještě o jednu úrověň navíc
(nevím jak to přesně popsat) – nyní mám routu
/admin/<presenter>/<action>/<id>
, (takže
s touto routou mám odkazy jako /admin/galerie/edit/5
) avšak
jelikož bude administrace členěna do několika sekcí (web, galerie,…), tak
nevím jak ty samotné sekce reprezentovat – ja udělat, abych mohl každou
tu sekci ještě nějak rozčlenit (aby byly odkazy ve tvaru
/admin/sekce/prezenter/akce/id
) prostě jakoby ještě jednu
úroveň navíc. Představoval bych si to pak tak, že při URL /admin/sekce/ by
se použil nějaký výchozí presenter nebo něco (třeba již výše
zmiňované Vystavy).
Zkoušel jsem nějak vytvořit vhodný formát routy, ale bez úspěchu. A mít to bez sekci s tím, že by byly prezentery GalerieVystavy, GalerieVernisaze, (zkrátka tvaru SekcePrezenter) ale to se mi moc nelíbí. Raději bych nějakou pěknou strukturu, ať je to pěkně pohromadě. Neporadil by někdo jak to udělat?
Díky!
- iguana007
- Člen | 970
Já to mám řešené takto:
$router = $application->getRouter();
$router[] = new Route('admin/<presenter>/<action>/<id>/<id2>', array(
'module' => 'Admin',
'presenter' => 'Base',
'action' => 'default',
'id' => NULL,
'id2' => NULL,
));
$router[] = new Route('<presenter>/<action>/<filtr>/<id>/<id2>', array(
'module' => 'Front',
'presenter' => 'Homepage',
'action' => 'default',
'filtr' => NULL,
'id' => NULL,
'id2' => NULL,
));
Struktura aplikace potom je:
app/_common/BasePresenter.php
app/FrontModule/presenters
app/AdminModule/presenters
app/bootstrap.php
atd...
- lutor
- Člen | 27
Jo, tak nakonec se mi to podařilo rozchodit přes vnořené moduly (AdminModule a v něm další moduly a v nich presentery) ale ve finále jsem došel ke stejnému závěru – není to vlastně ani potřeba a je to moc komplikované :-) Takže nakonec to jsou obyč. presentery, žádné moduly/spešl. sekce apod. Každopádně díky všem za rady.