Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

12 Stron V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Pager (stronicowanie), klasa, php4 i php5
Levabul
post 19.03.2006, 13:04:30
Post #41





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


NIe wiem czy ktoś zauważył ale w 128 lini jest literówka (brak znaku dolara "$" przed zmienną pon) przez którą cała klasa się sypie bo wyświetlany jest błąd
Kod
Error: Division by zero
czy jakoś tak tongue.gif. Poprawna linia 128:
  1. <?php
  2. $this->_pagesOnNav = $pon;
  3. ?>


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.03.2006, 15:44:25
Post #42





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




@legro w pierwszym poscie masz co i jak...
  1. <?php
  2.  
  3. $sql = "select count(*) from dowcipy Where `akt_d` = '1' and `kat_d` = '{$_GET['id_kat']}'  " ;
  4.    $result = mysql_query($sql);
  5.    $row = mysql_fetch_array($result);
  6.    $num_row = $row[0];//pobranie liczby rekordów
  7.    $pager = new Pager('idPagera');
  8.    $pager->setRecordsCount($num_row);//ustawienie liczby rekordów
  9.    //wygenerowanie pagera i zapamietanie go w zmiennej w celu 
  10.    //pozniejszego wyswietlenia
  11.    $renderPager = $pager->render();
  12.    $start = $pager->getStartRecord();//pobranie indexu rekordu początkowego
  13.    $end = $pager->getEndRecord();//pobranie indexu rekordu koncowego
  14.    //zapytanie z uwzglenieniem stronicowania
  15.    $sql = "select * from dowcipy Where `akt_d` = '1' and `kat_d` = ".$_GET['id_kat']."   limit ".$start.','.($end - $start + 1); 
  16.    //...pobranie wyników i ich wyswietlenie, czyli twoj kod:
  17. $dowcipy = mysql_query($sql);
  18. if ( $num_row != 0 ) {
  19.  
  20. while ( $r_dowcipy = mysql_fetch_array ($dowcipy , MYSQL_ASSOC )) {
  21.  
  22. $list_dowcipy .= ( nl2br ( $r_dowcipy['tresc_d'] ) . '<br /><br />' ); 
  23.  
  24. }
  25.  
  26. $template -> setValue ('lista_dowcipow', $list_dowcipy);
  27.  
  28. } else {
  29.  
  30. $template -> setValue ('lista_dowcipow', 'Brak dowcipów w kategorii.');
  31.  
  32. }
  33. //////
  34.  
  35.    echo $renderPager; //wyswietlenie pager'a
  36.  
  37.  
  38. ?>


@Levabul wielkie dzięki smile.gif nie wiem skąd ta literowka sie tam wytrzasnęła


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Legro
post 19.03.2006, 16:48:58
Post #43





Grupa: Zarejestrowani
Postów: 233
Pomógł: 3
Dołączył: 18.07.2005

Ostrzeżenie: (40%)
XX---


@nospor - wielkie dzięki.. Działa wszystko ok, wyświetla się lista:

1 2 3 >

Ale jak chce kliknac na 2 to nic sie nie robi... Na pasku statusu pisze tylko jak najade na cyferke 2: java script:sub_function_1(2);

I nie da sie przejsc na druga strone wynikow :/


------------ EDIT

Już wiem dlaczego tak sie dzieje..

Robie tak:

  1. <?php
  2.  
  3. $template -> setValue ('pages', $renderPager);
  4.  
  5. ?>


Zamiast tak
  1. <?php
  2. echo $renderPager;
  3. ?>


Da sie to jakos zastapic? Aby mi dzialalo to co najpierw podalem? Chce to wrzucic do szablonu w inne miejsce :/

Pozdrawiam.

Ten post edytował Legro 19.03.2006, 16:59:22


--------------------
nospor - jestem z Wami !!!
Go to the top of the page
+Quote Post
bohusz
post 28.03.2006, 17:58:16
Post #44





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 28.03.2006

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


Witam
Jak połaczyć pager z tym kodem wyszukiwarki?
W kodzie jest stronicowanie, ale ono niestety nie działa.
Z góry dziękuję za pomoc, nie znam się na php a bardzo mi zależy na poprawnym stronicowani.

  1. <?
  2. $ile = mysql_num_rows(mysql_query("SELECT * FROM $ogloszenia_table $where"));
  3. $result = mysql_query("SELECT * FROM $ogloszenia_table $where LIMIT $limit,$og_limit");
  4.  
  5. while($r = mysql_fetch_array($result)){
  6. $id = $r['id'];
  7. $cat = $r['cat'];
  8. $title = $r['title'];
  9. $img1 = $r['img1'];
  10. $date = $tbl['date'];
  11. if($img1 == '1'){ $photo = '<a href="lista.php?id='.$id.'"><img id=intro src="img/'.$id.'_1.gif" border="0" width="50px"></a>'; } else{ $photo = ''; }
  12. echo'<fieldset>'.$photo.'Fotoanons: <br /><a href="lista.php?id='.$id.'">'.$title.'</a></fieldset><br />';
  13. }
  14. if($ile == '0'){ echo'brak wyniku'; }
  15.  
  16.  
  17. ?>


Jeszcze raz z góry dziękuję
Go to the top of the page
+Quote Post
nospor
post 28.03.2006, 19:50:43
Post #45





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




  1. <?php
  2.  
  3. $sql = "SELECT count(*) FROM $ogloszenia_table $where";
  4.    $result = mysql_query($sql);
  5.    $row = mysql_fetch_array($result);
  6.    $recordsCount = $row[0];//pobranie liczby rekordów
  7.    
  8.  $pager = new Pager('idPagera');
  9.    $pager->setRecordsOnPage($og_limit);
  10.    $pager->setRecordsCount($recordsCount);//ustawienie liczby rekordów
  11.    //wygenerowanie pagera i zapamietanie go w zmiennej w celu 
  12.    //pozniejszego wyswietlenia
  13.    $renderPager = $pager->render();
  14.    $start = $pager->getStartRecord();//pobranie indexu rekordu początkowego
  15.    $end = $pager->getEndRecord();//pobranie indexu rekordu koncowego
  16.    //zapytanie z uwzglenieniem stronicowania
  17.    $sql = "SELECT * FROM $ogloszenia_table $where limit ".$start.','.($end - $start + 1);
  18.    $result = mysql_query($sql); 
  19.    while($r = mysql_fetch_array($result)){
  20. $id = $r['id'];
  21. $cat = $r['cat'];
  22. $title = $r['title'];
  23. $img1 = $r['img1'];
  24. $date = $tbl['date'];
  25. if($img1 == '1'){ $photo = '<a href="lista.php?id='.$id.'"><img id=intro src="img/'.$id.'_1.gif" border="0" width="50px"></a>'; } else{ $photo = ''; }
  26. echo'<fieldset>'.$photo.'Fotoanons: <br /><a href="lista.php?id='.$id.'">'.$title.'</a></fieldset><br />';
  27. }
  28.    echo $renderPager; //wyswietlenie pager'a
  29. if($recordsCount == ){ echo'brak wyniku'; }
  30.  
  31. ?>
widze ze dales duzo rekordow na stronie: 150. wow winksmiley.jpg

ps: zaraz usune wiekszą czesc Twego kodu, gdyz generowanie formularza nam do szczescia nie jest potrzebne smile.gif
ps2: i uzywaj na przyszlosc wlasciwego bbcode


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
acztery
post 1.04.2006, 15:18:48
Post #46





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


świetna sprawa . ale brakuje mi tu tego co już ktoś wcześniej napisał ze jak jeste na 10 stronie powinno automatycznie przskoczyc na nastepnych 10 a nie ze trzeba kliknac na " >> " dziala szybko na 600 tys rekorach. z tym ze liczenie rekordów robie tak:

  1. <?php
  2.  
  3.  $sql="SELECT COUNT(patch) as ile FROM prg  WHERE patch LIKE '%$CAT%'";
  4.  $result = mysql_query($sql);
  5.  $recordsCount = mysql_result($result,0,"ile"); 
  6.  
  7. ?>


Ten post edytował acztery 1.04.2006, 15:22:24
Go to the top of the page
+Quote Post
nospor
post 3.04.2006, 10:40:46
Post #47





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Widzę, ze nie dacie mi spokoju z tymi pare przed i pare po od danej strony. Wprowadzilem więc poprawki w pierwszym poście na tę okoliczność smile.gif
Sposób uzywania klasy nie uległ zmianie (jest kompatybilna wstecz smile.gif ). Chcąc użyc nowej metody generowania linków, wystarczy wywołać metodę render() z parametrem true:
  1. <?php
  2. echo $pager->Render(true);
  3. ?>

Mam nadzieję, że w ten sposób usatysfakcjonowałem parę osób winksmiley.jpg

edit: jesli ktos nie wie o jakich zmianach mowie, to zacytuje jednego z uzytkowników:
Cytat
czy nie lepiej by bylo gdyby np przy 10 podstronie widoczne byly linki do stron nastepnych i poprzednich?
np 5 poprzednich i 5 nastepnych, bo teraz jest tak ze jest 10 stron i koniec, tylko strzalki w prawo sa.
a co do linkow to chodzi mi o cyfry

teraz jest
CODE

|< << < 1 2 3 4 5 6 7 8 9 |10| > >> >|


gdzie |10| to aktualna strona

a ja zapytalem czy nie moze to sie przesuwac
np.
CODE

|< << < 5 6 7 8 9 |10| 11 12 13 14 15 > >> >|



moze takie cos juz jest ?
No i teraz juz tak jest


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
acztery
post 3.04.2006, 11:40:38
Post #48





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


jeszcze zapamietywanie podstron w sesjach i bedzie perfekto

EDIT

aha mam male pytanie przy 500 tys rekordów pierwsze uruchomienie skryptu trwa długo u Was też?

Ten post edytował acztery 3.04.2006, 11:41:48
Go to the top of the page
+Quote Post
nospor
post 3.04.2006, 11:43:40
Post #49





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
jeszcze zapamietywanie podstron w sesjach i bedzie perfekto
No przecież to jest smile.gif proponuję przeczytac opis klasy na początku kody, oraz posty w topicu. Zapamietywanie w sesji bylo przez caly czas. Co poniektórzy chcieli by mozna bylo to wyłączyc, więc dorobilem i tę mozliwość. ale domyslnie jest wlączone zapamietywanie w sesji. Moze ty nie startujesz sesji i dlatego ci nie dziala winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
acztery
post 3.04.2006, 11:45:07
Post #50





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


tak masz racje nie mam session_start()


a co z tym 1 wolnym uruchomieniem
Go to the top of the page
+Quote Post
nospor
post 3.04.2006, 11:48:08
Post #51





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




jestes pewien ze to chodzi o generowanie pagera? zmierz czas przed Render() i po i sprawdź czy oby na pewno to to. Na pager nie powinno miec to wplywu. No chyba ze cos jest cacheowane lub cos w tym stylu.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
acztery
post 3.04.2006, 11:52:31
Post #52





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


w smartach jest włączone cacheowonie.

Oki w sesji trzyma ale dla każdek kategorii ktora mi zliczna wartosc jest stala. trzeba definiowac id pagera ? do tego zeby dzialalo dla kazdej kategori byla wyswetlona ostatnia przegladana podstrona
Go to the top of the page
+Quote Post
nospor
post 3.04.2006, 11:54:43
Post #53





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
trzeba definiowac id pagera
No tak. Przy inicjacjalizacji pagera zapodajesz unikalne dla niego id. Po tym wlasnie id jest rozpoznawany dany pager. Jesli chcesz miec pager unikalny dla kazdej kategorii, to musisz w id to rozróżnic, poprzez np. id kategori jako przedrostek lub cos w tym stylu. Wowczas dla kazdej kategorii, będzie pamietany stan Pager'a


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
acztery
post 3.04.2006, 11:56:42
Post #54





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


wypas super robota
Go to the top of the page
+Quote Post
nospor
post 13.06.2006, 16:08:47
Post #55





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




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 smile.gif
4) no i obecna wersja jest pod php5. Niedlugo dorobie tez wersje pod php4.

Zapraszam do sciagania i testowania:
http://nospor.vis-maior.net/index.php?m=dw...f1b1913f5cf5dee
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bigZbig
post 18.07.2006, 11:30:39
Post #56





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Bardzo mi sie podoba ograniczenie pracy pagera jedynie do generowania kompletu odsylaczy. Przekazujesz do obiektu pagera odpowiednie dane a on sie zajmuje tym do czego zostal stworzony. Mam tu tylko jedna uwagę. Moim zdaniem dane niezbedne do pracy pagera powinny byc przekazywane do konstruktora (np. w postaci tablicy config). Setery i getery powinny zmieniac jedynie wlasciwosci domyslne lub takie, ktore chcemy zmienic w jakim etapie pracy obiektu.

Przydalby sie jakis sposob umozliwiajacy konstruowanie przyjaznych urli. Poniewaz tzw nice urls moga miec rozny wyglad - w zaleznosci od implementacji dobrze byloby sie w tym wypadku posluzyc wzorcem strategii i wylaczyc odpowiedzialna za generowanie linkow funkcjonalnosc do osobnej klasy - routera. Uzytkownik uzywajacy przyjaznych urli moglby sobie napisac wlasnego routera implementujacego oczywiscie odpowiedni interfejs.

Tym samym wzorcem moznaby sie posluzyc w warstwie wizualnej przy konstruowaniu wiggetow. Kazda taka klasa wizualizujaca pagera mialaby przykladowo metode renderPagerBar ktora zwracalaby gotowy kod html pagera. Oczywiscie pozostawilbym tez metody dajace dostep bezposredni do danych "surowych" wygenerowanych przez pegera umozliwiajacych wspolprace danej klasy z systememi szablonow. Za dane surowe rozumiem tu:
  • liczbe stron,
  • liczbe elementow na stronie,
  • indeks poczatkowy,
  • indeks koncowy,
  • tablice odsylaczy do kolejnych stron,
  • komplet odsylaczy: do przodu, do tylu, na poczatek, na koniec itd.
W kazdym razie to, co robi metoda _createLink jet moim zdaniem praca dla dwoch zewnetrznych, wyspecjalizowanych klas (router i view).


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
nospor
post 18.07.2006, 11:41:34
Post #57





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
Moim zdaniem dane niezbedne do pracy pagera powinny byc przekazywane do konstruktora (np. w postaci tablicy config).
W zasadzie to tylko liczba rekordow jest potrzebna. Faktycznie moze byc w konstruktorze.

Cytat
Tym samym wzorcem moznaby sie posluzyc w warstwie wizualnej przy konstruowaniu wiggetow. Kazda taka klasa wizualizujaca pagera mialaby przykladowo metode renderPagerBar ktora zwracalaby gotowy kod html pagera. Oczywiscie pozostawilbym tez metody dajace dostep bezposredni do danych "surowych" wygenerowanych przez pegera umozliwiajacych wspolprace danej klasy z systememi szablonow. Za dane surowe rozumiem tu:
liczbe stron,
liczbe elementow na stronie,
indeks poczatkowy,
indeks koncowy,
tablice odsylaczy do kolejnych stron,
komplet odsylaczy: do przodu, do tylu, na poczatek, na koniec itd.
NIe wiem czy cie dobrze zrozumialem, ale to wszystko teraz przeciez jest. Kazdy moze napisac sobie wlasna klase dziedziczącą po Pager i napisac wlasna metode do generowania html, kazdy moze napisac metode zewnetrzną i zapodac ja do Pagera. kazda z tych metod dostaje wlasnie surowe dane w postaci tablicy

Cytat
W kazdym razie to, co robi metoda _createLink jet moim zdaniem praca dla dwoch zewnetrznych, wyspecjalizowanych klas (router i view).

_createLink jest tylko i wylacznie w celu domyslnego generowania pagera. kazdy kto chce sobie generowac wlasny pager Tworzy wlasne metody. Tu nie ma problemu

Co do nice urls to bede musial z czasem sie przyjrzec temu smile.gif
Dzieki za uwagi.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bigZbig
post 18.07.2006, 11:55:51
Post #58





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Cytat(nospor @ 18.07.2006, 12:41 ) *
NIe wiem czy cie dobrze zrozumialem, ale to wszystko teraz przeciez jest. Kazdy moze napisac sobie wlasna klase dziedziczącą po Pager i napisac wlasna metode do generowania html, kazdy moze napisac metode zewnetrzną i zapodac ja do Pagera. kazda z tych metod dostaje wlasnie surowe dane w postaci tablicy
Chodzi wlasnie o ten domyslny widok. Wylacz to do osobnej klasy i napisz do niej interfejs (bedzie to cos w rodzaju wzoru tyle, ze zamiast klasy abstrakcyjnej napiszesz w pelni funkcjonalna). Jak ktos bedzie chcial sobie napisac swoj widok to albo wydziedziczy Twoja klase, albo napisze od nowa jednak implementujac odpowiedni interfejs. Jak bedzie chcial uzyc szablonu to zrobi to tak jak to umozliwiles teraz czyli pobierze sobie "surowe" dane i wstawi do szablonu.


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
nasty
post 2.08.2006, 10:28:01
Post #59





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

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


Ja osobiscie Pager-a uzylem do pewnego projekyu i przyznam ze jest b. dobry, ale musialem sobie go trocke zmodyfikowac ...
A konkretniej to ostatnia funkcje "_createLink" w ktorej zmienilem metode twozenia linkow, otoz dodalem do klasy "public $link_format = <link>";,
gdzie <link> jest puzniej zamieniane na zmenne GET ktore sa podszebne do zmainy strony, zrobilem to bo bardzo podszebowalem zeby to wszystko bylo na ajax.
I proponuje dodanie takiej zmiany do oryginalnej klasy, na wypadek jak tos (np. ja) ma dziwne potszeby.
Go to the top of the page
+Quote Post
nospor
post 2.08.2006, 10:32:52
Post #60





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




@nasty_psycho ale ty uzywales Pager ver 2.0? Przeciez ta wersja klasy umozliwia uzytkownikom pisanie wlasnych metod do renderowania Pagera. _createLink jest metodą prywatną i wykorzystywaną tylko dla domyslnego wygladu. Domyslny wyglad zmienia sie poprzez dziedzieczenie, bądź tez zapodania do klasy wlasnej funkcji generującej. W kodzie klasy nie trzeba nic modyfikowac.

edit: pozatym w konstruktorze klasy jest parametr $pageLink, do ktorego wkladasz to i owo. mozesz tam i swoje Get wstawic, co pisales


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

12 Stron V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 07:45