Routování – nastavení rout pro moduly

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

Zdravím,

jsem uplný začátečník co se týče routování.

Mám ve své aplikaci Admin modul AdminModule.

V RouterFactory je od začátku routa

$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');

Potřebuju přidat další routu pro modul Admin

tu jsem udělal takto:

$router[] = new Route( 'admin', 'Admin:HomePage:default');

Ale když tuto routu přidám tak vyskočí chyba

Cannot load presenter 'Admin', class 'App\AdminPresenter'

pokud odstraním tu první routu

$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');

pak routa pro admin modul funguje, ale nelze se dostat na hlavní stranu.

Poradíte někdo jak to skloubit dohromady?

Navíc bych pro admin modul potřeboval routu upravit tak aby bylo možné předá předávat parametry

Mysteria
Člen | 797
+
0
-

Obecné routy musí být poslední, takže ta

$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default')

by měla být v tvém případě poslední a ta pro AdminModul nad ní.

ondrej256
Člen | 187
+
0
-

Mysteria napsal(a):

Obecné routy musí být poslední, takže ta

$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default')

by měla být v tvém případě poslední a ta pro AdminModul nad ní.

dík, ale nepomohlo to.
Routa pro admin modul vyhazuje chybu

Cannot load presenter 'Admin', class 'App\AdminPresenter'

když je uvedena routa pro admin modul samotná tak funguje.

mkoubik
Člen | 728
+
0
-

Napiš sem nastavení všech rout a adresu na kterou přistupuješ.

ondrej256
Člen | 187
+
0
-
class RouterFactory
{

	/**
	 * @return \Nette\Application\IRouter
	 */
	public function createRouter()
	{
		$router = new RouteList();
		$router[] = new Route( 'list', 'Admin:Product:list');
		$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
		return $router;
	}

}

V app adresáři mám normálně presenter, templates, …, ale také Adresář AdminModule (který obsahuje opět presenter, templates …)

Potřebuju nastavit routovani tak aby hlavni strana byla App/templates/HomePage/default, aby bylo možné navštěvovat všechny ostatní templaty ve složce App/templates, fungovalo předávání parametrů atd. (což mně fungovalo když se RouterFactory nacházela jen routa:

		$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');

A dále potřebuju aby se dalo dostat také do všech templatů Admin modulu tj. App/AdminModule. Například: App/AdminModule/template/HomePage/default