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 |
|
|
|
nospor Pager (stronicowanie) 15.09.2005, 09:18:52
Bakus Rozwiązanie bez wątpienia warte uwagi, ale po sesj... 15.09.2005, 15:51:32
nospor @Bakus
Widzę że kod przeanalizowales dokladnie . D... 15.09.2005, 16:03:53
Bakus Przydał by się jeszcze jeden mały bajer: "poł... 18.09.2005, 18:59:50
nospor mówisz - masz 19.09.2005, 08:54:33
Bakus cudo 21.09.2005, 15:19:08
OnE.Killer Mam kod ktory pobiera dane z bazy mysql (w tablicy... 21.09.2005, 18:11:30
NuLL Masz wszystko przecież jak wół napisane. 21.09.2005, 18:54:16
AxZx wydaje mi sie ze klasa generuje kod HTMl niezgodny... 21.09.2005, 19:56:17
nospor @OnE.Killer odpowiedzialem tutaj:
http://forum.php... 22.09.2005, 08:09:56
AxZx wiem ze mozna samemu sobie zmienic, ale czemu ty n... 22.09.2005, 13:04:25
nospor Cytatwiem ze mozna samemu sobie zmienic, ale czemu... 22.09.2005, 13:27:31
AxZx http://www.w3.org/
sprawdz strony z Twoim stronic... 22.09.2005, 13:35:39
nospor aha, już czaję o co ci chodzi. Chcesz by aktualna ... 22.09.2005, 13:41:23
AxZx a jeszcze mam takie pytanie, chociaz nie wiem czy ... 23.09.2005, 14:00:53
nospor he? Czy Twoje pytanie ma związek z Pager'em? B... 23.09.2005, 14:25:27
AxZx branza.1.2
1 to numer branzy
a 2 to numer strony:... 23.09.2005, 14:28:28
nospor O, i nie można było tak od razu ?
Teraz wszystko ... 23.09.2005, 14:34:39
dr_bonzo A moze dodac dodatkowa klase do generowania linku:... 23.09.2005, 15:10:15
AxZx dobry pomysl
tylko nie kazdy jest takim geniuszem... 23.09.2005, 15:12:28
dr_bonzo Heh, przeciez opisalem funkcjonalnosc tej klasy.
... 23.09.2005, 15:19:39
nospor Z tą nową klasą to chyba lekka przesada. Aż tyle r... 24.09.2005, 10:55:23
sf Pierwsza klasa zwraca obiekt/tablice z danymi, kto... 24.09.2005, 13:03:37
AxZx czy trwaja prace nad rozbudowa skryptu? 9.11.2005, 21:11:21
nospor NIestety nie. Powód ciągle ten sam
Na przyszłość... 12.11.2005, 20:26:50
basu Czy wiecie jak zrobić/zodyfikować pagera, aby chod... 26.12.2005, 13:12:33
nospor pytasz juz o to tutaj: http://forum.php.pl/index.p... 26.12.2005, 13:18:18
Diablos A jak zastosowac pagera przy template'ach ? Pr... 26.12.2005, 14:42:40
nospor kurka, jakis dziwny jestem. OPT tez nie uzywalem
... 26.12.2005, 14:50:22
basu Jednak sobie poradzilem ze stronicowaniem w PDO
... 27.12.2005, 18:24:14
nospor CytatJesli poprawimy pager na:Ja tylko sprostuje. ... 28.12.2005, 20:43:14
basu w sumie racja
ale najwazniesze ze chodzi.
Za nab... 28.12.2005, 20:57:42
SongoQ CytatProblem polegal na tym ,ze $stmt->row... 28.12.2005, 22:42:28
bigZbig @nospor -> Z przeczytanych postow dowiedzialem ... 25.01.2006, 12:22:53
nospor CytatPomieszanie kodu logicznego z warstwa prezent... 3.02.2006, 10:02:31
Fallout Witam,
mam problem z tym skryptem, gdyż nie wiem ... 28.02.2006, 05:55:16
nospor [PHP] pobierz, plaintext <?php$pager->$_star... 28.02.2006, 09:21:51
Fallout Hehe, wierze na słowo bo nie wiem czemu mimo zeby ... 5.03.2006, 12:24:05
nospor CytatI mam pytanie, czy to nie jest efektywniejsze... 6.03.2006, 16:37:42
Legro witam, nie moge sobie z tym poradzic, probowalem j... 19.03.2006, 12:24:52
Levabul NIe wiem czy ktoś zauważył ale w 128 lini jest lit... 19.03.2006, 13:04:30
nospor @legro w pierwszym poscie masz co i jak...
[PHP] p... 19.03.2006, 15:44:25
Legro @nospor - wielkie dzięki.. Działa wszystko ok, wyś... 19.03.2006, 16:48:58
bohusz Witam
Jak połaczyć pager z tym kodem wyszukiwarki?... 28.03.2006, 17:58:16
nospor [PHP] pobierz, plaintext <?php $sql = ... 28.03.2006, 19:50:43
acztery świetna sprawa . ale brakuje mi tu tego co już kto... 1.04.2006, 15:18:48
nospor Widzę, ze nie dacie mi spokoju z tymi pare przed i... 3.04.2006, 10:40:46
acztery jeszcze zapamietywanie podstron w sesjach i bedzie... 3.04.2006, 11:40:38
nospor Cytatjeszcze zapamietywanie podstron w sesjach i b... 3.04.2006, 11:43:40
acztery tak masz racje nie mam session_start()
a co z ty... 3.04.2006, 11:45:07
nospor jestes pewien ze to chodzi o generowanie pagera? z... 3.04.2006, 11:48:08
acztery w smartach jest włączone cacheowonie.
Oki w sesj... 3.04.2006, 11:52:31
nospor Cytattrzeba definiowac id pageraNo tak. Przy inicj... 3.04.2006, 11:54:43
acztery wypas super robota 3.04.2006, 11:56:42
nospor Dawno nic nie pisalem. Czas zmienic. A wiec jest w... 13.06.2006, 16:08:47
bigZbig Bardzo mi sie podoba ograniczenie pracy pagera jed... 18.07.2006, 11:30:39
nospor CytatMoim zdaniem dane niezbedne do pracy pagera p... 18.07.2006, 11:41:34 
bigZbig Cytat(nospor @ 18.07.2006, 12:41 ) NIe wi... 18.07.2006, 11:55:51
nasty_psycho Ja osobiscie Pager-a uzylem do pewnego projekyu i ... 2.08.2006, 10:28:01
nospor @nasty_psycho ale ty uzywales Pager ver 2.0? Przec... 2.08.2006, 10:32:52
AxZx kiedy mozna (czy wogole mozna) spodziewac sie tej ... 11.08.2006, 12:51:53
nospor Ups.... zupelnie o tym zapomnialem.
W nastepnym ty... 11.08.2006, 16:22:26
hugonot Mam problem, uzylam kodu tak jak w przykladzie, ws... 12.08.2006, 15:03:17
nospor Problem jako taki nie jest związany z moj... 12.08.2006, 15:21:09
AxZx dzieki za klase w wersji dla php4
mam problem jak... 16.08.2006, 16:40:04
nospor @AxZx nie bede sciemnial. mod_rewrite to dla mnie ... 16.08.2006, 17:04:06
AxZx hmm chcialbym moc wprowadzic jak ma wygladac url
... 16.08.2006, 17:53:34
nospor @AxZx z racji ze szerzych po różnych topicach... 21.08.2006, 13:46:37
nasty_psycho nospor: a co ty powiesz na taki pomysl (moze w wer... 21.08.2006, 18:31:05
AxZx chyba chodzi ci o to samo o co mnie:)
balon wlasni... 21.08.2006, 18:40:51
nospor co za lenie....
Dobra, leniwy klient nasz Pan. S... 22.08.2006, 07:26:36
bigZbig @nospor jak widzisz problem wizualizacji linkow po... 22.08.2006, 07:35:03
nospor @bigZbig jak tak sie dluzej nad tym zastanawiam to... 22.08.2006, 16:47:28
AxZx fantastycznie:)
coraz lepsza klasa
a nie lepiej z... 22.08.2006, 17:00:37
nospor No ale teraz to ustawiasz w konstruktorze. Co za r... 22.08.2006, 17:02:31
nasty_psycho CytatO ile moja propozycja wydaje mie sie bardziej... 23.08.2006, 17:53:06
bigZbig @nasty_psycho - wzorzec strategi jest bardzo latwy... 24.08.2006, 10:34:38 
nasty_psycho Cytat(bigZbig @ 24.08.2006, 11:34 ) @nast... 24.08.2006, 16:02:29
AxZx gdzie mozna nauczyc sie takiego fachu ? 24.08.2006, 11:02:44
Lee Nie mam zielonego pojęcia jak to ze smarty połączy... 24.08.2006, 16:39:24
AxZx Cytat(nasty_psycho @ 24.08.2006, 15:02 ) ... 24.08.2006, 17:31:28
nospor CytatNie mam zielonego pojęcia jak to ze smarty po... 24.08.2006, 17:46:54
Lee co to jest stronicowanie to wiemi jak to dziala (z... 24.08.2006, 18:05:16
nospor Cytatale nie wiem jak to napisacNie wiesz jak napi... 24.08.2006, 18:09:31
Lee Trzeci parametr ?
[PHP] pobierz, plaintext <?ph... 24.08.2006, 18:21:49
AxZx 3 parametr metody render 24.08.2006, 18:24:15
Lee No to teraz kompletnie nic nie rozumiem 24.08.2006, 18:42:07
nospor @Lee chlopie, olej tablice, bo dla dziebie to za w... 24.08.2006, 18:46:09
Lee Nie obraziłem się, bo sam stwierdzam że jestem tęp... 24.08.2006, 19:37:17
nospor Cytatustawiłem sobie ze ma mi wyswietlać 4 ale to ... 24.08.2006, 20:10:24
Lee No fakt jest row, ale przed chwilą miałem wysłac d... 24.08.2006, 20:15:13
tomick_pl Hmmm... zauważyłem złe generowanie ... 16.09.2006, 11:39:27
AxZx tez to zauwazylem, ale gdy przeskoczysz na 27 ktor... 16.09.2006, 11:43:06
tomick_pl No tak, ale ja nie lubię takich małych bugów- fakt... 16.09.2006, 12:03:02
nospor Dzieki za wykrycie buga
Po prostu link o x do tyl... 17.09.2006, 20:16:28
tomkoz11 Świetna klasa nospor! Wielkie dzięki... 18.11.2006, 09:54:21
czerwony2 Mam pytanie:
Jak powinien wyglądać prawidłowo kons... 29.12.2006, 13:31:41
nospor Widze ze korzystasz ze starej wersji, 1.0, bo w wy... 29.12.2006, 13:45:10
czerwony2 OK trochę posiedziałem, ale udało mi się zrobić to... 30.12.2006, 03:34:21
nospor CytatNieśmiało wydaje mi się że znalazłem małą ska... 2.01.2007, 09:00:46 ![]() ![]() |
|
Aktualny czas: 24.10.2025 - 07:57 |