VisualPaginator s úplným odkazom na prvú stránku

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

Ahojte,

V komponente VisualPaginator potrebujem spraviť aby odkaz na prvú stránku [1] mal v sebe ?paging-page=# kde # je číslo ktoré si tam vždy dosádza. Toto sa ale nedeje pri odkaze na prvú stránku. Mám tušenie že to môže mať niečo s odstránením URL duality www.example.com/list/?page=1 a www.example.com/list/ kde tieto stránky sú identické, no majú dve URL.

Čo ale potrebujem spraviť je aby tam paginator to ?page=1 naozaj dával, a keď sa niekto dostane na stránku www.example.com/list/ tak ho to presmeruje na www.example.com/list/?page=1

Vďaka za nápady.

Honza Kuchař
Člen | 1662
+
0
-

v presenter startup() kontrolovat zda je parametr page? Pokud ne → redirect?

vlki
Člen | 218
+
0
-

honzakuchar napsal(a):

v presenter startup() kontrolovat zda je parametr page? Pokud ne → redirect?

Hm, to asi nepomůže, protože parametr page se ztrácí kvůli kanonikalizaci a ta v případě persistentního parametru page v komponentě parametr page úplně z url odstraní, pokud bude mít stejnou hodnotu jako nastavená výchozí (teď tedy číslo 1).

Vše, co je nutné udělat pro takové chování, je nastavit výchozí hodnotu persistentního parametru page ve VisualPaginatoru na NULL. V metodě loadState ještě přidat nějakou podmínku, že pokud se page rovná NULL, tak ho nastavit na 1. S poděděním by to mohlo jít i docela čistě.

Zajímalo by mě ale, proč je takové chování vyžadované. Vždyť čím míň parametrů v url, tím lépe, ne?:)

fiso
Člen | 32
+
0
-

vlki vďaka, funguje to perfektne :)

Prečo to robím? Mám v Javascripte spravené zvýrazňovanie aktuálnych odkazov, a ak by to bolo po starom, tak by sa zvýraznil odkaz v menu ale aj v stránkovadle. Nechcem to robiť v PHP, lebo mi to pripadá strašne nečisté mať v template všade {ifCurrent …} Možno si na to ale spravím filter, no pripadalo mi to príliš komplikované.