Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: normanos, dodany: 31.08.2007 12:14, tagi: php

Dzisiaj ukazała się nowa wersja PHP oznaczona numerkiem 5.2.4. I pewnie o tym bym nie napisał (bo przecież nie śledzę z wypiekami na twarzy, kiedy to nowa wersja się pokaże) gdyby nie to, że cały wczorajszy dzień i noc spędziłem na @$#%# (ocenzurowano) właśnie z powodu PHP. Otóż pomimo odpowiednich ustawień w konfiguracji fast-cgi w [...]

Autor wpisu: menic, dodany: 30.08.2007 12:05, tagi: php

Potrzebowałem funkcje, która na podstawie tablicy stworzy nam plik xml. Samo napisanie funkcji jest banalne, ale problem następuje w przypadku, gdy mamy nie unikalne klucze w tablicy. Solucją jest przekazanie do funkcji tablicy zawierającej nazwe nieunikalnych kluczy.

PHP:
  1. /**
  2. * Tworzy obiekt xml na podstawie tablicy
  3. *
  4. * @param array $aXml Wejściowa tablica
  5. * @param SimpleXMLElement $oXml
  6. * @param array $aElements tablica non-unique elementów
  7. * @return SimpleXMLElement
  8. */
  9. function arrayToXml( array $aXml, SimpleXMLElement $oXml, $aElements = null )
  10. {
  11. static $aArray;
  12. if( is_array( $aElements ) )
  13. {
  14. $aArray = $aElements;
  15. }
  16. if( is_array( $aXml ) )
  17. {
  18. foreach( $aXml as $k => $v )
  19. {
  20. if( is_array( $v ) )
  21. {
  22. if( is_array( $aArray ) )
  23. {
  24. if( in_array( $k, $aArray ) )
  25. {
  26. foreach( $v as $kk => $vv )
  27. {
  28. $oXml->addChild( $k, $vv );
  29. }
  30. }
  31. else
  32. {
  33. $oXml->addChild( $k );
  34. }
  35. }
  36. else
  37. {
  38. $oXml->addChild( $k );
  39. }
  40. arrayToXml( $aXml[$k], $oXml->$k );
  41. }
  42. else
  43. {
  44. if( !is_numeric( $k ) )
  45. {
  46. $oXml->addChild( $k, $v );
  47. }
  48. else
  49. {
  50. //Tutaj można coś zrobić dla kluczy numerycznych
  51. }
  52. }
  53. }
  54. }
  55. return $oXml;
  56. }
  57. ?>

Autor wpisu: Athlan, dodany: 28.08.2007 23:28, tagi: internet, php

Na potrzeby pewnego projektu o pewnej nazwie, o której niebawem się przekonacie, powstał nowy plugin. Generuje on sitemapa przyjaznego dla Google. Po co to wszystko... Rejestrując się w google mamy możliwość skorzystać z wielu narzędzi webmastera. Jednym z nich jest "pomaganie" robotowi w indeksowaniu naszej strony, poprzez podanie mu sitemapu po którym powinien się poruszać. Po zweryfikowaniu naszej strony w systemie google, proszeni jesteśmy o podanie sitemapu (więcej o weryfikacji).

W tym miejscu z pomocą przychodzi nam Wordpress ContexlinkSitemap Plugin. Plugin przede wszystkim:

  • tworzy mapę witryny uwzględniając wszystkie notki i podstrony na blogu oznaczone jako "published",
  • uwzględnia strukturę permalinków, URL'i przyjaznych dla wyszukiwarek sprecyzowanych w konfiguracji bloga
  • datę ostatnich zmian na stronie głównej oraz w każdym linku z osobna
  • dostosowany do mapy google:
    https://www.google.com/webmasters/tools/docs/pl/protocol.html
  • jest bezpłatny : -)

Instalacja pluginu:

  1. Pobierz paczkę pluginu stąd (format ZIP)
  2. Folder ContextlinkSitemap skopiuj do folderu wp-content/plugins/
  3. Plik sitemap.xml skopiuj do folderu głównego bloga i nadaj mu chmod 777
  4. Aktywuj plugin w zakładce Plugins wpanelu administracyjnym bloga

Dodanie mapy witryny do google:

  1. Zaloguj się na google.com na swoje Google Account lub Gmail Account.
  2. W nagłówku strony głównej google.com przejdź w sekcję "Moje konto"
  3. Z listy "Moje usługi" wybierz pozycję "Narzędzia dla webmasterów"
  4. Dodaj swoją stronę.
  5. Wybierz formę weryfikacji strony i postępuj ze wskazówkami google
  6. Gdy strona pojawi się w tabeli oraz jej status zostanie oznaczony jako "zweryfikowana", kliknij w opcję "Dodaj mapę" i podaj adres URL mapy strony (defaultowo http://twojblog.pl/sitemap.xml, czyli tam, gdzie wrzuciłeś plik).

Dodatkowa konfiguracja:

W celu szczegółowej konfiguracji pluginu, możesz:

  • zmienić ścieżkę mapy w stałej CONTEXLINK_MAP_FILE
  • zmienić częstotliwość automatycznej aktualizacji mapy w stałej CONTEXLINK_MAP_UPDATE, wartość podawana w sekundach, defaultowo co 2 dni: 3600 * 24 * 2.
  • zmienić miejsce wykonywania aktualizacji, zwykle jest to przy ładowaniu sekcji head na blogu. Aby dokonać zmian, należy zmienić miejsce akcji: add_action('wp_head', 'ContexlinkSitemapAutogenerate'); Pełną listę miejsc, w których można wykonać operację możesz znaleźć tutaj: http://codex.wordpress.org/Plugin_API/Action_Reference

Autor wpisu: Zyx, dodany: 22.08.2007 19:45, tagi: php

Nauczony doświadczeniami ostatniego projektu postanowiłem wprowadzić do moich skryptów większą modularność. Sam MVC, choć zapewnia dość dobre ponowne wykorzystanie kodu, nie jest jeszcze ideałem. Akcje w kontrolerach muszą przecież zapewnić czasem przepływ i obsłużenie tak dużej liczby sytuacji, że same w sobie stają się skomplikowane, a gdy bardzo podobne zadanie przyjdzie zaimplementować w innym miejscu serwisu, kod staje się bardzo nieprzyjemny w zarządzaniu.

Autor wpisu: Athlan, dodany: 21.08.2007 13:01, tagi: php

Ostatnio napotkałem problem z tasowaniem tablic, który dość sprawnie rozwiązałem. Publikując notkę oraz sposób wybrnięcia z tego problemu zapewne komuś pomoże.

Tablicę możemy tasować, tzn losowo ustawić jej wartości. Do tej operacji potrzebujemy funkcji shuffle() o której mowa w manualu. Spójrzmy jednak na notatkę:

Notatka: Ta funkcja przypisuje nowe klucze dla elementów argumentu tablica. Wszystkie istniejące klucze zostaną usunięte.

Nieciekawie prawda? W moim przypadku klucze tablicy były bardzo potrzebne, bowiem zawierały istotne informacje potrzebne do działania aplikacji. Doszedłem do wniosku, że jest możliwe zachowanie kluczy, trzeba tylko rozpisać sobie nową funkcję, która ma za zadanie:

  • Stworzyć kopię tasowanej tablicy.
  • Operując na kopii przetworzyć ją tak, aby nowa tablica zawierała tylko klucze, naturalnie je przypisując operatorem []
  • Tasować nowopowstałą tablicę kluczy.
  • Do potasowanej tablicy kluczy przypisać wartości szukając po kluczach w oryginalnej tablicy.

Działania proste. Spróbujmy stworzyć z powyższych punktów zlepek kodu:

PHP:
  1. function array_shuffle(array $aArray)
  2. {
  3. $aArrayShuffle = array();
  4.  
  5. foreach($aArray as $mKey => $mValue)
  6. $aArrayShuffle[] = $mKey;
  7.  
  8. shuffle($aArrayShuffle);
  9.  
  10. $aResult = array();
  11.  
  12. foreach($aArrayShuffle as $sKey)
  13. $aResult[$sKey] = $aArray[$sKey];
  14.  
  15. return $aResult;
  16. }

Małe testy: http://phpfi.com/257646

Autor wpisu: stormfly, dodany: 11.08.2007 12:35, tagi: php

Jak obiecywałem jakiś czas temu, wracam do tematu procedur składowanych. Wyzwalacze (ang. triggers), bo o nich będzie mowa, stanowią bardzo wygodny mechanizm, który odciąża naszą aplikację od dodatkowych implementacji. Przykład, który wybrałem, aby zobrazować działanie wyzwalacza to...

Autor wpisu: normanos, dodany: 07.08.2007 21:30, tagi: internet

net_talk czyli miejsce na Google Groups założone przez Marcina Jagodzińskiego wydało ostatnie jęki i chyba zaraz zdechnie zupełnie. Kolejna inicjatywa (po forum web2.0, które wieki temu opisywałem) chyli się ku upadkowi. Powstaje pytanie: czy to forma odstrasza czy po prostu nie ma potrzeby na taką wymianę informacji? Póki co zachęcam autora do wysłania jakiegoś mass mailingu [...]
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.