Route pro Frontend i Administraci

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
toka
Člen | 253
+
0
-

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é.

toka
Člen | 253
+
0
-

Předělal jsem na moduly vše a už to šlape :-)

Felix
Nette Core | 1196
+
0
-

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)

sodae
Nette Evangelist | 250
+
0
-

Felix: ono je to jedno v jaké složce máš presentery (pokud máš robot loader), ale ty vůbec nemáš presenter (třídu) Admin_DefaultPresenter tak proto ti to hlásí, ale pokud ho máš a ono to furt hlásí zkus smazat temp