Route pro Frontend i Administraci
- toka
- Člen | 253
Zdravím,
nějak tu zápasím s routama. Mám v bootstrap.php
následující kód:
// Admin
$router[] = new Route('administrace/<presenter>/<action>', array(
'module' => 'IS',
'presenter' => 'Default',
'action' => 'default',
));
// Front
$router[] = new Route('index.php', array(
'presenter' => 'Default',
'action' => 'default',
), Route::ONE_WAY);
$router[] = new Route('<action>', array(
'presenter' => 'Default',
'action' => 'default',
));
Problém je v tom, že mám administraci v modulu a frontend nikoliv.
A pokud tuto routu použiji, tak se mi podaří dostat do administrace, ale
např. v případě odhlášení, kdy by mělo pak proběhnout
redirect(':Default:default')
, se dostanu do smyčky. A dokonce
odkaz, který má vést na titulní stránku frontendu, generovaný jako
{link :Default:default}
se překládá na http://www.neco.cz/administrace. Ještě bych zmínil, že
uvedený modul pro administraci nemám přímo ve složce app
, ale
dodržuji následující strukturu:
/app
+- models
| +- ISModule
+- presenters
| +- ISModule
+- templates
| +- ISModule
+ ...
Doufám, že toto členění není špatné a ničemu nevadí. Prosím o radu, jak správně routovat jak frontend, tak administraci, a nebo používat route jen na frontend a na administraci nikoliv, což si ale myslím, že je nereálné.
- Felix
- Nette Core | 1196
Mam adresarovou strukturu:
presenters/
FrontModule/
HomepagePresenter.php
templates/
@layout.phtml
Homepage.default.phtml
AdminModule/
AuthPresenter.php
templates/
...
Akorat nette mi porad hazi hlasku ..
Cannot load presenter ‚Admin:Default‘, class ‚Admin_DefaultPresenter‘ was not found in ‚/home/xxxxxxxx/document_root/../app/AdminModule/presenters/DefaultPresenter.php‘.
Tzn, ze musim vytvori ve slozce app slozku AdminModule a pridat tam jak presenters tak templates? Chtel bych to mit vsechno v presenters a jen rozlisovat Moduly(Front,Back) a to same v templates..
Routy mam takto:
<?php
$router[] = new Route('admin/<action>/<id>', array(
'module' => 'Admin',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL,
));
$router[] = new Route('<presenter>/<action>/<id>', array(
'module' = > 'User',
'presenter' => 'Default',
'action' => 'default',
'id' => NULL,
));
?>
Poradte prosi ;-) Diky…
Editoval Felix (4. 7. 2010 12:46)