Routování s Moduly a odkazy

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

Zdravím,
doufám že to není stupidní dotaz, už se v tom vrtám několik hodin :(

Potřebuju udělat Routy, tak, aby

  1. www.adresa.cz/admin/presenter/action, šlo na modul Admin
  2. www.adresa.cz/presenter/action, šlo na modul Front
  3. www.adresa.cz/url-adresa, šlo na modul Front:Default:default s parametrem url, pokud samozřejmě neexistuje takovýto presenter.

Routery mám takto a pochybuju že je to nejlepší řešení ( ale jede to ).

<?php
$router = $application->getRouter();

$router[] = new Route('index.php', array(
	'presenter' => 'Default',
	'action' => 'default',
), Route::ONE_WAY);


$router[] = new Route('<url>/', array(
  'module' => 'Front',
  'presenter' => 'Default',
	'action' => 'default',
));
$router[] = new Route('<presenter>/<action>/', array(
  'module' => 'Front',
  'presenter' => 'Default',
	'action' => 'default',
));


$router[] = new Route('Admin/<presenter>/<action>/', array(
  'module' => 'Admin',
  'presenter' => 'Default',
	'action' => 'default',
));

$router[] = new SimpleRouter('Default:default');
?>

Problém je v tom že se mě nedaří vytvořit z FrontModule @layoutu odkaz na AdminModule

<ul>
     {foreach $menuList as $menuItem}
       <li><a href="{plink Default:default $menuItem->url}">{$menuItem->name}</a></li>
     {/foreach}
       <li><a href="{plink Registrace:serviceteamu}">Registrace ST</a></li>
       <li><a href="{plink Registrace:ucastniku}">Registrace Účastníků</a></li>
       <li><a href="{plink Admin:Default:default}">Admin</a></li>
     </ul>

U toho admina to vypisuje chybu

error:%20Cannot%20load%20presenter%20'Front:Admin:Default',%20class%20'Front_Admin_DefaultPresenter'%20was%20not%20found%20in%20'C:\Program%20Files%20(x86)\Apache%20Software%20Foundation\Apache2.2\htdocs\obrok/app/FrontModule/AdminModule/presenters/DefaultPresenter.php'.

Nevíte jak nato?

Editoval elektricman (10. 3. 2010 19:29)

Mikulas Dite
Člen | 756
+
0
-

Na jiný modul se musíš odkazovat absolutně, tedy {plink ':Admin ...' dál je to stejné.
A tu Admin routu si dej před tu <presenter>/<action>, takhle by ti požadavek na admin model bez action (mohla být defaultní) chytla špatná routa.

//Edit: je hezčí psát to s uvozovkama, {plink 'target'}, než bez nich ;)

Editoval Mikulas Dite (10. 3. 2010 19:32)

elektricman
Člen | 29
+
0
-

dvojtečka před to,.. to mě nenapadlo :) Díky,..
Trochu sem popřeházel to pořadí a vypadá to že to šlape, jak má,..
Dík :)

Cifro
Člen | 245
+
0
-

Práve túto fíčuru s dvojtečkou na začiatku som dopisoval do dokumentácie. Tiež som mal s tým problém ako ty.

https://doc.nette.org/…n/presenters