Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Edycja paginacji
Majkelo23
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

Ostrzeżenie: (0%)
-----



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!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kujol
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

Ostrzeżenie: (0%)
-----


Dopasuj pod siebie (IMG:style_emoticons/default/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]";
}}


Go to the top of the page
+Quote Post
Majkelo23
post
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

Ostrzeżenie: (0%)
-----


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ć ;/

Ten post edytował Majkelo23 15.11.2013, 16:11:22
Go to the top of the page
+Quote Post
esiek
post
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 6.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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ć (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
xavierek
post
Post #5





Grupa: Zarejestrowani
Postów: 92
Pomógł: 2
Dołączył: 22.03.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 07:38