Přesměrování z flashe a routy
- Martin Mates
- Člen | 179
Zdravím. Ve stránce mám flash (mapa), který podle růzých akcí generuje url a přesměrovává na ně. Např. kliknutí na kraj přesměruje na adresu: kraj=108&expert=realitni&presenter=Mapa. Funguje to ok.
Když ale zkusím přidat routu např.:
<?php
$router[] = new Route('<kraj>/<expert>/presenter=<presenter>', array(
'presenter' => 'Mapa',
'action' => 'default',
));
?>
Tak je presenter pořád homepage. Dostávám se na „108/realitni/presenter=homepage“. Moc nechápu, proč je presenter homepage, když adresa na kteoru flash přesměroval byla „kraj=108&expert=realitni&presenter=Mapa“. Any ideas? Další routa už je jen default z distribuce „<presenter>/<action>/<id>“.
Díky za nakopnutí!
- Martin Mates
- Člen | 179
Vyki napsal(a):
<?php $router[] = new Route('<kraj>/<expert> ? presenter=<presenter>', array( 'presenter' => 'Mapa', 'action' => 'default', )); ?>
Díky za odpověď, ale tohle nic neřeší. To „presenter=“ mám v routě jen pro testovací účel. Presenter je pořád Homepage namísto Mapa. :-/
- toka
- Člen | 253
A proč to nemáš takto?
...
$router[] = new Route('<kraj>/<expert>/<presenter>', array(
'presenter' => 'Mapa',
'action' => 'default',
));
..
Resp. pokud je tato routa jediná, tak bych klidně i presenter
v routě vynechal – bude-li vždy Mapa
.
Možná bych ještě uvedl default hodnoty pro kraj
a
expert
:
...
$router[] = new Route('<kraj>/<expert>/<presenter>', array(
'presenter' => 'Mapa',
'action' => 'default',
'kraj' => NULL,
'expert' => NULL,
));
..
- Martin Mates
- Člen | 179
Proboha kluci, to ale vůbec neřeší ten problém. Nejde o tvar routy, jde o to, proč je presenter Homepage i když je v url presenter=Mapa.
Když to dám „<kraj>/<expert>/<presenter>“, tak je v url akorát 108/realitni/homepage místo prázdna, které bych očekával pro presenter Mapa.
- Vyki
- Člen | 388
Zkoušel jsem to uměle podstrčit své aplikaci v tom query stringu a
zjistil jsem, že nette automaticky ořízne parametr presenter a action, a
přesměruje na defaultní stránku a v query stringu zachová pouze parametry,
které nette nezná. To znamená, že když do URL nacpu:
http://local.l/?kraj=108&expert=realitni&presenter=Mapa
přesměruje na mojí homepage – presenter, který mám jako výchozí, tedy
adresu http://local.l/?kraj=108&expert=realitni
. Z toho lze
vydedukovat, že pokud to nezpracuješ pomocí SimpleRoute
bude to
presenter i action v query stringu ignorovat, respektive ořezávat.
Editoval Vyki (7. 7. 2010 13:45)
- toka
- Člen | 253
Vyki napsal(a):
Zkoušel jsem to uměle podstrčit své aplikaci v tom query stringu a zjistil jsem, že nette automaticky ořízne parametr presenter a action, a přesměruje na defaultní stránku a v query stringu zachová pouze parametry, které nette nezná. To znamená, že když do URL nacpu:
http://local.l/?kraj=108&expert=realitni&presenter=Mapa
přesměruje na mojí homepage – presenter, který mám jako výchozí, tedy adresuhttp://local.l/?kraj=108&expert=realitni
.
A proto si myslím, že by už z toho Flashe měly „chodit“ adresy ve
tvaru /108/realitni/Mapa
resp. /108/realitni
.
- Martin Mates
- Člen | 179
Díky všem. Teď už je to jasné. Nevěděl jsem, že to Nette takto ořezává a chytá to default routa. Upravím to v tom Flashi. Ono by to vyřešilo hned na začátku, šlo spíš o to, že jsem nechápal, kde je problém.
Ještě jednou díky!