Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Edycja paginacji
Forum PHP.pl > Forum > Przedszkole
Majkelo23

Witam!

Bazuję na kodzie tej starej paginacji (chyba z phpbb2): http://forum.4programmers.net/PHP/120220-P...428724#id428724

I udało mi się to ostylizować, wszystko śmiga, ale za nic w świecie nie potrafię zrobić, aby ta paginacja działała w zakresie tylko 1 - 8.

Obecnie, jeśli mamy przykładowo 12 stron do wyświetlenia w tej paginacji i jesteśmy obecnie na ostatniej stronie (12-stej) to paginacja układa się następująco:

<< 1 2 3 ... 5 6 7 8 9 10 11 12 >>

Ja chciałbym, aby zawsze było te 8 stron, czyli powyższy przykład wyglądałby tak:

<< 5 6 7 8 9 10 11 12

czyli mamy 8 odnośników paginacji i żadnych kropek, podziałów w środku i innych cudów.
Efekt ma być podobny do tego, który można zaobserwować chociażby na youtube w paginacji filmów.

Czy ktoś byłby na tyle łaskaw i pomógł mi ten kod ukrócić tak, abym otrzymał zamierzony efekt?

Pozdrawiam!
kujol
Dopasuj pod siebie wink.gif

Kod
if ( $iloscStron >=12){
echo "<<";
$od = $iloscStron - 8;
for($numerki = $od; $numerki <=$iloscStron; $numerki++){
echo "[$numerki]";
}}

else {
echo "<<";
for($numerki = 1; $numerki <=$iloscStron; $numerki++){
echo "[$numerki]";
}}


Majkelo23
Niestety to mi zbytnio nie pomaga. Stworzenie 'głupiej/mało inteligentnej' paginacji nie jest takim problemem.

<< 1 2 3 4 5 6 7 8 >>

mając na uwadze w powyższym przykładzie, że jestem na 8 stronie, nadal maksymalną wartością jest 8 spośród wszystkich, a chciałbym aby minimalny odstęp od obecnej strony był równy 3 strony, czyli powyższy przykład powinien wyglądać ta:

<< 4 5 6 7 8 9 10 11 >>

I teraz, jak widać obecna strona jest mniej więcej w środku, czyli min. 3 pozycje 'zapasu' na prawą stronę i na lewą, z wyjątkiem jeśli paginacja się już kończy i jesteśmy rzeczywiście na ostatniej pozycji. Wtedy po prostu powinna zniknąć opcja przejścia dalej - >>

Nie potrafię tego wszystkiego posklejać ;/
esiek
Przedstawię ci teorię.


Weź pod uwage stronę którą masz wybraną np 8 i wyswietlasz 3 z lewej i 3 z prawej. dzieki temu masz ... 5 6 7 [8] 9 10 11 ... i wstawaisz instrukcje warunkowe jeżeli strona wybrana to 1 nie ma linku do poprzedniej itp. mam to zastosowane w swoim skrypcie ale bedac w pracy nie mam jak Ci go wkleić wink.gif
xavierek
ja bym to zrobił że nadzień dobry pobrał bym wartość ile mam w ogóle stron

potem podzielił na kilka ifów
$ilośc stron w bok

if 1 Stron

elseif ostatnia strona


elseif ((aktualna strona - ilość stron w bok)>0)
elseif ((aktualna strona + ilość stron w bok)<=$ilość stron)

a resztę się domysl
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.