Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa] Chameleon 1.9.1, Prosta ale szybka obsługa szablonów
Bastion
post
Post #1





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


Witam ponownie,

Biorąc pod uwagę opinie i zalecenia forumowiczów , powstała pierwsza stabilna i oficjalna wersja klasy Chameleon do obsługi szablonów. Na wstęp drobne porównanie z klasą Smarty.

Test symulujący całkowite przeładowanie strony z wykorzystanie cache dyskowego.
Smarty korzysta ze skompilowanych szablonów , Chameleon z mapy tagów :

Smarty : 500 iteracji (20 zmiennych) = 0.3475s
Smarty : 500 iteracji (10 zmiennych) = 0.3067s
Smarty : 500 iteracji (5 zmiennych) = 0.2965s
Chameleon : 500 iteracji (20 zmiennych) = 0.2336s
Chameleon : 500 iteracji (10 zmiennych) = 0.2095s
Chameleon : 500 iteracji (5 zmiennych) = 0.2105s

Kolejny test symulujacy kilkakrotne parsowanie szablonu podczas jednego wywolania strony, sytuacja ma miejsce gdy parsujemy kilkakrotnie ten sam szablon (np. formatka newsa) z zaladowana mapa tagow w pamieci. Oto wyniki :

Smarty : 500 powtórzeń (20 zmiennych) = 0.2462s
Chameleon : 500 powtórzeń (20 zmiennych) = 0.0981s

---------------- Co potrafi Chameleon :
# Cache tagow na dysku twardym
# Zmienne typu : {zmienna} {test}
# Zmienne tablicowe jednowymiarowe : {tablica[0]} {tablica[1]}
# Zagniezdzone IFy dowolnej glebokosci z obsluga negacji oraz ELSE (Narazie warunek sprawdzany jest logicznie tylko czy zmienna jest ustawiona)
# Petle szablonowe
# Podswietlanie blednych tagow
# Proste operacje matematyczne
----------------------------------------------------------

  1. <?php
  2.  
  3. require_once('../libs/class.chameleon.php');
  4.  
  5. $tpl = new Chameleon;
  6.  
  7. // Ustawienie sciezek dostepu do szablonow i cache mapy tagow
  8. $tpl->template_dir = './templates'; // default
  9. $tpl->tags_dir = './templates_tags'; // default
  10.  
  11. // Ustawienie czy przechowywac tagi
  12. $tpl->store_tags = true; // default
  13.  
  14. // Wczytsanie szablonu
  15. $tpl->load('example1.tpl');
  16.  
  17. // Dodanie zmiennej
  18. $tpl->setVar('title', 'Witaj przyjacielu');
  19.  
  20. // Wyswietlenie szablonu
  21. $tpl->display();
  22.  
  23. ?>

Przyklad 1 : Zmienne zwykle
Szablon : http://www.vertis.com.pl/chameleon/example...es/example1.tpl
Demo : http://www.vertis.com.pl/chameleon/example...es/example2.php

--

  1. <?php
  2.  
  3. require_once('../libs/class.chameleon.php');
  4.  
  5. $tpl = new Chameleon;
  6.  
  7. // Ustawienie sciezek dostepu do szablonow i cache mapy tagow
  8. $tpl->template_dir = './templates'; // default
  9. $tpl->tags_dir = './templates_tags'; // default
  10.  
  11. // Ustawienie czy przechowywac tagi
  12. $tpl->store_tags = true; // default
  13.  
  14. // Wczytsanie szablonu
  15. $tpl->load('example3.tpl');
  16.  
  17. // Dodanie zmiennej
  18. $tpl->setVar('title', 'Witaj przyjacielu');
  19.  
  20. // Zmienna tablicowa
  21. $tablica = array('0' => 'mama', '1' => 'tata');
  22. $tpl->setVar('rodzice', $tablica);
  23.  
  24. // Wyswietlenie szablonu
  25. $tpl->display();
  26.  
  27. ?>

Przyklad 3 : Zmienne tablicowe
Szablon : http://www.vertis.com.pl/chameleon/example...es/example3.tpl
Demo : http://www.vertis.com.pl/chameleon/example...es/example3.php

--

  1. <?php
  2.  
  3. require_once('../libs/class.chameleon.php');
  4.  
  5. $tpl = new Chameleon;
  6.  
  7. // Ustawienie sciezek dostepu do szablonow i cache mapy tagow
  8. $tpl->template_dir = './templates'; // default
  9. $tpl->tags_dir = './templates_tags'; // default
  10.  
  11. // Ustawienie czy przechowywac tagi
  12. $tpl->store_tags = true; // default
  13.  
  14. // Wczytsanie szablonu
  15. $tpl->load('example6.tpl');
  16.  
  17. // Dodanie zmiennej
  18. $tpl->setVar('title', 'Witaj przyjacielu');
  19. $tpl->setVar('zmiennaA', 10);
  20. $tpl->setVar('zmiennaC', true);
  21.  
  22. // Wyswietlenie szablonu
  23. $tpl->display();
  24.  
  25. ?>

Przyklad 6 : Warunki
Szablon : http://www.vertis.com.pl/chameleon/example...es/example6.tpl
Demo : http://www.vertis.com.pl/chameleon/example...es/example6.php

--

  1. <?php
  2.  
  3. require_once('../libs/class.chameleon.php');
  4.  
  5. $tpl = new Chameleon;
  6.  
  7. // Ustawienie sciezek dostepu do szablonow i cache mapy tagow
  8. $tpl->template_dir = './templates'; // default
  9. $tpl->tags_dir = './templates_tags'; // default
  10.  
  11. // Ustawienie czy przechowywac tagi
  12. $tpl->store_tags = true; // default
  13.  
  14. $newsy[0] = array ('topic' => 'Temat Pierwszy', 'content' => 'Tresc 1');
  15. $newsy[1] = array ('topic' => 'Temat Drugi', 'content' => 'Tresc 2');
  16. $newsy[2] = array ('topic' => 'Temat Trzeci', 'content' => 'Tresc 3');
  17. $newsy[3] = array ('topic' => 'Temat Czwarty', 'content' => 'Tresc 4');
  18.  
  19. // Wczytsanie szablonu
  20. $tpl->load('example7.tpl');
  21.  
  22. // Dodanie zmiennej
  23. $tpl->setVar('title', 'Witaj przyjacielu');
  24. $tpl->setVar('newsy', $newsy);
  25.  
  26. // Wyswietlenie szablonu
  27. $tpl->display();
  28.  
  29. ?>

Przyklad 7 : Petle w szablonie
Szablon : http://www.vertis.com.pl/chameleon/example...es/example7.tpl
Demo : http://www.vertis.com.pl/chameleon/example...es/example7.php

--

Klasę w wersji 1.0.0 można pobrać z http://www.vertis.com.pl/

Ten post edytował Bastion 18.06.2006, 22:58:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


To znowu ja (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Chcialem poczekac na RC3 OPT, bo w obecnej wersji jest blad z tym co pisalem wyzej, ale cos doczekac sie nie moge (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Wprowadzilem pare malych zmian, aby kod byl troche czytelniejszy, no i teraz przy wlaczonym cachowaniu nie pobieraja sie dane (wczesniej sie pobieraly mimo wlaczonego cachowania, wiec niepotrzebny narzut). Spowodowalo to lekkiego boosta w testach z cachem (tam gdzie jest on dostepny), no ale dziwne to raczej nie jest.
Dodalem tez nowy szablon, ktory rozni sie od pierwszego tylko tym, ze tablica, po ktorej ten szablon iteruje zawiera obiekty, a nie tablice asocjacyjne.

Ponizej zamieszczam nowe wyniki.
Kod
Cache = 0
Template = tpl_1.html

Testing Chameleon 1.1.0 CVS            => skipped
Testing Chameleon 1.1.5                => skipped
Testing Chameleon 1.2.0                =>  100.00 requests/s
Testing Nemesis 1.3.0b                 =>  137.14 requests/s
Testing OPT 1.0.0 RC2                  => skipped
Testing OPT 1.0.0 RC2 Lite             => skipped
Testing Savant 2.4.2                   =>  126.32 requests/s
Testing SmartTemplate 1.0.2            => skipped
Testing Smarty 2.6.12                  =>   71.11 requests/s
Testing Smarty Light 2.2.11            =>   57.14 requests/s

Cache = 1
Template = tpl_1.html

Testing Chameleon 1.1.0 CVS            => skipped
Testing Chameleon 1.1.5                => skipped
Testing Chameleon 1.2.0                =>  106.67 requests/s
Testing Nemesis 1.3.0b                 =>  290.91 requests/s
Testing OPT 1.0.0 RC2                  => skipped
Testing OPT 1.0.0 RC2 Lite             => skipped
Testing Savant 2.4.2                   =>  126.32 requests/s
Testing SmartTemplate 1.0.2            => skipped
Testing Smarty 2.6.12                  =>  117.07 requests/s
Testing Smarty Light 2.2.11            =>  162.71 requests/s

Cache = 0
Template = tpl_2.html

Testing Chameleon 1.1.0 CVS            =>   76.80 requests/s
Testing Chameleon 1.1.5                =>  102.13 requests/s
Testing Chameleon 1.2.0                =>   97.96 requests/s
Testing Nemesis 1.3.0b                 =>  162.71 requests/s
Testing OPT 1.0.0 RC2                  =>  100.00 requests/s
Testing OPT 1.0.0 RC2 Lite             =>  109.09 requests/s
Testing Savant 2.4.2                   =>  123.08 requests/s
Testing SmartTemplate 1.0.2            =>  165.52 requests/s
Testing Smarty 2.6.12                  =>   87.27 requests/s
Testing Smarty Light 2.2.11            =>  128.00 requests/s

Cache = 1
Template = tpl_2.html

Testing Chameleon 1.1.0 CVS            =>   76.80 requests/s
Testing Chameleon 1.1.5                =>  102.13 requests/s
Testing Chameleon 1.2.0                =>   97.96 requests/s
Testing Nemesis 1.3.0b                 =>  223.26 requests/s
Testing OPT 1.0.0 RC2                  =>  123.08 requests/s
Testing OPT 1.0.0 RC2 Lite             =>  110.34 requests/s
Testing Savant 2.4.2                   =>  124.68 requests/s
Testing SmartTemplate 1.0.2            =>  162.71 requests/s
Testing Smarty 2.6.12                  =>   93.20 requests/s
Testing Smarty Light 2.2.11            =>  110.34 requests/s

Cache = 0
Template = tpl_3.html

Testing Chameleon 1.1.0 CVS            => skipped
Testing Chameleon 1.1.5                => skipped
Testing Chameleon 1.2.0                => skipped
Testing Nemesis 1.3.0b                 =>  128.00 requests/s
Testing OPT 1.0.0 RC2                  => skipped
Testing OPT 1.0.0 RC2 Lite             => skipped
Testing Savant 2.4.2                   =>  115.66 requests/s
Testing SmartTemplate 1.0.2            => skipped
Testing Smarty 2.6.12                  =>   66.67 requests/s
Testing Smarty Light 2.2.11            => skipped

Cache = 1
Template = tpl_3.html

Testing Chameleon 1.1.0 CVS            => skipped
Testing Chameleon 1.1.5                => skipped
Testing Chameleon 1.2.0                => skipped
Testing Nemesis 1.3.0b                 =>  266.67 requests/s
Testing OPT 1.0.0 RC2                  => skipped
Testing OPT 1.0.0 RC2 Lite             => skipped
Testing Savant 2.4.2                   =>  118.52 requests/s
Testing SmartTemplate 1.0.2            => skipped
Testing Smarty 2.6.12                  =>  115.66 requests/s
Testing Smarty Light 2.2.11            => skipped


I zrodelka...
http://willow.iie.uz.zgora.pl/~ipatalas/dev/tpl_bench_AB.rar

oraz dla windowsa minimalna wersja narzedzi potrzebnych do automatycznego wykonywania testu:

http://willow.iie.uz.zgora.pl/~ipatalas/dev/unxutils.rar (wszystkie pliki oprocz cygwin1.dll oraz sh.exe musza byc gdzies w %PATH%)

Wywolanie testu polega na odpaleniu konsoli i wpisaniu w tym katalogu sh test.sh. Nie testowalem tego pod unixami, wiec prosze kogos o sprawdzenie w miare mozliwosci tego skryptu.

Zapraszam do potestowania u siebie oraz do ewentualnego uzupelnienia szablonow tam gdzie brakuja jak ktos potrafi i ma czas. Pomysly na rozbudowanie szablonow lub dodanie nowych rowniez mile widziane (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- Bastion   [klasa] Chameleon 1.9.1   10.02.2006, 00:42:38
- - hwao   chciałbym jeszcze zobaczyc "skompilowany plik...   10.02.2006, 08:30:40
- - Chewolf   Cytat(hwao @ 2006-02-10 08:30:40)ify? ekhm i...   10.02.2006, 09:45:37
- - Bastion   hwao : tu sa przechowane tagi (cache) : ags/' targ...   10.02.2006, 10:20:02
- - nospor   hmmm, fajne Rzecz, która od razu rzuca mi się w ...   10.02.2006, 10:26:45
- - Bastion   nospor : Brdzo dobry pomysl. Znalazl sie juz u mni...   10.02.2006, 10:28:36
- - nospor   hehe, żeby nie bylo, że to ja taki genialny. Tak j...   10.02.2006, 10:32:40
- - Bastion   idac za ciosem moze dodac tez tryb SILENT, np gdy ...   10.02.2006, 10:36:18
- - nospor   Cytatda to fajna mozliwosc gdy ktos np nie bedzie ...   10.02.2006, 10:46:00
- - Bastion   moze i racja musze sie z tym przespac   10.02.2006, 10:49:32
- - Diablos   Bastion: zainteresuj sie jeszcze OPT i jego mozliw...   10.02.2006, 12:21:56
- - Bastion   tzn. czym dokladnie?   10.02.2006, 14:34:31
- - bigZbig   Open Power Template   10.02.2006, 15:08:19
- - Bastion   BigZbig : znam juz ten adres - a pytalem na co kon...   10.02.2006, 15:32:59
- - ActivePlayer   co do trybu silent.. w smartym jest cos takiego ja...   10.02.2006, 15:46:52
- - Bastion   poszlo na tapete   10.02.2006, 15:52:24
- - bigZbig   Cytat(Bastion @ 2006-02-10 16:32:59)BigZbig :...   10.02.2006, 16:34:38
- - Bastion   @bigZbig moze powiesz mi jak zmusic by OPT tylko ...   10.02.2006, 16:58:15
- - bigZbig   Nie znam mozliwosci OPT wiec Ci nie powiem, ale je...   10.02.2006, 17:17:51
- - ActivePlayer   [PHP] pobierz, plaintext <?phpecho $tpl->fet...   10.02.2006, 17:17:59
- - Bastion   bigZbig : Smarty : 500 iteracji (20 zmiennych) = ...   10.02.2006, 18:27:49
- - FiDO   Jak mozesz to udostepnij caly kod testujacy, tak z...   10.02.2006, 19:27:49
- - Bastion   [PHP] pobierz, plaintext <?php  include_on...   10.02.2006, 19:39:59
- - NetJaro   Bardzo ciekawy projekt.. ahh, trzeba spróbować. G...   10.02.2006, 20:07:09
- - Bastion   NetJaro: Wszystkie uwagi , przedewszystkim krytycz...   10.02.2006, 21:15:04
- - ActivePlayer   dla mnie najwiekszy minus, to ciezka przesiadka ze...   10.02.2006, 23:10:28
- - NetJaro   Bastion, prosze, nie zrób z tego projektu jakiegoś...   11.02.2006, 00:08:22
- - Bastion   @ActivePlayer : dla mnie wielkim minusem jest ogro...   11.02.2006, 00:24:30
- - SHiP   No cóż klasa jak widze chodzi tylko pod php5 ;] pr...   11.02.2006, 01:20:16
- - Bastion   - dales prawa zapisu na katalog templates_tags ? ...   11.02.2006, 09:59:01
- - ActivePlayer   @bastion: piszesz na temat pluginów... powiem Ci t...   11.02.2006, 10:29:27
- - Bastion   @ActivePlayer: moze nie, jesli dobrze sie to rozeg...   11.02.2006, 10:40:51
- - splatch   Cytatprzyznaj ze tworzenie tpl pod smarty jest z l...   11.02.2006, 11:35:23
- - ActivePlayer   ok, w takim razie jak zrobisz u Ciebie cos takiego...   11.02.2006, 11:41:24
- - Bastion   @splatch : na moim pierwszym razie sie skonczylo ...   11.02.2006, 13:42:45
- - ActivePlayer   1. naprzemiennie kolorowane wiersze w smartym Kod{...   11.02.2006, 14:51:29
- - Bastion   {cycle} i formatowanie daty dopisane do tapety pw...   11.02.2006, 14:58:44
- - ActivePlayer   CytatSmarty 2.6.12 : 5000 iteracji (20 zmiennych) ...   11.02.2006, 15:04:59
- - Bastion   Jakie szybciej ? Chameleon tutaj jest szybszy o 6...   13.02.2006, 09:33:03
- - Kinool   hmm twoje testy sa troche syntetyczne i nie oddaja...   13.02.2006, 10:30:29
- - Bastion   hum, dobry pomysl, dzis ukoncze wersje 1.1.0 posia...   13.02.2006, 10:37:05
- - splatch   ... najlepiej używając Apache Benchmark   13.02.2006, 11:03:13
- - SHiP   Cytat(Bastion @ 2006-02-11 10:59:01)- dales p...   13.02.2006, 16:15:26
- - ActivePlayer   CytatJakie szybciej ? smile.gif Chameleon tutaj je...   13.02.2006, 16:45:53
- - Bastion   Trach trach - Chameleon 1.1.0 - wydany. Changelog...   13.02.2006, 19:43:05
- - Bastion   free dla niekomercyjnych chociaz w innych przypad...   13.02.2006, 20:14:32
- - SHiP   kurde wywlilem post o licencji bo juz znalazłem =)...   13.02.2006, 20:18:38
- - Bastion   pelny tekst licencji tu : http://www.vertis.com.pl...   13.02.2006, 20:21:04
- - FiDO   Hmm.. mialem chwile wolnego od sesji to sobie poro...   18.02.2006, 00:37:42
- - Slump   Bardzo ciekawy temat Zalezy pod jakim katem testo...   18.02.2006, 00:52:48
- - FiDO   CytatZależy pod jakim katem testowac, wyniki beda ...   18.02.2006, 01:24:19
- - Bastion   Fiu fiu Dziekuje za ciekawa opinie , chcialem zau...   18.02.2006, 05:56:01
- - splatch   Do takich testów najbardziej nadaje się apache ben...   18.02.2006, 11:36:00
- - Bastion   ab mam, jest standardowo w mojej dystrybucji. umow...   18.02.2006, 14:06:20
- - Denver   No cóż, muszę przyznać, że jestem pod wrażeniem Tw...   18.02.2006, 14:34:54
- - Bastion   Denver, o to chodzi ze FiDo tez przestawil szablon...   18.02.2006, 14:41:02
- - FiDO   No to jestem juz u siebie... testy prawie pokrywaj...   18.02.2006, 23:00:40
- - Bastion   Fido : hum faktycznie roznica wychodzi tylko w sys...   18.02.2006, 23:05:52
- - FiDO   No przydalby sie... wg mnie powinno to byc ok 10KB...   18.02.2006, 23:29:39
- - Bastion   ok, to ja jutro zapodam dwie propozycje takich TP...   18.02.2006, 23:34:01
- - hwao   Proponuje cos takiego: 5 - zwyklych zmiennych (np ...   19.02.2006, 11:11:03
- - Bastion   @hwao: wlasnie robie szablony testowe kazdy ma ro...   19.02.2006, 11:16:17
- - FiDO   @hwao: wlasnie o czyms takim myslalem :] Problem ...   19.02.2006, 11:33:22
- - Bastion   wlasnie hwao dodal pare pozycji do tapety , a ja w...   19.02.2006, 11:35:54
- - FiDO   No i wlasnie to jest to o czym pisalem... petelki ...   19.02.2006, 11:55:11
- - Bastion   FiDO - chameleon jeszcze ma jedna wade, w przypadk...   19.02.2006, 11:59:06
- - Turgon   Wszystko pięknie ładnie, ale tylko php 5, czyli źl...   19.02.2006, 13:13:03
- - Bastion   Fido: jaki jest odpowiednik w smarty do mojego (@l...   19.02.2006, 13:24:15
- - FiDO   Taki: http://smarty.php.net/manual/en/language.f.....   19.02.2006, 13:25:30
- - Bastion   no to jeszcze musze rozgrysc jak tego uzyc w odpow...   19.02.2006, 13:27:19
- - FiDO   Zeby bylo bardziej podobne do zwyklej petli for to...   19.02.2006, 13:39:39
- - Bastion   Ok, do rzeczy Wydałem przejściową wersje Chameleo...   19.02.2006, 18:20:09
- - FiDO   KodTesting Chameleon 1.1.0 CVS => 73.38 re...   19.02.2006, 18:36:23
- - Bastion   170requestow/s - magia to wymaga specjalnego pode...   19.02.2006, 18:40:49
- - Diablos   W jaki sposob testujecie ta klase za pomoca Apache...   19.02.2006, 22:53:37
- - FiDO   W takiej najprostszej wersji to: ab.exe -c 50 -n 3...   20.02.2006, 01:23:31
- - Slump   Zawsze ad opt mozesz pogadac z zyx. Na www.zyxist...   20.02.2006, 01:42:20
- - Bastion   hum, minie troche czasu zanim Chameleon stanie do ...   20.02.2006, 06:37:07
- - bigZbig   Robi sie z tego tematu bardzo ciekawy watek. Jak b...   20.02.2006, 08:56:28
- - Bastion   @FiDO: Chameleon 1.2.0 relased (changelog) - UWA...   20.02.2006, 13:38:04
- - FiDO   No to update wynikow (pelen komplet szablonow http...   20.02.2006, 19:26:23
- - Bastion   szkoda ze system tagow a chameleonie nie sprawdzil...   21.02.2006, 06:37:14
- - hwao   Swoja droga, tez napisalem system szablonów na wła...   21.02.2006, 11:53:15
- - Bastion   hum, chyba inne mozliwosci jak w php to nie ma, mo...   21.02.2006, 20:36:39
- - FiDO   A XDebug czy profiler, ktory jest w Zendzie ?   21.02.2006, 20:47:36
- - hwao   Cytat(FiDO @ 2006-02-21 20:47:36)A XDebug czy...   21.02.2006, 21:20:06
- - aleksander   profilera xdebug pod php5 nie ma. hwao apd uzywam ...   21.02.2006, 22:02:53
- - FiDO   To znowu ja Chcialem poczekac na RC3 OPT, bo w o...   3.03.2006, 19:05:49
- - sopel   Cytat(aleksander @ 2006-02-21 22:02:53)profil...   3.03.2006, 20:54:16
- - NetJaro   Mogę wiedzieć, jak czytać te wyniki? Co to znaczy ...   5.03.2006, 20:21:22
- - Bastion   114 zapytan na sekunde , czyli 114 wykonanych odpo...   5.03.2006, 20:22:33
- - NetJaro   Tzn. czym więcej tym gorzej ?   5.03.2006, 20:27:02
- - Bastion   im wiecej tym lepiej   5.03.2006, 20:28:22
- - NetJaro   :| Dziwne.. a gdy skipped, to za dużo ?   5.03.2006, 20:30:09
- - Bastion   a gdy skipped tzn ze klasa nie potrafila dokonczyc...   5.03.2006, 20:31:28
- - FiDO   Dokladnie tak. Skipped to jest, gdy dla danego tes...   5.03.2006, 20:50:38
- - Bastion   KodSlackware Linux / P4 HT 2800MHz / 512MB / Apach...   5.03.2006, 21:35:31
- - NetJaro   Skoro.. "czym więcej tym lepiej" to Twoj...   5.03.2006, 21:40:12
- - Bastion   W porownaniu z moja to zwykle smarty slabo wyszlo,...   5.03.2006, 21:43:34
- - NetJaro   A ja szukam wlasnie jakiegos systemu dobrego, bo p...   5.03.2006, 21:46:01
2 Stron V   1 2 >


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 20:49