19:06 <@defc0n> witam wszystkich
19:07 <@defc0n> na poczatku chcialem przeprosic wszystkich za niedokonczoiny wyklad tydzien temu
19:07 <@defc0n> powodem bylo odzciecie mnie od sieci :)
19:07 <@defc0n> moze podam jakimi zagadnieniami dzis sie zajmiemy:
19:07 <@defc0n> + porownanie z innymi skryptami;
19:07 <@defc0n> + lancuch od $action[] po formularze
19:07 <@defc0n> + budowa styli
19:08 <@defc0n> + jaki pisac mody
19:08 <@defc0n> + linki
19:08 <@defc0n> + plany na przyszlosc, info i EOF.
19:09 <@defc0n> tydzien temu niektorzy z was pytali jak SMF sprawuje sie w porownaniu z innymi skryptami
19:09 <@defc0n> SMF jest w tej chwili jednym z najlepszych forum integrujacych sie z takimi CMS'ami, jak Mambo, MKPortal, czy Joomla
19:09 <@defc0n> czasem wolno chodzi, ale powodem tego jest multum funkcji
19:10 <@defc0n> inne skrypty jak PunBB musza byc modyfikowane, aby uzyskac podobny stopien
19:10 <@defc0n> porownujac z phpBB (by Przemo) SMF generuje mniej zapytan, jest szybsze i lepsze pod wzgledem funkcji
19:11 <@defc0n> wiekszosc skryptow nie mozna porownywac, poniewaz sa one tworzone w roznych celach
19:11 <@defc0n> najlepiej zainstalowac najpopularniejsze skrypty na localhoscie i samemu wybrac, ktory nam przypada do gustu
19:11 <@defc0n> pyt.?
19:11 < Afro_PL> nope ;]
19:12 <@defc0n> :)
19:12 <@defc0n> teraz zajmijmy sie budowa
19:12 <@defc0n> opiszemy caly lancuch od wybierania akcji przez wczytywanie styli i jezykow po przesylanie formularzami danych
19:13 <@defc0n> jak juz wspomnialem tydzien temu wszystko 'przechodzi' przez plik index.php w katalogu glownym
19:13 <@defc0n> to wlasnie tam mamy zadeklarowana tablice $action, ktora zawiera elementy-tablice
19:13 <@defc0n> ktore z kolei zawieraja 2 elementy
19:14 <@defc0n> pierwszy z nich to nazwa pliku w katalogu Source, ktory chcemy urzyc
19:14 <@defc0n> drugi natomiast to nazwa funkcji w danym pliku
19:15 <@defc0n> gdy 'akcja' przechodzi do podrzednego pliku, najpierw mamy $subActions[], ktora sklada sie z takich samych elementow, jak jej mamuska $action
19:15 <@defc0n> * $actionArray
19:15 <@defc0n> przepraszam ;-)
19:16 <@defc0n> w naszym 'sub' pierwszy elementto nazwa funkcji, a drugi to prawa jakie musimy miec do wykonywania
19:16 <@defc0n> po tym mamy uzyta funkcje isAllowedTo();
19:16 <@defc0n> sprawdza ona czy mozemy wykonywac cokolwiek w danym pliku
19:17 <@defc0n> nastepnym krokiem jest ladowanie stylu
19:17 <@defc0n> w tym celu zostala stworzona funkcja loadTemplate($template_name);
19:17 <@defc0n> i ladowanie jezyku
19:17 <@defc0n> loadLanguage($template_name);
19:18 <@defc0n> widzimy tutaj takie same argumenty funkcji
19:18 <@defc0n> ostatnio podawalem (a wlasciwie afro; greetz) linki do dodatkow, ktore przygotowalem
19:18 <@defc0n> zajrzyjcie do czesci C
19:18 <@defc0n> http://smf.damnedangels.net/DodatekC.txt
19:19 <@defc0n> widzimy tu takie same nazwy plikow w katalogu ze stylem (/forum/Themes/default/) i katalogu z plikami jezykowymi
19:20 <@defc0n> (/forum/Themes/default/languages/)
19:20 <@defc0n> zajrzyjmy do wnetrza funkcji
19:20 <@defc0n> najpierw style
19:21 <@defc0n> aby lepiej wam to wytlumaczyc mozecie sciagnac paczke ze strony http://simplemachines.org/
19:21 <@defc0n> w pliku /Sources/Load.php mamy wszystko co nas interesuje
19:21 <@defc0n> loadTemplate() - na poczatku jest includowany ustawiony styl
19:21 <@defc0n> i sprawdzany na jakim bazuje
19:22 <@defc0n> jest to potrzebne w przypadku, kiedy brakuje jakiegos pliku , a jest on potrzebny
19:22 <@defc0n> pozniej sa sprawdzane rozne mozliwosci nieistnienia styli etc
19:23 <@defc0n> czyli wyswietlanie errorow
19:23 <@defc0n> po pozytywnym zaladowaniu, styl jest ladowany, ale to nie koniec operacji
19:23 <@defc0n> sprawdzana jest jeszcze (na wszelki wypadek) kompatybilnosc z obecna wersja skryptu
19:23 <@defc0n> podowbnie wyglada to w ladowaniu jezykow
19:24 <@defc0n> pierw jest pobieranie nazwy, jaki user sobie ustawil
19:24 <@defc0n> pozniej jest sprawdzanie sciezek do plikow i ich include
19:24 <@defc0n> jesli natomiast cos nie pasuje, to zostaje wyswietlany error
19:24 <@defc0n> nie jest to nic skomplikowanego
19:25 <@defc0n> kazdy co chodz troche zna php, bedzie wiedzial o co w tym biega
19:25 <@defc0n> teraz przesylanie danych
19:26 <@defc0n> w adresach $actionArrayjest oddzielone od $subActions separatorem - ';'
19:27 <@defc0n> czyli cos takiego: http://nasze_forum/index.php?action=admin;...
19:27 <@defc0n> w kodzie wyglada to tak:
19:28 <@defc0n> $subActions = array(
19:28 <@defc0n> 'add' => array('AddMembergroup', 'manage_membergroups'),
19:28 <@defc0n> 'delete' => array('DeleteMembergroup', 'manage_membergroups'),
19:28 <@defc0n> 'edit' => array('EditMembergroup', 'manage_membergroups'),
19:28 <@defc0n> 'index' => array('MembergroupIndex', 'manage_membergroups'),
19:28 <@defc0n> 'members' => array('MembergroupMembers', 'manage_membergroups'),
19:28 <@defc0n> 'settings' => array('ModifyMembergroupSettings', 'admin_forum'),
19:28 <@defc0n> );
19:28 <@defc0n> nastepnie jest wywolanie:
19:29 <@defc0n> $subActions[$_REQUEST['sa']][0]();
19:30 <@defc0n> pozniej juz sa same funkcje
19:30 <@defc0n> wyglad formularzy jest w 'templatkach', ale kod wykonywany jest w plikach Sources
19:30 <@defc0n> <form action="' . $scripturl . '?action=membergroups;sa=add;generalgroup" method="post" style="margin: 0;">
19:31 <@defc0n> widzimy tutaj, ze dane sa czytane za pomoca zmiennej $_POST
19:31 <@defc0n> natomiast adres pliku jest skrotem funkcji
19:31 <@defc0n> dzieki temu kod wyglada bardzo ladnie i jest (co najwazniejsze) optymalny
19:31 <@defc0n> pyt.?
19:32 <@defc0n> (i czy wogole ktos tego slucha :D )
19:32 <%Robol> tak
19:32 <%Robol> ;]
19:32 <@defc0n> ;]
19:32 <@defc0n> przejdzmy do budowy styli
19:32 <@defc0n> pierwszym krokiem jest iczywiscie design
19:33 <@defc0n> musimy jednak pamietac o odpowiednik ukladzie:
19:33 <@defc0n> 1. Czesc gorna - menu, powitanie, aktualnosci etc
19:33 <@defc0n> 2. Wlasciwa czesc forum - listing dzialow, wiadomosci, zarzadzanie, komunikaty etc
19:33 <@defc0n> 3. Dolna czesc - statystyki, lista online, prawa autorskie no i oczywiscie standardy w3c etc ;-)
19:33 <@defc0n> najlepiej na poczatku zrobic cala grafike i kod strony, a pozniej ew. przerabiac go odpowiednio
19:34 <@defc0n> piszmy zgodnie ze standardami, wykorzystujac CSS! :)
19:34 <@defc0n> takze pamietajmy o zachowaniu odpowiednich nazw
19:35 <@defc0n> nie musimy pisac wszystkich plikow stylu, takie jak sa w default
19:35 <@defc0n> osobiscie polecam napisac tylko 4:
19:35 <@defc0n> index.template.php - strona glowna
19:35 <@defc0n> BoardIndex.template.php - wyswietlenie dzialow
19:35 <@defc0n> MessageIndex.template.php - wyswietlenie wiadomosci w dzialach
19:35 <@defc0n> Display.template.php - wyswietlenie wiadomosci (tresc, avatary etc)
19:35 <@defc0n> jesli jakiegos zabrakie to SMF skorzysta wlasnie z domyslnego stylu
19:37 <@defc0n> cale projektowanie opiera sie na zachowaniu sposobu pisania themow
19:37 <@defc0n> moze omowmy plik index.template.php, poniewaz jest on najwazniejszy, a reszta wyglada podobnie
19:37 <@defc0n> zaczynamy template_init();
19:37 <@defc0n> funkcja ta zawieta wszystkie ustawienia dot. rodzaju dokumentu, wersji etc
19:37 <@defc0n> pozniej mamy template_main_above(); - tutaj sa headery i gorna czesc
19:38 <@defc0n> oraz template_main_below(); - dolna czesc
19:38 <@defc0n> theme_linktree(); to drzewo linkow poczawszy od nazwy forum, a skonczywszy na nazwie tematu
19:38 <@defc0n> forum --> dzial --> wiadomosc
19:39 <@defc0n> funkcja zawierajaca elementy menu to template_menu();
19:40 <@defc0n> przy pisaniu wykorzystujemy z tablic: $context, $settings, $options, $sxccripturl, $txt
19:40 <@defc0n> wazna rzecza jest uzywanie ostatnio wymienionej tablicy, poniewaz dzieki temu nasz styl bedzie obslugiwac wszystkie jezyki
19:41 <@defc0n> jesli mamy napisane pliki, to trzeba dac jakies informacje nt. autora i ewentalne readme
19:41 <@defc0n> przyklad wraz z komentarzami:
19:42 <@defc0n> <?xml version="1.0"?>
19:42 <@defc0n> <theme-info xmlns="http://www.simplemachines.org/xml/theme-info" xmlns:smf="http://www.simplemachines.org/">
19:42 <@defc0n> <!-- Nazwa stylu -->
19:42 <@defc0n> <name>Nazwa theme'u</name>
19:42 <@defc0n> <!-- Nazwa autora i jego email-->
19:42 <@defc0n> <author name="Jakas organizacja lub nick">moj_login@cos</author>
19:42 <@defc0n> <!-- Adres strony, gdzie mozemy uzyskac pomocy/informacji -->
19:42 <@defc0n> <website>http://adres_mojej_strony/</website>
19:42 <@defc0n> <!-- Ktorego szablonu ma uzyc? Domyslnie "main" -->
19:42 <@defc0n> <layers>main</layers>
19:42 <@defc0n> <!-- Ktora templatka jest glowna. Domyslnie "index" -->
19:42 <@defc0n> <templates>index</templates>
19:42 <@defc0n> <!-- Na jakim stylu bazowalismy, tzn. jesli nie ma pliku skad ma brac. Domyslna wartosc to "default" -->
19:42 <@defc0n> <based-on></based-on>
19:42 <@defc0n> </theme-info>
19:42 <@defc0n> to chyba jasne :)
19:42 <@defc0n> jak widzicie nie jest to nic trudnego
19:43 <@defc0n> moze przedstawie przykladowy plan tworznie them'a do SMF:
19:43 <@defc0n> 1. Robimy grafike i ukladamy dowolny kod strony wraz z tekstami
19:43 <@defc0n> 2. Rozkladamy kod na odpowiednie pliki i nadajemy im poprawne nazwy
19:43 <@defc0n> 3. Tniemy kod na odpowiednie funkcje
19:43 <@defc0n> 4. Wprowadzamy zmienne takze dot. obrazkow
19:43 <@defc0n> 5. Nasze teksty zamieniamy na elementy tablicy $txt
19:43 <@defc0n> 6. Sprawdzamy poprawnosc kodu i czy wszystko dziala
19:43 <@defc0n> 7. Czujmy satysfakcje i cieszmy sie :D
19:43 <@defc0n> pyt.?
19:43 < Eun|dnd> brak
19:44 <@defc0n> ok
19:44 < Rakuda> miał
19:44 <@defc0n> chcecie posluchac o integracji, czy wystarczy to co tydzien temu?
19:45 < Rakuda> im chyba jest obojetnie ;p
19:45 <@defc0n> ok, zapytam jeszcze na koniec, a teraz lecimy dalej ;-)
19:45 <@defc0n> dokonczmy zagadnienie modow
19:45 <@defc0n> ich budowa jest banalna
19:46 <@defc0n> aby opanowac pisanie modyfikacji, musimy znac php (+MySQL) i budowe SMF
19:46 <@defc0n> spis takow i kolejnosc ich uzywania przygotowalem w dodatku b:
19:46 <@defc0n> http://smf.damnedangels.net/DodatekB.txt
19:46 <@defc0n> chcecie chwile na przejzenie tego?
19:47 <@defc0n> *przejrzenie
19:47 <@defc0n> ok ; p
19:47 < d3m0n> ja już jestem ślepy..
19:47 <@defc0n> tzn.?
19:48 <@defc0n> ; >
19:48 < darkjames> lidia: iwil!
19:49 <@defc0n> jak widzicie plik package_info.xml zawiera informacje nt. tworcy, wersji etc, a takze krotkie readme
19:49 <@defc0n> natomiast nasz_mod.xml (moga byc inne rozszerzenia np. mod, ale ja polecam xml) zawiera wlasciwy kod do wprowadzenia
19:49 <@defc0n> mozna takze wypakowywac pliki i wykonywac inne kody:
19:49 <@defc0n> <code>code.php</code>
19:49 <@defc0n> <require-file name="plik1.php" destination="$sourcedir" />
19:49 <@defc0n> <require-file name="plik2.php" destination="$boarddir/Themes/default" />
19:49 <@defc0n> <require-file name="plik3.php" destination="$boarddir/Themes/default" />
19:50 <@defc0n> code wiadomo co robi, natomiast require-file wypakowuje plik (dotyczy wszystkich formatow)
19:50 <@defc0n> teraz mzoe cos skonstruujmy
19:50 <@defc0n> bedzo to mod dodajacy przycisk 'wyklady' w menu do stylu default
19:51 <@defc0n> package_info.xml
19:51 <@defc0n> <?xml version="1.0"?>
19:51 <@defc0n> <!DOCTYPE package-info SYSTEM "http://www.simplemachines.org/xml/package-info">
19:51 <@defc0n> <package-info xmlns="http://www.simplemachines.org/xml/package-info" xmlns:smf="http://www.simplemachines.org/">
19:51 <@defc0n> <id>#wyklady:WykladyMod</id>
19:51 <@defc0n> <name>Wyklady Mod</name>
19:51 <@defc0n> <version>0.0.1</version>
19:51 <@defc0n> <type>modification</type>
19:51 <@defc0n> <install>
19:51 <@defc0n> <readme type="inline">Tworcy modyfikacji:
19:51 <@defc0n> 19:51 [Users #wyklady]
19:51 <@defc0n> 19:51 [@defc0n ] [ Admiral ] [ d3m0n ] [ java-tpqh ] [ Mkzm ] [ strength ]
19:51 <@defc0n> 19:51 [@lidia ] [ Afro_PL ] [ darkjames] [ ketinszu ] [ Morgan ] [ szczeles ]
19:51 <@defc0n> 19:51 [@phoenix__ ] [ b3x ] [ dfgg ] [ kiero ] [ narsil ] [ Tianhao ]
19:51 <@defc0n> 19:51 [@R3xi0 ] [ beomboy ] [ DJ_cool__] [ klocek ] [ pineska ] [ tick ]
19:51 <@defc0n> 19:51 [@salvation_] [ Bi3gan ] [ erpe ] [ klupek ] [ Pisklak ] [ Transmiter ]
19:51 <@defc0n> 19:51 [@unknow ] [ Bleee ] [ Eun|dnd ] [ kotek ] [ pixa`sc ] [ UniqAnomaly]
19:51 <@defc0n> 19:51 [%j00ru ] [ Blizzus ] [ fLover ] [ L0R ] [ Q-IK ] [ urmel|aoc ]
19:51 <@defc0n> 19:51 [%Karql ] [ cauchy ] [ FreeS ] [ Lux|jezioro] [ Rakuda ] [ Valarius ]
19:51 <@defc0n> 19:51 [%meal ] [ chochlik] [ freesher ] [ martinus7pl] [ renno ] [ VallThore ]
19:51 <@defc0n> 19:51 [%Robol ] [ cinq ] [ g0ral ] [ Mecq ] [ robmal ] [ wassup ]
19:51 <@defc0n> 19:51 [ __w__ ] [ crgh0st ] [ Goz-tt`- ] [ micek_aw ] [ salvation] [ Xorn ]
19:51 <@defc0n> 19:51 [ adam_i ] [ d0b0c0p ] [ Hellwing ] [ mikel ] [ Slim ]
19:51 <@defc0n> 19:51 -!- Irssi: #wyklady: Total of 71 nicks [6 ops, 4 halfops, 0 voices, 61 normal]
19:51 <@defc0n> Mod dodaje przycisk 'wyklady' do menu w stylu default.
19:51 <@defc0n> Have Fun!
19:51 <@defc0n> </readme>
19:51 <@defc0n> <modification>wyklady_mod.xml</modification>
19:51 <@defc0n> </install>
19:51 <@defc0n> <uninstall>
19:51 <@defc0n> <readme type="inline">Dziekujemy za promowanie naszego projektu ;-)</readme>
19:51 <@defc0n> <modification reverse="true">wyklady_mod.xml</modification>
19:51 <@defc0n> </uninstall>
19:51 <@defc0n> </package-info>
19:52 <@defc0n> teraz wypadaloby sie wziac za wyklady_mod.xml
19:52 <@defc0n> najpierw rozpoczynamy plik doctypr i wybieramy ofiare do modyfikacji ;p
19:52 <@defc0n> <!DOCTYPE modification SYSTEM "http://www.simplemachines.org/xml/modification">
19:52 <@defc0n> <modification xmlns="http://www.simplemachines.org/xml/modification" xmlns:smf="http://www.simplemachines.org/">
19:52 <@defc0n> <id>#wyklady:WykladyMod</id>
19:52 <@defc0n> <version>0.0.1</version>
19:52 <@defc0n> <file name="$themedir/../default/index.template.php">
19:53 <@defc0n> teraz mamy blok operacji, a nastepnie wyszukujemy dany tekst i ustawiamy w odpowiednim miejscu wskaznik
19:53 <@defc0n> <operation>
19:53 <@defc0n> <search position="before"><![CDATA[
19:53 <@defc0n> // Show the [help] button.
19:53 <@defc0n> ]]></search>
19:54 <@defc0n> no i najwazniejsza czesc, czyli dodanie naszego przyciskju:
19:54 <@defc0n> <add><![CDATA[
19:54 <@defc0n> // Przycisk do wyklady.net ;-)
19:54 <@defc0n> echo ($current_action=='xxx' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '"> </td>' : '' , '
19:54 <@defc0n> <td valign="top" class="maintab_back">
19:54 <@defc0n> <a href="http://wyklady.net/">WYKLADY</a>
19:54 <@defc0n> </td>';]]></add>
19:54 <@defc0n> zamykamy blok i caly mod
19:54 <@defc0n> </operation>
19:54 <@defc0n> </file>
19:54 <@defc0n> </modification>
19:56 <@defc0n> to taki to taki mod na rozgrzewke. mam nadzieje, ze niedlugo czesc z was napisze cos swojego ;-)
19:57 <@defc0n> jak widzicie wystarczy krotki trening i ambicje, a SMF mozemy calkiem modyfikowac
19:57 <@defc0n> pyt.?
19:57 < darkjames> 1/ wklejanie /names na kanal jest zle.
19:57 < Rakuda> http://swinka.od.wodza.patrz.pl/
19:57 < Rakuda> cos na chumor
19:57 < Rakuda> ;p
19:57 < darkjames> 2/ to jest xml? czyli trzeba eskejpowac znaki?
19:57 < Rakuda> Wykladu
19:57 < Rakuda> ;p
19:58 < darkjames> 3/ w DTD nie ma okreslonego kodowania, czyli musi byc jakies utf-8 czy dowolne?
19:58 <@defc0n> darkjames: czemu zle wklejanie?
19:58 < darkjames> defc0n: highlitujesz wszystkim.
19:58 < darkjames> a w sumie nic od nich nie chcesz.
19:58 <@defc0n> dowolne kodowanie
19:58 <@defc0n> darkjames: nie, poniewaz jest [ przed tym ;-)
19:59 < darkjames> defc0n: i co z tego?
19:59 < darkjames> defc0n: ale to '[' to do 2 czy 1? :)
19:59 <%Robol> defc0n: wklej tego moda jeszcze do jakiegos *.txt i daj linka, bedzie lepiej czytac i uzywac
19:59 < darkjames> Robol: to potem w logach, bedzie sparsowane..
19:59 < darkjames> bedzie czytelne.
19:59 <@defc0n> to do 2
20:00 < darkjames> defc0n: i mh, jak jest [ to nie trzeba eskejpowac?
20:00 <@defc0n> Robol: po wykladzie zrobie paczke i sam zainstalujesz sobie :0
20:00 <@defc0n> :)
20:00 <%Robol> ale zostanie to "[godzina] <nick>"
20:00 <%Robol> defc0n: ok, thx
20:00 <@defc0n> ah darkjames do 4 ;p
20:00 <@defc0n> darkjames: dowolne kodowanie moze byc
20:01 < darkjames> defc0n: a jak masz 1 mod w utf-8 a drugi w iso-8859-2
20:01 <@defc0n> ale najlepiej dac utf, bo pozniej masz krzaki w readme
20:01 <@defc0n> ale reszta ok
20:01 < darkjames> to sobie automagicznie rekoduje?
20:01 < darkjames> ;a no czyli nie tak calkiem dowolne ;)
20:01 <@defc0n> ;-)
20:01 <@defc0n> jeszcze cos?
20:03 <@defc0n> teraz moze podam wam pare linkow gdzie szukac porad lub znalezc troche fajnych bajerow:
20:03 <@defc0n> + simplemachines.org - glowna strona SMF - znajdziecie tu gotowe mody, style etc. jest to forum wielojezyczne
20:04 <@defc0n> + smf.pl - wg mnie najlepszy polski support tego skryptu (jest jakas konkutencja? :P), mnie tez mozecie tam znalezc ;-)
20:05 <@defc0n> + tinyportal.net - strona poswiecona CMS'owi, ktory zostal specjalnie napisany pod SMF; sa tam takze style do SMF; autorem jest Bloc - osoba z teamu simplemachines (grafik)
20:05 <@defc0n> + smf.oldiesman.net - tutaj mozecie testowac style bez zadnych przeszkod - autorem jest oldiesman j/w osoba z teamu
20:05 <@defc0n> + smfforfree.com - odpowiednik polskiego fora.pl
20:06 <@defc0n> a jakie sa plany na przyszlosc SMF?
20:06 <@defc0n> kraza plotki, ze w tym roku (gdzies na jesien) ma zostac wydana wersja 1.1 RC3, a na poczatek przyszlego roku wersja finalna 1.1
20:06 <@defc0n> do skryptu zostanie dodane wiele nowych funkcji
20:07 <@defc0n> ogolnie rozwoj+optymalnosc+ogolnodostepnosc przede wszystkim
20:07 <@defc0n> przyklad integracji strony z smf macie tutaj:
20:08 <@defc0n> http://smf.damnedangels.net/
20:08 <@defc0n> oraz forum do testowabua dla was:
20:08 <@defc0n> http://smf.damnedangels.net/forum/
20:09 <@defc0n> wszyscy maja prawa admina, ale zanim zacznicie zabawe w destrukcje (;p) przeczytajcie temat "!UWAGA!"
20:09 <@defc0n> zostawilem tam pare informacji
20:10 <@defc0n> pyt.? :)
20:10 <%Robol> OTWIERAJ TO FORUM ;P
20:10 <%Robol> kto pierwszy ;]
20:11 <%Robol> sie zarejestruje
20:11 <@defc0n> juz
20:11 < marines> jest :D
20:11 <@defc0n> ;-)
20:11 <%Robol> i poszli...
20:12 <@defc0n> jesli ktos by chcial wysluchac wiecej nt. SMF to prosze pisac na forum (wykladow), a moze kiedys poprowadze druga czesc
20:12 <@defc0n> dla mnie caly ten projekt jest przyjemnoscia i jesli ktos potrzebuje rady to z checia pomoge ;-)
20:13 <@defc0n> mam nadzieje, ze nie zanudzalem dzisiaj
20:13 <@defc0n> za wszystkie bledy przepraszam etc etc ;p
20:13 <@defc0n> GreetZ!