[CI] Klasa do dynamicznych stron

Przy okazji tworzenia CMSa do bardzo prostej (prawie statycznej, jeżeli chodzi o treść) strony musiałem wyszukać sposób na przepisanie klasy routowania adresów URL tak, aby jeden kontroler obsługiwał wszystkie dynamiczne adresy. Oczywiście pomógł wujek Google, dzieki któremu znalazłem klasę, która po lekkich przeróbkach pozwoliła mi uzyskać, to co chciałem.class MY_Router extends CI_Router{ function _validate_segments($segments) { $excluded = array('administracja','login'); if (count($segments) <= 1 && !in_array($segments[0],$excluded)) { if(count($segments) == 1) { array_unshift($segments, 'main', 'page'); } elseif(count($segments) == 0) { $segments = array('main', …

[Linux] Polecane aplikacje - część 1

Jak pewnie wiele osób związanych z branżą informatyczną (programistyczną), od pewnego czasu (blisko 4 lata) pracuję w środowisku linuxowym (Debian Etch). Oczywiście standardy (Gnome, Eclipse). Jest w tym systemie tyle dobrego, że warto się tym podzielić z innymi. Zacznę chyba od aplikacji....Audacious - mimo tego, że wiele osób (linuxowców) upiera się przy XMMSie, ja postawiłem na coś nowego. Program jest odzwierciedleniem (prawie) tego wszystkiego, co niesie ze sobą Winamp. Po pierwsze - obsługuje nie tylko skórki, ale niektóre pliki konfiguracyjne …

[PHP] Klasa do generowania plików .xls (Microsoft Excel)

Po wielu poszukiwaniach prostej klasy do generowania "Exceli" znalazłem takową, i okazało się, że się sprawdza (przynajmniej mi się sprawdziła).Klasa generuje kod XLSa na podstawie mutitablicy. <?phpclass Excel{ function xlsBOF() { $data = pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0); return $data; } function xlsEOF() { $data = pack("ss", 0x0A, 0x00); return $data; } function xlsWriteNumber($Row, $Col, $Value) { $data = pack("sssss", 0x203, 14, $Row, $Col, 0x0); $data .= pack("d", $Value); return $data; } function xlsWriteLabel($Row, $Col, $Value ) { …

[MySQL] Zdublowane wpisy

Jak wyświetlić lub pozbyć się zdublowanych wpisów w tabeli? Nic prostszego! Jedno zapytanie i mamy listę "dubli".... SELECT * FROM `nazwa_tabeli` GROUP BY nazwa_kolumny HAVING COUNT(nazwa_kolumny) > 1

[PHP] Funkcja walidująca numer PESEL

Ostatnio przyszło mi stworzyć funkcję walidującą numer PESEL. Oczywiście najpierw pogrzebałem w encyklopedii (można ją znaleźć pod adresem www.google.pl ), and viola! Oto kod:function sprawdzPESEL($str){ if (strlen($str) != 11 || !is_numeric($str)) //sprawdzamy czy podany numer ma 11 znaków { return false; } $arrSteps = array(1, 3, 7, 9, 1, 3, 7, 9, 1, 3); // tablica z odpowiednimi wagami $intSum = 0; for ($i = 0; $i < 10; $i++) { $intSum += $arrSteps[$i] * $str[$i]; //mnożymy każdy ze znaków …

[JS] PNG hack dla IE oparty o JQuery

Poszukując rozwiązania ciągle istniejącego problemu wyświetlania przeźroczystych PNG'ków w IE6, znalazłem bardzo fajny skrypcik. Jest to zastosowanie biblioteki JQuery, "zaprzęgające" do pracy odpowiednie filtry do wskazanych przez użytkownika elementów, bez zmiany tagów. Skrypt obsługuje zarówno elementy <img>, jak i style CSS. No i co najważniejsze - jak widać poniżej - jest bardzo prosty w użyciu!Biblioteka JQueryBiblioteka ifixpng // apply to all png images$('img[@src$=.png]').ifixpng();// apply to all png images and to div#logo$('img[@src$=.png], div#logo').ifixpng();// apply to div#logo, undo fix, then apply the …

[JS] Tylko LICZBY

Prosta funkcja walidacyjna, dzięki której można wymusić na użytkowniku wpisanie w pole tekstowe tylko i wyłącznie liczb.function isNumberKey(evt){ var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true;}

[CI] Banuj spamerów!

Bardzo prosta biblioteka, której używam do banowania IP'ików, z których dodawane są komentarze lub wpisy "pseudoreklamowe". Można z niej korzystać na dwa sposoby: pierwszy - standardowa tablica array z adresami IP; drugi - tabela w bazie danych.<?class Ban {function Ban(){ $CI =& get_instance(); $CI->load->helper('url'); // Prosta tablica $ip = $CI->input->ip_address(); $banned = array('209.47.94.52','88.119.246.111'); // Dane z bazy $CI->load->model('MBan'); $banned = $CI->MBan->getAddresses(); if(!strstr($CI->uri->uri_string(),'youarebanned')) { if(in_array($ip,$banned)) { redirect('youarebanned'); } }}?>Biblioteka Ban

PHP Framework - Code Igniter

Swojego czasu znalazłem na forum PHP.pl wzmiankę o CodeIgniter'ze. Od tamtej pory nie schodzi on "z tapety". Sprawdza się on w prostych zastosowaniach webowych, posiada zaimplementowane wszystkie potrzebne funkcje PHP'owe (od generowania obrazków po obsługę większości baz danych). Wykorzystałem go do napisania nowej wersji serwisu, który prowadzę - www.freepedia.pl. W miare mozliwości posatram się przedstawić parę rozwiązań, których w CI mi brakowało, a których użyłem we Freepedii.