implementace AdminModule – problem s MultiRoute asi

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

Dobrý den, snažím se pro svojí testovací aplikaci vytvořit administraci.
Podle ukázky z NetteFramework-2.0dev-PHP5.3\examples\Modules-Usage
jsem si přidal do bootstrap.php

use Nette\Application\MultiRouter;
/* AdminModule */
$router[] = $adminRouter = new MultiRouter('Admin');
$adminRouter[] = new Route('admin/<presenter>/<action>', 'Default:default');

(to proto aby mi fungovala url ve tvaru test.dev/Admin )

dále jsem vytvořil tyto soubory

app/AdminModule/

app/AdminModule/presenters/
app/AdminModule/presenters/AuthPresenter.php
app/AdminModule/presenters/BasePresenter.php
app/AdminModule/presenters/DefaultPresenter.php

app/AdminModule/templates/
app/AdminModule/templates/Auth/
app/AdminModule/templates/Auth/default.latte
app/AdminModule/templates/@layout.latte
app/AdminModule/templates/Default.default.latte

libs/acl/security/acl.php

nerozumím formátu souboru Default.default.latte, proč je pojmenovaný zrovna takto.
a potom soubor acl.php by asi klidně mohl být v AdminModule/ a bylo by to i logické?!
ve složce security/ by to asi také být zanořeno nemuselo, ale možná k tomu dospěju časem proč tomu tak je.

Obsah presenterů mám podobný dle návodu staticke ACL ikdyž malinko jsem si to upravil podle sebe.

Netvořil jsem třídu LoginForm, ale form sem vložil rovnou do třídy AuthPresenter, zatím se to snažím dělat co nejjednodušší, hlavně to rozchodit a ladit to mohu potom.

Potom využívám předpřipravenou třídu ze sandboxu app/models/UsersModel.php
je mnohem jednodušší, dělá prakticky to samé a hlavně když už tam je tak proč jí přepisovat.

Teď bych očekával, že pod
test.dev/Admin
se načte @layout.latte a do ní se includne Default.default.latte nebo Auth/default.latte?!To se uvidí:p

nicméně když zadám test.dev/Admin tak mi vyskočí debugger

Nette\Application\BadRequestException #404
Cannot load presenter 'Admin', class 'AdminPresenter' was not found in 'C:\web\www\test.dev\www/../app/presenters/AdminPresenter.php'.

to znamená, že mi pravděpodobně nějak nezafungoval ten MultiRouter ze začátku a snaží se to najít AdminPresenter.php, který tam samozřejmě není.

Proto prosím nevíte jak to upravit? Děkuji.

Jan Tvrdík
Nette guru | 2595
+
0
-
  1. U route závisí na pořadí. To, co jsi do bootstrapu přidal mělo přijít nad tu routu, která tam je výchozí.
  2. Default.default.latte → Presenter default, akce (⇒ pohled) default.
muflix
Člen | 92
+
0
-

supr díky moc už to funguje :-)