Routa mezi moduly se vygeneruje na jiný modul
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- akadlec
 - Člen | 1326
 
Mám definovanou routu pro oauth ve frontend prostředí takto:
		$list[] = new Routers\Route('//www.%domain%/[!<locale [a-z]{2,4}>/]oauth-[!<type=google>]', array(
			'module'		=> 'Frontend',
			'presenter'		=> 'Sign',
			'action'		=> 'oauth',
			NULL			=> array(
				Routers\Route::FILTER_IN	=> function (array $params) {
					$params['do'] = $params['type'] . 'Login-response';
					unset($params['type']);
					return $params;
				},
				Routers\Route::FILTER_OUT	=> function (array $params) {
					if (empty($params['do']) || !preg_match('~^([^-]+)Login\\-response$~', $params['do'], $m)) {
						return NULL;
					}
					$params['type'] = Utils\Strings::lower($m[1]);
					unset($params['do']);
					return $params;
				}
			),
			'locale'		=> array(
				Routers\Route::VALUE	=> 'en',
				'fixity'				=> Routers\Route::CONSTANT,
			)
		));
v adminu chcu pak tu routu vykreslit do šablony a když udělám:
{link //:Account:Frontend:Sign:oauth}
Tak se mě vygeneruje tvar do adminu což není zrovna ok ani dle definice te routy. Co dělám špatně?

- David Matějka
 - Moderator | 6445
 
Pouzij route list. Ten module parametr je pouze defaultni
hodnota (stejne jako s ostatnimi parametry). Slo by to teda asi nejak zafixovat
pomoci Nette\Application\Route::CONSTANT do metadat module
parametru, ale pak by ti to neumoznilo pouzit jiny modul nez Frontend (a tedy
ani ne zanoreny)
Editoval matej21 (6. 10. 2014 18:13)

- David Matějka
 - Moderator | 6445
 
$list[] = $frontRouter = new RouteList('Frontend');
$frontRouter[] = new Route('....', array(stejne, jen vynechej module));
tim dojde k prefixovani modulu „Frontend“ pro vsechny routy
Editoval matej21 (7. 10. 2014 12:15)