![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 5.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam taki skrypt ktory stronnicuje księge gości dziala poprawnie i chcialbym go troche zmodyfikować w zwązku z tym proszę o pomoc, skrypt stronicuje wyswietlane rekordy do 10 po czym tworzy kolejną stronę itd. natomiast na dole tworzy linki do tych kolejnych stron czyli np 1,2,3,4,5,6 i tak bez konca będzie 100 stron to stworzy 100 linkow moje pytanie jak to przerobić tak aby pokazywal tylko 10 linkow i ostatni tak by wyświetlane byly tylko od 1 do 10 lub od 1 do 15 i ostatni oraz link do pierwszego linku, nadmieniam ze w tym skrypcie jest tez link do strony poprzedniej i następnej. Co zmienic w tym skrypcie proszę o pomoc?
Miało być, żeby wyświetlało linki od 1 do 10 lub od 5 do 15 czy tez od 30 do 40 itd. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Użyj np. takiej prostej funkcji:
Funkcję tą znalazłem na tym forum i trochę ulepszyłem. Użycie jest proste, wystarczy nakarmić funkcję argumentami: - l_odp - ilość rekordów - l_odp_nastronie - ilość rekordów na jedną stronę - l_odp_napasku - rozmiar paska nawigacyjnego (a konkretnie liczba linków z każdej strony bieżącego numeru) - a - numer bieżącej strony Funkcja zwraca posortowaną tablicę stron z zaznaczeniem aktywnej, poprzedniej oraz następnej. Wystarczy połączyć z kodem HTML i użyć. Edit: napisałem prostej, po co do tego nie wiadomo jak wychuchana klasa? Gdy używam frameworków to korzystam z takich klas, ale tutaj nie warto dorabiać całej ideologii i dyskutować o tym, czy kod jest syfiasty i czy zawiera błędy lub o rozwoju jego (bo to ma być prosty helper i taka debata nie ma sensu), nie pisze się kodu po to, by ładnie wyglądał czy był słuszny ideologicznie. Ten post edytował Pilsener 28.07.2010, 14:59:27 |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Na forum jest kilka takich kodów. Ogólnie można powiedzieć tak, że musisz zrobić zmienną odpowiedzialną za "szerokość", czy też "promień zasięgu".
Całość dotychczasowego kodu ujmujesz w pętli for, która zaczyna się od aktualna-promień i leci do aktualna+promień. Dodatkowo robisz sprawdzenie. Jeśli aktualny krok pętli ($i czy inny) jest mniejszy niż pierwsza strona, dajesz continue (to puste przebiegi, ale musimy dojść do pierwszej strony). Jeśli jest większy niż ostatnia, możesz zakończyć pętlę (bo to będą tylko puste przebiegi, które i tak nic nie zmienią). |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 25 Dołączył: 27.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Użyj np. takiej prostej funkcji:
Funkcję tą znalazłem na tym forum i trochę ulepszyłem. Użycie jest proste, wystarczy nakarmić funkcję argumentami: - l_odp - ilość rekordów - l_odp_nastronie - ilość rekordów na jedną stronę - l_odp_napasku - rozmiar paska nawigacyjnego (a konkretnie liczba linków z każdej strony bieżącego numeru) - a - numer bieżącej strony Funkcja zwraca posortowaną tablicę stron z zaznaczeniem aktywnej, poprzedniej oraz następnej. Wystarczy połączyć z kodem HTML i użyć. Wstydziłbym się na publikacje i podpisywanie się pod takim brzydkim, wręcz syfiastym kodem. Powodzenia przy znajdywaniu błędów w przyszłości, lub co gorsza dalszym rozwoju tego potworka. Do stronicowania w sieci jest mnóstwo gotowych klas, których użycie i konfiguracja jest banalnie prosta. Zamiast więc ponownie wynajdywać koło (kanciaste w dodatku (IMG:style_emoticons/default/biggrin.gif) ) polecam posłużyć się Google. Przykładowo: pager. |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
To "coś" generuje cały kod paginacji. Co za parametry? $actual - obecna strona, $all - wszystkie rekordy, $path - to co w linku przed numerem strony, $suffix - to co za numerem strony $per_page -ilość rekordów na stronie, $width - ilość podstron w lewo i w prawo w odniesieniu do obecnej. $path i $suffix przydają się podczas tworzenia linków SEO-friendly. Jedyne czym można niby wzbogacić (ale można to sprawdzać jeszcze przed wywołaniem funkcji i ja tak robię) to czy ktoś nie wyskoczył w $actual z numerem strony poniżej pierwszej albo powyżej ostatniej i wtedy na pałę wpisać albo pierwszą albo ostatnią. Jedynie musisz zadbać o definicję w CSS paru id i klas by ładnie wyglądało. Przykładowo: Oczywiście obrazki możesz walnąć jako CSS Sprite i masz zmniejszony pobór na transferze. Aczkolwiek można nieco wydajniej jeszcze to mi to akurat kompletnie już nie wadzi. Tyle starcza. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 5.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za funkcje, chodź bardziej wolalbym pomoc z zmodyfikowaniem mojego kodu z początku tymniemniej funkcje są pomocne.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 331 Pomógł: 30 Dołączył: 11.11.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
polecam taki skrypcik:
http://karaboz.ru/2007/11/19/paginator-300...shhego/#more-12 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Stein... A po co potem na każdej stronie z paginacją pisać ten sam kod?
Czy nie prościej zrobić: ? I masz cały kod bez chrzanienia się z kopiuj-wklej, dopasuj do nowej strony (IMG:style_emoticons/default/smile.gif) Sam popatrz.... Jedna linijka kontra kilkadziesiąt. Tylko ewentualnie sobie dopasuj czy skrypt ma za pierwszą stronę uznawać s=0, czy s=1. U mnie kod to drugie robi, więc jeśli ma być jak to pierwsze, to funkcje musisz minimalnie w kilku miejscach zmienić, by działała jak chcesz. To kwestia zmiany polegającej na odjęciu 1 w kilku miejscach lub wpisaniu 0 (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 12:48 |