#1 6. 2. 2010 22:58

toka
Nette guru
Místo: Kostelec nad Orlicí
Registrovaný: 5. 8. 2009
Příspěvky: 210

Route pro Frontend i Administraci

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


$this->terminate();

http://twitter.com/TomasKavalek

Offline

 

#2 7. 2. 2010 0:01

toka
Nette guru
Místo: Kostelec nad Orlicí
Registrovaný: 5. 8. 2009
Příspěvky: 210

Re: Route pro Frontend i Administraci

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


$this->terminate();

http://twitter.com/TomasKavalek

Offline

 

#3 4. 7. 2010 12:45

Felix
Nový člen
Registrovaný: 4. 7. 2010
Příspěvky: 3

Re: Route pro Frontend i Administraci

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)

Offline

 

#4 4. 7. 2010 13:16

sodae
Nette Evangelist
Místo: Rád bych na pláži :)
Registrovaný: 8. 1. 2009
Příspěvky: 230
Web

Re: Route pro Frontend i Administraci

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


Nette Jabber Room – nette@conf.netlab.cz , všichni jste vítání

Twitter: http://twitter.com/MartinSadovy

Offline

 

Zápatí