Na mojej stronie jakiś czas temu pojawił się odnośnik do strony zbiorczej archiwum, prezentującej listę lat i miesiącami wraz liczbą wpisów. Dostałem kilka pytań jak to jest zrobione, ponieważ standardowa funkcja wp_get_archives, nie ma podziału pozwalającego pogrupować wpisy jeszcze względem roku.
Tag: php Strona 1 z 2
Sprawa jest dość prosta. Należy skorzystać z Facebook API
Kod w php:
function iworks_get_fb_likes( $url ) { $query = sprintf( "select total_count from link_stat where url='%s'", $url ); $call = "https://api.facebook.com/method/fql.query?query=" . rawurlencode($query) . "&format=json"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $call); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); curl_close($ch); $fb = json_decode($output); if ( is_array( $fb ) ) { $fb = reset( $fb ); if ( isset( $fb->total_count ) ) { return $fb->total_count; } } return 0; } |
Jeżeli posiadasz w WordPressie dużo artykułów (niech będzie, że więcej niż 5000) i na dodatek często w trakcie pisania używasz klawisza „Zapisz szkic” żeby powrócić do tworzenia artykułu po pewnym czasie lub też, już po opublikowaniu, dokonujesz w nim wielu zmian, to musisz liczyć się z tym, że baza używana przez wordpressa spuchnie o poprzednie wersje wpisów.
Pewien dość mocno obciążony serwer www (apache2) strasznie dużo zapisywał w katalogu sesji PHP. Na tyle dużo, że zaczeło to być problemem, jeszcze nie krytycznym, ale już zauważalnym.
Jednym z możliwych rozwiązań jest przeniesienie sesji do bazy danych, ale ze względu na specyfikę danych sesyjnych nie jest to szczególnie dobre rozwiązanie przy tej wielkości serwisu, a dodatkowo serwis korzysta z postgresa, więc wrzucanie w niego sesji jest jeszcze mniej polecane.
Rozwiązaniem zastosowanym, a które szczerze polecam jest memcache.
Instalacja jest banalnie prosta. Najpierw odpowiednie moduły na serwerze: (dla debianowaych):
sudo apt-get install memcached php5-memcache
Sprawdzamy czy serwer memcache wstał
netstat -ntlp | grep mem
oraz czy w używany php jest załadowany moduł memcache.
W konfiguracji php należy zmienić sposób przechowywania sesji oraz ustawić dane dostępowe do memchache’a:
;session.save_handler = files
session.save_handler = memcache
session.save_path="tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
Teoretycznie powinno zadziałać.
Niestety u mnie wystąpił następujący błąd:
Fatal error: session_start() [function.session-start]: Failed to initialize storage module: memcache (path: [...]/session) in /var/virtuals/[...].php on line 41
Który związany był z ustawianiem przez plik konfiguracyjny serwisu następującej wartości
ini_set("session.save_path",SESSION);
i dopiero po jej usunięciu wszystko zaczęło śmigać tak jak powinno.
Praca obejmowała stworzenie szablonu wordpressa na podstawie dostarczonego html’a z pewnymi, dość kluczowymi zmianami. W szablonie wykorzystano jQuery Nivo Slider służący do rotowania obrazków. Jego konfiguracja znalazła się w opcjach tematu. Zainstalowano kilka różnych dodatków podnoszących funkcjonalność związaną z SEO, monitoringiem zużycia zasobów. W efekcie powstała dwukolumnowa skórka, obsługująca widgety.
- adres
- radlensrestaurant.com
- w sieci
- maj 2010
- oprogramowanie
- WordPress
- cel
- utworzenie skórki do wordpressa
- zakres prac
- wytworzenia skórki do worpdress, zmiany w grafice
- technologie
- php, xhtml, jquery
- producent
- Web Design Cork
Serwis opisujący wyprawę z Indii do Polski powstał w grudniu 2009. Sama wyprawa rozpoczęła się miesiąc temu. Pierwszy szablon strony został wytworzony własnymi, amatorskimi siłami. Ten który znajduje się tutaj, został przygotowany przez profesjonalnego grafika, a moim zadaniem było wytworzenie z dostarczonych plików skórkę. Wytworzony dwukolumnowy szablon posiada 5 wyglądów dla stron specjalnych oraz obsługuje widgety. Na tronie głównej do wyświetlania zdjęć użyto wtyczki NextGen do której została dopisana funkcja wyciągając zdjęcia w sposób losowy. Do wyświetlania większość elementów graficznych użyłem techniki css sprites.
- adres:
- royalisci.pl
- w sieci
- maj 2010
- oprogramowanie
- WordPress
- cel
- utworzenie skórki do wordpressa
- zakres prac
- pocięcie grafiki, wytworzenia szablonu do worpdressa
- technologie
- php, xhtml, jquer, css sprites
- projekt graficzny
- Mr. Brown
Praca obejmowała stworzenie szablonu wordpressa na podstawie dostarczonego pliku graficznego. Szablon został wzbogacony o własne ustawienia umożliwiające konfiguracje kilku dodatkowych pól: banerów, dodatkowego opisu serwisu, konfiguracje odnośników do facebook’a i myspace’a. W szablonie wykorzystano jQuery Nivo Slider służący do rotowania obrazków. Jego konfiguracja również znalazła się w opcjach tematu. Do obsługi prostych zakupów użyto w serwisie wtyczki WP Simple Paypal Shopping cart, której wygląd został dostosowany do wyglądu całego serwisu. W efekcie powstała dwukolumnowa skórka, obsługująca widgety.
- adres
- www.blackradiocollection.com/brc
- w sieci
- maj 2010
- oprogramowanie
- wordpress
- cel
- utworzenie skórki do wordpressa
- zakres prac
- pocięcie grafiki, wytworzenia skórki do worpdressa
- technologie
- php, xhtml, jquery
- projekt graficzny
- Malwina Diarra
Przesiadłem się z laptopa na komp stacjonarny. Poszedł standardowy svn update
plus konfiguracja virtuala. Potem restart apache’a i do pracy. Niestety nie do końca, bo przywitał mnie następujący komunikat:
Fatal error: Call to undefined method stdClass::IsConnected() in /home/illi/***/trunk/etc/init.inc.php on line 42
WTF!?
Dla porządku: php + postgresql, połączenie do bazy przez adodb_light.
Przyczyna błędu? Brak bazy :D Co mało ciekawe taki błąd występuje w wielu rodzajach softu i nie do końca wyniki z googla były pomocne, ba … wcale nie były. Tak to jest jak obiekt jakiejś klasy jest inicjalizowany przez funkcję spoza klasy, która sama w sobie nie ma obsługi poprawności inicjalizowanego obiektu.
Jest sobie klient. Klient dostaje od swojej nadrzędnej jednostki miejsce na serwerze. Do tej pory cool.
Dostałem więc namiary na konto, ftp’a, mysql’a.
Środowisko lokalne ustawione, aplikacja webox wygenerowana, szablon wstukany, więc wgrywam na serwer. Pierwsze pozytywne wrażenie: włączony mod_rewrite oraz allowOverride ustawione na all. Cudnie, bo do niedawna i to trzeba było się kopać.
Potem było już tylko gorzej. Nie ma mod_perla, więc napisałem poprzez system ticketowy prośbę o jego włączenie, a oto otrzymana odpowiedź:
ze względów bezpieczeństwa oraz wydajności serwera nie mamy w ogóle uruchomionego mod_perl. Na razie jest Pan jedyną osobą, która zgłosiła potrzebę użycia Perla, więc nie możemy tego uruchomić, ponieważ pożytek z mod_perl dla Pana będzie mniejszy niż szkoda dla wszystkich pozostałych użytkowników serwera.
Przyznam się, że strach mnie ogrania jak widzę taki poziom niewiedzy u kogoś kto teoretycznie zarządza serwerem.
Ale w myśl zasady o kopaniu, dostałem jeszcze propozycję nie do odrzucenia:
Zgaduję, że nie jest Pan zadowolony z wgranego domyslnie SkyblueCanvas. Polecam Quick.CMS – jest on prostszy od Skyblue i również nie wymaga bazy danych. Jeżeli potrzebuje Pan czegoś o wiekszych możliwościach to polecam Joomlę. Najwięcej możliwości oferuje chyba Drupal, ale zrobienie strony w nim jest bardzo pracochłonne.
Generalnie, może Pan użyć czegokolwiek, co jest napisane w PHP.
Prawda, że miłe? Prosisz o perla, a sugerują ci php’a.