Admin module v aplikaci bez modulů
- Šaman
- Člen | 2659
Ahoj, mám aplikaci která nepoužívala moduly, ale bylo potřeba přidat administrační rozhraní (nazývané BackOffice). Dlouho jsem pátral po tom, jak to naroutovat, abych nemusel původní bezmodulovou aplikaci přepisovat na FrontModule a nakonec mi funguje toto:
<?php
$router[] = new Route('index.php', array(
'presenter' => 'Default',
'action' => 'default',
), Route::ONE_WAY);
// Admins
$router[] = new Route('backoffice/<presenter>/<action>/<id>', array(
'module' => 'Backoffice',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL,
), Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>/<id>', array(
'presenter' => 'Default',
'action' => 'krok1',
'id' => NULL,
));
?>
Akceptuje to (jednosměrně) adresu:
http://app/backoffice/default/default/
, ale přeíše mi to na:
http://app/backoffice.default/default/
Pokud zadám jen adresu: app
, tak mi to správně zobrazí
http://app/default/krok1/
uživatelského rozhraní. (Pokud
zruším jednosměrku u BackOffice, tak mi to z app
přepíše na
http://app/backoffice/default/krok1/
)
Otázka zní:
- Je to správně, nebo to funguje jen náhodou? (Ve dvou vláknech tu někdo zmiňoval, že buď moduly, nebo bez nich. Že s hybridy nefunguje routování.)
- Dá se to upravit tak, aby se mi generovalo
http://app/backoffice.default/default/
s lomítkem místo tečky?
Díky.
- Honza Kuchař
- Člen | 1662
Sice nevím přesně co potřebuješ, ale na zracovávání rout, má vliv i pořadí. Takže můžeš laborovat i s ním.
Editoval honzakuchar (15. 4. 2010 12:28)
- Šaman
- Člen | 2659
srigi napsal(a):
Alikacku mozes predsa napisat tak, ze je „naplocho“, iba backoffice bude modul.
Jj, o to se snažím. Jak to pak ale naroutovat? U front části (která
není v modulu) nemohu vyplnit default module. A pokud to routuju Admin část
bez modifikátoru ONE_WAY, tak mi všechno routuje na Admin modul. I když
v adrese není ve tvaru
admin/<presenter>/<action>/<id>
, ale jen
<presenter>/<action>/<id>
.
- toka
- Člen | 253
Šaman napsal(a):
Co je problém popisuje Toka tady a GmVasek tady.
Řešení tam ale není, resp. oba to nakonec vyřešili přepsáním na FrontModule a AdminModule. Mě to funguje i bez toho, ale nevím, jestli je to čisté.
Řešení tam je :-) Je tam napsáno, že jsem to předělal do modulů oboje. Jednak se mi v tom i nyní lépe orientuje, protože je vše v modulech, a ne pouze část, a druhá věc je to, že jsem to za nic na světě nedokázal rozjet tak, aby fungovala administrace jako modul a front bez modulu.
- Petr Stribny
- Člen | 16
Taky jsem řešil stejnou věc. A nedokážu si představit (strávil jsem nad tím dost času), že by to bez toho druhého modulu fungovalo správně. I když se ti podaří vyřešit mapování URL na presentery, tak ti bude podle mě haprovat generování odkazů.