![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
info
pobierz Hejka, prezentuję klasę Pager. Umożliwia ona wygenerowanie pager'a oraz pobranie aktualnych indexów rekordów. Użycie jest proste:
Polączenie pagera z pobieraniem rekordów z bazy:
(edit: te przyklady od wersji 2.5 troche inaczej beda wygladac. poprawne kody w paczce) W podanym przykladzie brakuje oczywiscie sprawdzania, czy dane zapytanie wykonalo sie poprawnie itp. Nie podawałem tego jednak po to, by nie zaciemniać kodu. Klasa generuje unikalne dla każdego pagera (poprzez idPager'a) zmienne, dzięki czemu na stronie może byc kilka pagerów do różnych tabel. Dodatkow, jesli korzystacie z sesji, klasa pamieta strony w sesji, dzięki czemu nie tracone są informacje o aktualnej stronie przy odwiedzaniu innych linków Klasa ma 3 sposoby przechodzenia do kolejnych stron: 1) generuje własny wewnetrzny formularz i go submituje Konstruktor tylko z pierwszym argumentem 2) korzysta z zewnetrznego formularza i musi byc w nim zawarta Konstruktor z pierwszym i trzecim argumentem. Jako trzeci argument należy podać idFormularza zawnętrznego 3) poprzez linki. Należy wówczas określić drugi parametr w konstruktorze, który będzie linkiem podstawowym. Do niego dodany będzie parametr odnosnie strony. Ten sposób generuje ogólne zmienne dla pagera, przez co lepiej żeby dla niego na stronie byl tylko jeden pager. Sposób ten może być wykorzystywany przy wyszukiwarkach. To chyba wszystko. Wszelkiego rodzaju uwagi, sugestie bądź wynalezione błędy proszę zgłaszać. Wysłucham każdej (IMG:style_emoticons/default/smile.gif) Aha, sposób implemetncji klasy dostosowany do php4. Klasa nie korzysta z żadnych dziwnych funkcji, więc można łatwo dostosować ją do php5. Należy tylko metody i zmienne deklarować w sposób odpowiedni dla php5. Wszystkie metody i zmienne zaczynajace się na podkreslenie (_) oznaczają, iż są to metody i zmienne prywatne. A oto przykladowy widok pager'a: Cytat |< << < 21 22 23 24 25 26 27 28 29 30 z 200 > >> >| oczywiscie wszystko to linki oprócz aktualnej strony. Pager jest łatwo konfigurowalny. MOżecie sami okreslic liczbe rekordów na stronie, liczbę stron w pagerze itp. A pozatym niech wam dobrze służy (IMG:style_emoticons/default/smile.gif) edit (2006-04-03) W związku z licznymi uwagami, by klasa nie generowala linkow co x, tylko pare linków przed stroną i parę linków po, wprowadzilem lekkie modyfikacje. Sposób uzywania klasy nie uległ zmianie (jest kompatybilna wstecz (IMG:style_emoticons/default/smile.gif) ). Chcąc użyc nowej metody generowania linków, wystarczy wywołać metodę render() z parametrem true:
Mam nadzieję, że w ten sposób usatysfakcjonowałem parę osób (IMG:style_emoticons/default/winksmiley.jpg) edit (2006-06-13) Dawno nic nie pisalem. Czas zmienic. A wiec jest wersja 2.0 Główne zmiany: 1) odejscie od przesylania pagera formularzem 2) zapisywanie Pagera do tablicy, z której mozna samemu wygenerowac kod html Pager'a 3) PLucie wyjatkami (IMG:style_emoticons/default/smile.gif) 4) no i obecna wersja jest pod php5. Niedlugo dorobie tez wersje pod php4. Zapraszam do sciagania i testowania. W paczce jest kilka przykaldow, min. jak nalezy doczepic generowanie wlasnego kodu html. Jesli zrobicie swoja funkcje generujaca kod html i bedziecie chcieli sie nia podzielic, wyslijcie mi a ja upublikuje wersje demo z wasza funkcja i wygladem pagera. edit: 2.0 jest juz i pod php4 edit (2006-08-22) Wersja 2.01: - dorobilem na szybko ten link. teraz w konstruktorze, jesli podamy drugi parametr i bedzie w nim ciag: #PAGE# to link ten zostanie niezmieniony, czyli bedzie tak jak user podal, za wyjatkiem #PAGE#, ktore zostanie zamienione na numer strony Czyli dla przykladu co podal AxZx powinno byc:
- metoda Render moze zwracac teraz tablicę pagera zamiast kodu html. Należy ustawic na true jej trzeci parametr edit (2007-07-26) Wersja 2.5. Więcej info tu: http://nospor.pl/pager-2.5.html |
|
|
![]() |
![]() ![]()
Post
#101
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 22.01.2007 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam pewien problemik. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Dalaczajac pager'a do swojego kodu, wydaje mi sie, ze robie wszystko ok, jednak wyskakuje mi nastepujacy błąd: Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /www/data.users/fr/e/e/lsee.fr/www/lsee1/Pager.class.php on line 38 Pomóżcie, please..... Z gory dziekuje i pozdrawiam Ten post edytował emi23o9 22.01.2007, 19:18:47 |
|
|
![]()
Post
#102
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
napisz co masz w linii 38 pliku pager.class.php
|
|
|
![]()
Post
#103
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 22.01.2007 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
const _GOTO_FIRST_ = 'gtf';
praktycznie jest to sam poczatek klasy |
|
|
![]()
Post
#104
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
jak na moj gust to ty uzywasz klasy napisanej dla php5 pod php4 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
albo zmien wersje php którego uzywasz, albo weź wersję klasy dla php4 |
|
|
![]()
Post
#105
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 22.01.2007 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
ajjjj.... sorka, moj blad.... (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) wstyd i hanba, przepraszam... (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
Ten post edytował emi23o9 22.01.2007, 19:33:28 |
|
|
![]()
Post
#106
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 0 Dołączył: 30.12.2003 Skąd: Strzegom Ostrzeżenie: (0%) ![]() ![]() |
Możliwe, że o to co chcę zapytać już było w tym temacie, ale istnieje prawdopodobieństwo użytej nieznanej dla mnie nazwy stąd pytam po swojemu.
Otóż, mam stronkę, która wywoływana jest przez include i ma adres idex.php?op=2 --- użyłem tego napisanego przez Ciebie stronnicowania i działa ok, dopóki nie chcę dać na kolejną podstronę, ponieważ odsyła do strony, której nie ma: pp_idPegera=2. W celu usunięcia problemu oznaczyłem zmienną $pager = new Pager('op=2') oraz w klasie pager w linii 117 - $this->_paramPageNumber = ''.$id; --- wywaliłem spomiędzy średników znak pp_ --- nie wiem czy moje posunięcie było właściwe --- jeśli jest możliwość obejścia tego problemu to proszę o wskazówkę. Ten post edytował primo 24.02.2007, 23:43:29 |
|
|
![]()
Post
#107
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
|
|
|
![]()
Post
#108
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 21.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
a ja chyba znalazłem błąd, a może i nie
powodowało wyrzucenie wyjątku o konieczności wywołania GetActualPage() przed Render(), co działało, ale zawsze zwracało 0; natomiast po zmianie kodu metody GetActualPage() na
działa bardzo ładnie i zwraca poprawny numer strony (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#109
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
hehe, faktycznie, tak to jest jak sie robi ctrl+c, ctrl+v (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
To co wykomentowales powinno wygladac tak:
Jutro to poprawie i wrzuce na serwer. thx (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) edit: poprawki naniesione w ostatniej wersji ( 2.02 ) |
|
|
![]()
Post
#110
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 21.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dalej bawiłem się Twoja klasa i brakowało mi w niej takiego bajeru, że jak mam jakieś parametry, np. index.php?a=b&c=2 to coby Pager mi się do tego dopisał. Jak brakowało to i zrobiłem, a nóż się komuś przyda.
Pager by Maksymus007 troche zmieniłem, troche dodałem. Przy czym ten tryb pracy wybieramy przed dodatkowy parametr w konstruktorze, przez co stara funkcjonalność jest niezmieniona. Jeśli natomiast te dodatki miałby się znaleść w oficjalnym wydaniu to prosze o kontakt (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#111
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Dalej bawiłem się Twoja klasa i brakowało mi w niej takiego bajeru, że jak mam jakieś parametry, np. index.php?a=b&c=2 to coby Pager mi się do tego dopisał. Przeciez Pager ma taką mozliwosc i pare postow wyzej byla o tym mowa... W Twoim przypadku nalezy tak wywolac konstruktor:
I juz. Czasami dobrze jest przeczytac to, oco inni pytali, a jak sie nie znajdzie tego co sie szuka, to samemu zapytac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#112
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 21.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) To wiem, ale nie o to mi chodzilo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) W tym co podałeś po pierwsze - musisz ten cały ciąg podać jako parametr konstruktora. A pobrać go nie pobiore, musze i tak parsować $_GET. Po drugie jak w tym ciągu będzie index.php?a=b&c=d&page=23 gdzie page to nasz Pager to klasa zrobi z tego index.php?a=b&c=d&page=23&page=22 na ten przykład.
Jednak mówimy o troche innym zastosowaniu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#113
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No faktycznie ciut inaczej. Tak czy siak w "normalnych" (bez obrazy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) skryptach to ludek (czyli ty) powinien wiedziec jakie ma parametry i zapodac sam wlasciwy link.
No ale kazdy robi jak lubi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#114
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 5.11.2006 Ostrzeżenie: (10%) ![]() ![]() |
Mam pytanko odnośnie funkcji createLink
Otóż muszę do linku dodac jeszcze
Jak tego dokonac? |
|
|
![]()
Post
#115
|
|
Grupa: Zarejestrowani Postów: 1 319 Pomógł: 118 Dołączył: 26.11.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
eh czytaj dwa posty wyżej, post nospor`a
|
|
|
![]()
Post
#116
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 9.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Prośba do ludzi dobrej woli (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
Przeróbcie mi poniższy kodzik na ten z pagerem. On jest dla mnie zbyt pogmatwany, zebym umiala go tak zrobic. PLSSS....
Dziękuję za pmoc (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif) (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) Pomoże ktoś (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/offtopic.gif) Ten post edytował agnieszka87 9.05.2007, 20:22:06 |
|
|
![]()
Post
#117
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 5.11.2006 Ostrzeżenie: (10%) ![]() ![]() |
A ja mam jakiś dziwny problem.
Konstruktor wywołałem tak:
Wszystko ładnie pięknie, ale gdy zapodam link; http://skifa.pl/index.php?page=list&cat=0 to nie dość, że nie wyswietlaja sie linki "10 stron do przodu" i "Ostatnia strona". To jeszcze pager startuje czasem od 3 strony. Błąd pagera? // Mam najnowszaą wersję pod PHP5. |
|
|
![]()
Post
#118
|
|
Grupa: Zarejestrowani Postów: 422 Pomógł: 0 Dołączył: 14.12.2005 Skąd: Wałbrzych Ostrzeżenie: (0%) ![]() ![]() |
Cytat o jeszcze pager startuje czasem od 3 strony. Hm, a może dlatego, że pager zapisuje ostatnio odwiedzoną podstronę w sesji ? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Można to wyłączyć oczywiście. Osobiście wczoraj skorzystałem z tej klasy i jestem super zadowolony ! |
|
|
![]()
Post
#119
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat To jeszcze pager startuje czasem od 3 strony. Tak jak napisał Balon. Strona jest zapamietywana w sesji, i jeśli nie określisz jawnie strony to pójdzie z sesji jesli byla jakas. Oczywiscie mozna tym sterowac.Cytat to nie dość, że nie wyswietlaja sie linki "10 stron do przodu" i "Ostatnia strona" Hmmm, przyjrzę się temu po weekendzie, bo teraz nie mam dostępu do kodów.edit: tak jak przypuszczalem, twoj dodatkowy adres nie ma wplywu na "niepojawianie" sie linkow. Wszystko jest generowane na podstawie zapodawanych danych w postaci liczby rekordow i twoj adres nie ma tu nic do tego. Byc moze ty, źle wyliczasz liczbę rekordów i wychodzi, ze stron jest mniej akurat przy tym adresie i dlatego nie dostajesz ostatnich linkow |
|
|
![]()
Post
#120
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 25.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Uzyłem tę klasę na swojej stronie ale coś nie działa. Chciałem podzielic stronę .html czy .php, w którym są obrazki na dwie części. Zamiast wyswietlać 10 chciałem aby wyswietlił po 5 z dwoma stronami.
Mam np. plik strona.php a w nim kod w divach gdzie dałem obrazki np. I takich jest 10 i chce podzielić na dwie cześci aby wyswietlało po 5 na dwóch stronach. Nie ma tam bazy mysql ani plików tekstowych. Jak dałem poniższy kod to niby wyswietla < 1 2 3 > ale po kliknięciu na stronę 2 nie dzieli w ogólę stronę i na każdej jest nadal 10 obrazków. Jak użyć tę klase ?
Jak zastosować ten kod. Proszę o wskazówki. Ten post edytował Guli 24.05.2007, 11:45:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 15:06 |