Persistentni parametry a redirect

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

Zdravim,
mam takovy problem.

  1. I kdyz mam nejaky parametr persistenti a volam nejakou akci, ktera meni jeho stav, tak tento parametr musi byt v akci definovan. To by mohlo byt jeste logicke.
  2. Z bodu 1 vyplyva, ze kdyz mam akci prijimajici dva perzistentni parametry actionDefault($param1, $param2 = null) tak kdyz predam v link jen $param2, protoze mu menim stav, tak dojde vzdy k presmerovani. Nebot pri volani linku

link default, param2 => neco2 se vytvori url ?param2=neco2&param1=neco1 ale ta se presmeruje na ?param1=neco1&param2=neco2

Lze tohle nejak resit?
Dekuji

Editace: ted jsem si uvedomil, ze paramtr musi byt definovany, jen kdyz volam link default, neco1, neco2, ale nemusi byt definovany kdyz volam link, 'param1' => neco1, 'param2' => neco2.
Jeste zajimavejsi je, ze muzu volat link default, neco1, 'param2' => neco2 a jeste vic zajimave, ze muzu volat link default, 'param2' => neco2, neco1. Jsem ted z toho trochu jelen.
Kazdopadne kdyz se vratim k tomu redirektu, tak vzdy kdyz zavolam link link default, 'param2' => neco2 a i kdyz nemam v akci definovane parametry (protoze jsou perzistentni), tak se mi udela redirekt a zmeni se poradi, protoze volani link vygeneruje ?param2=neco2&param1=neco1 ale nette se rozhodne ze spravne poradi je ?param1=neco1&param2=neco2 :(

persistentni parametry mam definovane pres getPersistentParams()

Nette 0.9.3, PHP 5.2.8

Editoval fenix (18. 3. 2010 19:21)

Honza Kuchař
Člen | 1662
+
0
-

V čem je problém? Tak se přesměruje… Tomu se říká kanonikalizace. https://en.wikipedia.org/…nicalization

bazo
Člen | 620
+
0
-

da sa to vypnut $this->autoCanonicalize = false;

Majkl578
Moderator | 1364
+
0
-

honzakuchar napsal(a):

Tomu se říká kanonikalizace. https://en.wikipedia.org/…nicalization

Je to kanonizace.

fenix: Nevidím v tom žádný problém, opravdu ti záleží na pořadí parametru v url?

Editoval Majkl578 (18. 3. 2010 19:20)

fenix
Člen | 16
+
0
-

Majkl578 napsal(a):

honzakuchar napsal(a):

Tomu se říká kanonikalizace. https://en.wikipedia.org/…nicalization

Je to kanonizace.

fenix: Nevidím v tom žádný problém, opravdu ti záleží na pořadí parametru v url?

Me nezalezi na poradi parametru, ale vadi mi ten redirekt. Navic v nejake casti potrebuji kanonikalizaci kvuli seo. Nebo se tohle na routy vubec nevztahuje?

fenix
Člen | 16
+
0
-

Kdyz nad tim premyslim, tak podle me by se v tomto pripade o spravne razeni parametru melo postarat nette. Tim padem by se zbytecne neplitval redirekt.

Jedina moznost, jak toho dosahnout je uvest vsechny parametry, tudiz i perzistentni, kterym ale neni mnenena hodnota. Tim padem ale postradaji persistentni parametry smysl…

Honza Kuchař
Člen | 1662
+
0
-

fakt je, že je tam ten redirect zbytečný, protože nette mohlo vyplivnout link už se správným pořadím. Ale to je spíše feature request.

fenix
Člen | 16
+
0
-

honzakuchar napsal(a):

fakt je, že je tam ten redirect zbytečný, protože nette mohlo vyplivnout link už se správným pořadím. Ale to je spíše feature request.

Vzhledem k tomu, ze Nette umi kanonikalizovat, tak musi umet spravne seradit parametry :-).

Jedinny duvod, proc to nedela pri vytvareni linku muze byt vykonova ztrata. Ovsem tomu zase tolik neverim, porotoze teoreticky to stejne musi delat pri kazdem requestu. K tomuto by se ale musel vyjadrit David.