Všechny URL na 1 presenter
- jashin
- Člen | 34
Zdravím,
řeším problém.
Mám aplikaci postavenou na Angularu tzn. si to routuje sama, ale nevím jak to udělat na straně nette. Mám zadané klíčové routy:
return array(
new Route('/', array(
'presenter' => 'Home',
'action' => 'default',
'module' => 'System'
)),
new Route('/system', array(
'presenter' => 'System',
'action' => 'default',
'module' => 'System'
)),
new Route('/templates/<action>', array(
'presenter' => 'Template',
'action' => 'default',
'module' => 'System'
)),
new Route('/services/<presenter>/<action>', array(
'presenter' => 'Home',
'action' => 'default',
'module' => 'System:Services'
)),
new Route('/logout', array(
'presenter' => 'System',
'action' => 'logout',
'module' => 'System'
))
Ty funguji bez problému, ale potřeboval bych přidat ještě jednu routu, která vezme cokoli co přijde v URL a nesplňuje to výše uvedené, tak to hodí na presenter: System, action: default, Module: System (tzn. ekvivalent routě /system), ale bez redirectu. Z hlediska SEO se tomů říká duplicitní URL tuším (ale jelikož je to administrace, tak mě to netrápí).
Díky moc za radu
Editoval jashin (16. 1. 2016 11:04)
- Hurass
- Člen | 114
Stačí přidat jen další route, úplně na konec toho pole:
new Route('/<param>', array(
'presenter' => 'System',
'action' => 'default',
'module' => 'System'
)),
A v presenteru System v metodě actionDefault a renderDefault budeš mít dostupnou proměnou $param:
public function actionDefault($param) {};
public function renderDefault($param) {};
- David Matějka
- Moderator | 6445
defaultni pattern pro parametry v masce je vse krom /,
takze staci upravit masku na neco jako /<param .+>