Dynamicky parameter s filtrom

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

Ahoj,

snažím sa zadefinovať vstavaný router ( RouteList, Route) tak aby mi dokázal pracovať s dynamickým parametrom. Aktuálne mám router nejako takto, každopádne to nedokážem ani za svet rozbehať.

<?php
$router[] = new Route('[<locale=en [a-z]{2}>/]admin[/<cid>]/<presenter>/<action>/<id>[/<slug>]', array(
			'module' => 'Admin',
			'cid' => [
				Route::VALUE => null,
				Route::FILTER_TABLE => [
					'auth' => null
				],
				Route::FILTER_STRICT => true,
			],
			'presenter' => 'Dashboard',
			'action' => 'default',
			'id' => NULL

		));

		$router[] = new Route('[<locale=en [a-z]{2}>/]<presenter>/<action>/<id>[/<slug>]', array(
			'module' => 'Frontend',
			'presenter' => 'Homepage',
			'action' => 'default',
			'id' => NULL
		));
?>

snažím sa v podstate o to, že mám modul Admin, v ktorom mám v BasePresenteri nastavený persistent parameter $cid, ktorý sa mi tam naplní a na základe prihláseného admina dostanem práve hodnotu $cid

čiže link vyzerá nejako takto: /admin/103/dahsboard/ ↔ <modul>/<cid>/<presenter>/, problém je v tom, že toho admina musím nejako prihlásiť a odhlásiť. A na to mám v module admin presenter Auth, o ktorom si ale Routa myslí, že je $cid parameter. Tak sa to snažím nejako riešiť filtrom, no riešenie hore ma háže na ‚App\Modules\Frontend\Presenters\AdminPresenter‘ ak volám /admin/ pričom by ma malo hodiť na /admin/dashboard/ ( dashboard je v module admin a v prípade neprihláseného užívateľa redirectuje na /admin/auth/login )

Editoval xrep (9. 9. 2015 16:14)

xrep
Člen | 51
+
0
-

Vyriešené

<?php

$router[] = new Route('[<locale=en [a-z]{2}>/]admin/auth/<action>/<id>[/<slug>]', array(
			'module' => 'Admin',
			'presenter' => 'Auth',
			'action' => 'default',
			'id' => NULL

		));

		$router[] = new Route('[<locale=en [a-z]{2}>/]admin/<cid>/<presenter>/<action>/<id>[/<slug>]', array(
			'module' => 'Admin',
			'cid' => null,
			'presenter' => 'Dashboard',
			'action' => 'default',
			'id' => NULL

		));

?>