Ogłoszenie z tupetem :)

Sposobów na znalezienie frajera do wykonania  portalu internetowego jest wiele. Dziś jednak ktoś osiągnął w tym mistrzostwo.

Jeśli chcesz aby zbudowano ci (zapewne) złożoną stronę internetową za przysłowiową miskę ryżu, zorganizuj zawody. Kilkadziesiąt osób będzie w prawdziwym wyścigu programować ci serwis, a na koniec zwycięzcy wręczysz statuetkę 🙂

Nie wierzycie, że ktoś może być tak głupi by spróbować tej metody? No to zobaczcie to ogłoszenie.

0

Niemcy atakują Polskę

Tym razem jednak może się to skończyć dla nas dobrze, bo atak odbywa się po prostu na polski rynek hostingowy.

Pojawiła się właśnie w Polsce ponoć (ponoć, bo dowiedziałem się o tym dopiero jak się pojawiła) największa firma hostingowa – 1and1.pl. I żeby było o niej głośno przygotowała nie byle jaką promocję. Każdy kto założy konto hostingowe otrzyma 10GB miejsca na pliki, 3000 GB transferu miesięcznego i jedną domenę z końcówką .pl. I co najważniejsze: wszystko to dostajemy za darmo na dwa lata.

Wszystkim od razu pojawiło się w głowie pytanie: gdzie jest haczyk. Wygląda jednak na to, że haczyka nie ma. Rozdawanie za darmo tak szczodrych kont to po prostu forma reklamy, tak aby o firmie było głośno. Jak widać reklama działa, bo od wczoraj czytałem o tej promocji już w kilku miejscach, sam wysłałem info mailem do kilku osób i teraz – a jakże – piszę o tym na blogu, a Wy to czytacie (skorzystacie, powiecie dalej…).

Z promocji oczywiście skorzystałem. Najwyżej za dwa lata z firmą się pożegnam. „Wykupiony” hosting od wczoraj intensywnie testuje i już widzę, że idealny on nie jest (co wcale nie znaczy od razu, że jest zły).

  1. Podczas rejestracji trzeba podać swój numer telefonu, a pole na to wymaga podania numeru kierunkowego. Podanie telefonu jest konieczne i trzeba podać numer prawdziwy, bo w przeciągu godziny dzwoni do nas automat w celu sprawdzenia czy my to my. Jeśli ktoś jednak nie ma telefonu stacjonarnego, nic nie jest jeszcze stracone: w pole numeru kierunkowego trzeba podać trzy pierwsze cyfry naszej komórki, a w dalsze pole pozostałe cyfry.
  2. Serwer nie będzie automatycznie robił kopii zapasowej naszej strony. Musimy dbać o to sami.
  3. Firma kiepsko nas informuje o naszej usłudze. Kompletnie nigdzie – ani w mailu otrzymanym po rejestracji ani w panelu – nie ma informacji o tym, jaki jest adres ftp do naszego serwera. Na  szczęście intuicyjne zgadywanie działa (adres jest taki sam, jak adres www, bez żadnych prefiksów).
  4. Dla firmy jesteśmy numerkiem, a właściwie numerkami. O ile we wszystkich chyba innych firmach wszędzie (do panelu, do ftp, do bazy) loguje się wybranym przez siebie loginem, to w 1and1.pl loginem jest z góry przydzielony numer. Bardzo długi i co najgorsze numer jest inny do panelu, inny do ftp inny do mysql. Fatalne rozwiązanie. Nazwa bazy danych też jest jakimś dziwnym długim zbitkiem znaków.
  5. O ile hosting daje nam 10GB miejsca, to na bazę danych przeznaczone jest tylko 100MB. Malusieńko i czuje, że za dwa lata będzie to już mocno przeszkadzało.
  6. Obejrzałem jak wygląda 1&1 w innych krajach: ceny nie powalają, więc można się spodziewać, że za dwa lata za przedłużenie będziemy sporo płacić. Mam jednak nadzieję, że to tylko zmobilizuje mnie do rozwinięcia w dwa lata postawionego tam serwisu tak, że opłata za  hosting i tak będzie dla mnie niezauważalna 😉
  7. Strona 1and1.pl działa kiepsko. Jeszcze wczoraj nie działała w ogóle, jeśli przed adresem nie dałem prefiksu ‚www.’. Po zalogowaniu do panelu administracyjnego za każdym razem dostaję informację, że wspierają jedynie przeglądarkę Firefox. Tymczasem już od ponad roku używam Google Chrome (i mimo informacji jaką serwuje mi strona, Chrome bardzo dobrze sobie z panelem chyba radzi).
  8. I co najważniejsze! Na mapie siedzib firmy 1and1 Warszawa zaznaczona jest jako Warschau! 😉 Niemcy znów atakują Polskę 😉
0

No to sobie pochorowałem :)

Ale mnie trzepło 🙂

W poniedziałek z wielką ulgą wysłałem maila, że skończyłem stronę nad którą głowiłem się przez ostatnie ponad dwa miesiące i – choć wcześniej nic a nic na to nie wskazywało – w zaledwie trzy godziny wylądowałem w łóżku trzęsąc się i oblewając potem. Zdecydowanie choroba była odpychana koniecznością skończenia zadania, a gdy te zostało już skończone, zupełnie jakby ktoś przekłuł balon. Bum i leżę.

We wtorek jedyne co mi się udało to dodreptać (wciąż trzęsąc się) do sklepu spożywczego i apteki i wrócić do łóżka. Musiałem dziwnie wyglądać, bo w sklepie ekspedientki równie dziwnie na mnie patrzyły.

Dopiero w środę dreszcze i poty w miarę ustąpiły i zacząłem widzieć na oczy. Do teraz została mi lekka gorączka i kaszel i już będzie ok 🙂

* * *

Wam też, jak czytacie o tych moich dreszczach przyszła na myśl, że to może być malaria? 😉 Przyznam się, że we wtorek w nocy zacząłem sobie liczyć ile to czasu minęło od mojego ostatniego dnia w Afryce. Wyszło mi coś koło półtorej roku. Granicą ryzyka jest rok. Ale dlaczego nie miałbym być wyjątkiem? Objawy wypisz wymaluj jakby pasują. W łazience nawet sam sobie zajrzałem za powieki. Niestety lub stety nic nie zauważyłem. Nawet nie wiem czego miałemm szukać 🙂

A nawet jak nie malaria z Afryki to – nie wiem czy wspominałem – na malarię można zachorować także w Polsce. Ryzyko jest mikroskopijne ale jest. Lekarze uznają, że obszary zagrożone to te w promieniu 100km od lotnisk międzynarodowych. Do Warszawy mam 200km, ale dlaczego znowu nie miałbym być wyjątkiem? Gdzie ja trzymam te ciągle nie „zjedzone” malarone? Jak to było? Profilaktycznie jedna tabletka, a gdy jesteś chory – dwie?

* * *

Oczywiście pomimo tych wszystkich podejrzeń dobrze wiedziałem, że się sam wkręcam. Dopadło mnie jakieś zwykłe przeziębienie, ponoć jakiś wirus szaleje. To jak z totolotkiem: wiesz, że na wygraną masz mikroskopijne szanse, ale im dłużej o tym myślisz, tym bardziej wierzysz, że to możesz być właśnie ty. Ja piszę co chwila o malarii i polecam strony o malarii, im dłużej o tym myślę, zaczynam się rozglądać czy w Polsce na pewno jestem bezpieczny 🙂 Jestem, ale… 😉

* * *

Dobra, wracam do siebie, oczywiście kilkudniowe leżenie zaowocowało zapchaną skrzynką mailową i nagromadzeniem roboty, więc trzeba będzie to jakoś rozładować. W międzyczasie jednak jak obiecałem wyrzuce ten design i zainstaluje thematica.

p.s. stroną zrobioną się jeszcze nie chwalę, ale przyjdzie na to czas 🙂

0

Jak zrobić żałobne obrazki na stronie?

W sieci zapanowała szarość. Jeśli jesteś webmasterem i też chcesz okazać szacunek wobec zmarłych na swojej stronie, jednak nie chcesz na stałe zmieniać wszystkich obrazków na stronie na odcienie szarości, znalazłem dwulinijkowy sposób w javascript pozwalający na żywo zamienić wszystkie obrazki ze znacznika <img> tak aby były pozbawione kolorów.

Po kolei.

Wchodzimy na stronę pixastic i pobieramy skrypt. Na stronie jest fajny konfigurator, który pozwala pobrać tylko co nam potrzebne. Jako, że niemal każdy chyba na wordpressie ma aukatywnione jQuery, polecam zaznaczyć opcje ‚Pixastic Core’, ‚jQuery plugin’ i ‚Desaturate’.

Pobrany plik umieść na serwerze i w nagłówku strony podlinkuj go (zakładam, że masz podłączone także jQuery).

W stopce strony dodaj skrypt js:

$d = jQuery.noConflict; 
$d("img").pixastic("desaturate");

I to wszystko.

Oczywiście skrypt nie załatwia wszystkiego. Nadal pozostaną kolory czcionek czy tła zdefiniowane w CSS, także obrazki tła nie zostaną podmienione.

Jak działa skrypt możecie zobaczyć na stronie HR Standard

0

Zaawansowana zabawa z szablonami podstron w WordPressie

Ten wpis jest kolejnym moim chwaleniem się jaką stronę wykonałem na bazie WordPressa, a zarazem chcę tutaj pokazać jak bardzo można zmodyfikować WordPressa (na pierwszy rzut oka nie widać, że to właśnie WordPress) i pokazać praktyczne zastosowanie dziedziczenia szablonów. Powiem szczerze, że jestem dumny z tego, co mi tutaj wyszło 🙂

Tutaj czyli na stronie Młodzi Twórcy wykonanej dla Urzędu Miejskiego w Białymstoku. Białystok ma program stypendialny dla ludzi uzdolnionych w różnych dziedzinach (ma zapewne jak i inne miasta, ale tylko Białystok jak widać chce się tym chwalić). Program działa już od jakiegoś czasu, ale teraz przyszła pora na stworzenie dla niego strony internetowej. I tutaj pojawiam się ja (jako podwykonawca dla  Man With The Plan).

Powyżej obrazek przedstawiający stronę główną. Wszystkie zrzuty ekranu w tym wpisie są klikalne więc jeśli chcecie, śmiało przechodźcie aby zobaczyć jak to wygląda u Was 🙂

Jak widać nie ma tutaj typowo blogowego układu. Mnie to nie dziwi, bo WordPress coraz bardziej staje się zwykłym CMSem zdolnym do tworzenia każdego rodzaju stron (choć blogi się w nim robi najłatwiej). Mechanizm bloga wykorzystałem tutaj w dziale Aktualności. Reszta to coś, co w panelu administracyjnym WordPressa nazywa się po prostu Strony.

Ale jakie strony! Poklikajcie na odnośniki w górnym panelu, a przekonacie się, że praktycznie każda z nich wygląda inaczej. Było to nie lada wyzwaniem ale się udało. Inny układ  kolumn na poszczególnych podstronach, co innego w sidebarach w zależności  od tego na jakiej stronie się właśnie znajdujemy, „podświetlenie” dla pozycji w górnym menu nie tylko gdy jesteśmy na tej właśnie stronie, ale także na stronie potomnej danej podstrony.

Nie było to łatwe, bo musiałem zrobić to jak najbardziej user friendly. Założyliśmy, że osoby w urzędzie nie znają WordPressa, więc sztuczki z Custom Fields, zastosowanie widget logic, custom themes trzeba unikać jak najbardziej. Osoba dodająca treści ma po prostu dodać kolejną stronę, określić, że jest ona „dzieckiem” takiej czy innej strony, a WordPress i jego funkcje same mają rozpoznać jaką właśnie stronę internauta chce wyświetlić i pokazać ją jak na obrazku powyżej (tak, to jest zwykła strona w WordPressie, stworzona we wbudwanym w nim edytorze stron; to ja, a nie osoba wprowadzająca tekst zadbałem by nagłówki miały inny wygląd, by każdy akapit był właściwie oddzielnym divem, a zawarty w nim odnośnik do pliku stał się przyciskiem wyrównanym do prawej) lub na przykład jak ta strona:

Jak widać wyżej mamy trzy sekcje: opis stypendysty, jego (czy w tym wypadku – jej) program stypendium i jego/jej zdjęcia. Tu także całość została zrobiona tak, aby pracownik urzędu nie musiał niczym się martwić: musi jedynie dodać treść, dodać zdjęcia (działa także dodawanie filmów), a to ja musiałem rozpoznać gdzie zaczyna się program stypendium czy właśnie zdjęcia lub filmy (i sprawić by miały inne tło). Co więcej powstały strony grupujące: gdy pracownik urzędu doda stronę konkretnego stypendysty, automatycznie pojawi się ona na stronie ich grupującej rocznikami:

Udało się? Przy „odrobinie” znajomości WordPressa i  umiejętności pisania dla niego funkcji, zabawy w dziedziczenie tematów graficznych, efekt jest chyba całkiem niezły, nie prawda? 😉

* * *

A może Ty też chcesz mieć taką stronę, szukasz kogoś kto zajmie się Twoim blogiem, albo znasz kogoś z takimi potrzebami? Zajrzyj na stronę O mnie i odezwij się do mnie w jeden z podanych tam sposobów, a na pewno uda nam sie razem wyczarować coś fajnego 🙂

0

WWF używa WordPressa, musicie mi wierzyć na słowo

Dziś rano w telewizorni widziałem reklamę społecznej akcji ratowania fok szarych organizowaną przez WWF Polska. Może więc się kolejny raz pochwalę zrobioną już jakiś czas temu stroną. Choć „pochwalę” to za duże słowo, bo nic Wam raczej pokazać nie mogę 🙂 Musicie mi wierzyć na słowo, że to co tu piszę, to prawda.

Blog wolontariuszy WWF, tak wyglądał projekt graficzny

Blog wolontariuszy WWF, tak wyglądał projekt graficzny

Jakoś we wrześniu ktoś szukał kogoś, kto by znał się co nieco na WordPressie, więc się zgłosiłem. Okazało się, że trzeba uruchomić blog towarzyszący społecznej akcji ratowania fok w Polsce. Coś w rodzaju małego serwisu społecznościowego, w której osoby biorące udział w ratowaniu fok będą mogli się zarejestrować, blogować (stąd więc od razu przyszedł pomysł WordPressa), dodać swoje zdjęcia z pracy i wrzucić filmy. Napisać kilka słów o sobie, zaznaczyć swoją pozycję na mapie Google Maps tak aby, gdy ktoś szuka pomocy przy fokach w okolicy Helu mógł szybko odnaleźć patrolowiczów w pobliżu.

Strona jest już wykonana, działa od dawna (i z tego co widzę działa bez zarzutu, bo nikt nie zgłasza mi żadnych problemów). Niestety linka do strony podawać nie będę, bo tylko zalogowani ludzie w WWF mogą ją zobaczyć. Ale i tak się chwalę 😉

Powyżej znajduje się design na bazie jakiego miałem wykonać stronę. Praca na początku była prosta: pociąć wszystko do HTML zgodnego z jak największą ilością przeglądarek, zrobić z tego szablon do WordPressa. Potem zaczęły się schody.

Zleceniodawca wymagał bardzo precyzyjnego dopasowania się do zaleceń. Wskutek tego najpierw sporo czasu spędziłem na poszukiwaniu odpowiednich pluginów, by ostatecznie przegonać się, że każdemu coś brakuje lub robi to w nie taki sposób, jak było to opisane w zleceniu. I wtedy rozpisałem się podczas pisania kodu nowych pluginów, ściśle dopasowanych do wymagań. (Pamiętacie moje wpisy dotyczące publikacji nowych wtyczek i tutoriale jak wtyczki się pisze? To wtedy mniej więcej robiłem tą stronę).

Pluginów napisanych było kilka. Wspomnę o dwóch.

Jeden z nich to Youtube Add Video, który zamieściłem publicznie w internecie, tak by i inni mogli z niego skorzystać i przy okazji opisałem jak powstawał. W dostępnych pluginach brakowało możliwości określenia kto dodał film (nic dziwnego, przeważnie blog prowadzi jedna osoba, a tutaj WordPress działał niemal jako platforma blogowa) i możliwości wyciągnięcia informacji o ostatnio dodanym filmie i umieszczenia jej w sidebarze. Napisanie takiego pluginu okazało się wykonalne 🙂

Drugi plugin aż szkoda, że nie udostępniłem go nigdzie bo jestem z niego dumny (teraz nie mam już niestety dostępu do jego kodu). Plugin bazował na Google Maps API  i pozwałał:

  • wyświetlić mapę w sidebarze
  • pokazać zaznaczonych na niej wszystkich wolontariuszy lub konkretnego (jeśli akurat przeglądaliśmy stronę użytkownika)
  • w panelu administracyjnym pozwalał użytkownikowi dodać swoją pozycję na mapie.

Plugin działa wyśmienicie, a przynajmniej działał w momencie oddawania strony zleceniodawcy 😉 Ale jak wspomniałem, żadnych reklamacji nie dostałem.

* * *

Było jeszcze kilka innych wtyczek, ale zdecydowanie mniejszych i mniej ciekawych. Z projektu jestem dość zadowolony bo rozruszał mnie po długien przerwie, od czasu gdy wykonałem stronę WildPoland. Obecnie  zleceń mam całkiem sporo, w poprzednim tygodniu kilku osobom musiałem odmówić podjęcia się zadania, bo zwyczajnie nie wyrabiałem się w 24 godzinach na dobę 🙂 I teraz gdy to piszę, jestem właśnie w czasie krótkiej przerwy w programowaniu kolejnego wordpressowego wdrożenia.

Nie zmienia to faktu, że jeśli ktoś z Was właśnie potrzebuje uruchomić jakąś stronę i wierzy, że WordPress jako CMS sprawdzi się tutaj bardzo dobrze (w tym tygodniu to właśnie WordPress zwyciężył w konkursie na najlepszy system CMS open source), może śmiało do mnie pisać. Obecnie wykonywane przeze mnie zadania prędzej czy później będą musiały się skończyć i chętnie podejmę się kolejnych wyzwań. 🙂

0

Wróciłem do Afryki!

Takim czymś to aż grzech się nie pochwalić 🙂 Co prawda osobiście, własnym ciałem w Afryce się (jeszcze) nie znalazłem ale z dumą mogę powiedzieć, że stworzyłem świetną (świetną, bo moją) stronę (ba! portal) dla okołoafrykańskiej organizacji.

afrix

Jakoś pod koniec września zapytano mnie, czy podjąłbym się karkołomnego wyzwania stworzenia strony integrującej mniejszości narodowe (głównie Afrykańczyków) zamieszkujące Europę z Europejczykami. Nic wielkiego: strona w kilku wersjach językowych, z opcją logowania, każdy może sobie założyć konto, każdy może na stronie prowadzić swojego bloga, opisać siebie w swoim profilu, może dodać zdjęcia, dodać filmy, ogłoszenia, pisać na forum, ustawić jakby status (gdy byłem o to poproszony śledzik jeszcze nie istniał więc tak tego nie nazwano)… Do tego mechanizm wysyłania wewnętrznych wiadomości, komunikator między użytkownikami (tym bardziej nikt nie słyszał jeszcze o NKtalk, więc i tego tak nie nazwano), możliwość ustawiania poziomu dostępu do danych w profilu (na poziomie całego profilu, jak i na poziomie poszczególnych danych). Możliwość pokazania się na mapie, możliwość dodawania się do znajomych, możliwość wyszukiwania się po kraju zamieszkania, pochodzenia, płci… Możliwość, możliwość, …

Zapytałem: „Czyli chcecie abym zrobił taką jakby kolejną Naszą Klasę, tylko że dla Afrykańczyków i to zrobił to w pojedynke?”

Dostałem odpowiedź: „Tak. I masz na to 30 dni czasu”

Już miałem odmówić, ale pomyślałem o racie za samochód, racie za pralkę i kredycie hipotecznym. Jako, że nie spłacam żadnych rat i tym bardziej hipoteki nie mam, argumenty te do mnie trafiły i nadl nie byłem zdecydowany. Tak naprawdę nie wiem o czym bardziej pomyślałem: o możliwości aby kolejny raz zrobić coś dla Afryki, o niemożliwym wyzwaniu stojącym przede mną (prawdę mówiąc im zadanie które staje przede mną brzmi bardziej niewykonalnie, tym większa jest szansa, że za nie się wezmę), czy o tej kupie szmalu jaką mi za to obiecano 😉

W każdym bądź razie, Proszę Państwa – oto Afrix!

Nie wszystko tam jeszcze działa z rzeczy założonych (ale zdecydowana większość już tak), serwis ma błędy (jeśli ktoś zauważy jakieś niedziałające linki czy inne bugi, napiszcie o tym do mnie w prywatnej wiadomości na Afriksie) ale jeśli uznać przyklejony do logo serwisu napis „beta” stwierdzam, że dzieło jest już zdatne do użytku. Zapraszam do oglądania, testowania i przede wszystkim zakładania tam sobie kont. Celem jest integracja nas – Europejczyków – z Afrykańczykami. Już niedługo serwis będzie poszukiwał wolontariuszy do pracy przy tematach integracyjnych, mam nadzieję, że pozwoli także nawiązać mnóstwo znajomości międzynarodowych 🙂

* * *

A jak się tworzy taki serwis w tak krótkim czasie? Co prawda termin został przekroczony, bo całość miało ruszyć 4 października, a ruszyło w ostatni czwartek, ale udało się dzięki wykorzystaniu już dostepnego oprogramowania.  Pierwsze założenie było, że wszystko ruszy na BuddyPressie czyli społecznościowej wersji WordPressa, jednak niestety ta ma zbyt mało funkcji i po przeczytaniu dziesiątków listów na tamtejszym forum, niektóre rzeczy jak na razie są nie do ruszenia. Zdecydowaliśmy się na płatny SocialEngine. Mateusz Kasprzak zajął się projektowaniem designu, ja natomiast w między czasie wnikał w zawiłości nowego dla mnie silnika i sposobu działania szablonów smarty (które do tej pory znałem tylko w teorii). Czasu tego miałem całkiem sporo, bo projektowanie zeszło do 20. któregoś października 🙂 Po zaprojektowaniu całość przerobiłem na szablon smarty i… przerobiłem jeszcze raz. Pierwszy design nie spodobał się konsultowanym Afrykańczykom. Podobno był „za mało w stylu nigeryjskiego reggae” (jeśli ktoś nie wie co to jest – my też wtedy nie wiedzieliśmy – to niech zajrzy na stronę: to jest podobno nigeryjskie raggae 🙂 ).

Potem była chwila luzu, gdy wydawało mi się, że wszystko jest już dopięte na ostatni guzik, a przynajmniej nikt nie ma żadnych większych zastrzeżeń. Okazało się jednak, że ciężkie testy serwis zaczął przechodzić w przeddzień oficjalnego otwarcia (oficjalnego, bo brali w nim udział ważne osobistości media) i wtedy zostałem zasypany toną listów na skrzynkę 🙂 W ostatnią środę i czwartek pracowałem od 8 rano do północy. Ale udało się.

Teraz pozostało dodać kilka rzeczy których jeszcze nie ma, a fajnie by były i naprawiać na bieżąco wykrywane błędy. Ostatecznie po całej przeprawie z SocialEngine mogę stwierdzić, że fakt iż obecna jego wersja to 3.x jest jedynie zabiegiem marketingowym. 🙁 Mnóstwo błędów, braku konsekwencji w tworzeniu i kompletny brak dokumentacji (społeczność programistów wokoło SE jest nastawiona na pomoc, ale jedynie za opłatą, zatem próżno szukać rozwiązań problemów czy porad po internecie; można je kupić jedynie w postaci pluginów czy usług) . Mimo wszystko, a może właśnie dlatego, jestem dumny, że to ma jakieś ręce i nogi 🙂

0

Tworzenie pluginów do WordPressa – tutorial

Zauważyłem, że w sieci jest jakoś wyjątkowo mało poradników jak tworzyć pluginy do WordPressa, szczególnie po polsku (taki jest chyba tylko jeden). No to jest okazja by o czymś napisać 🙂 Bo tak się składa, że wczoraj w ramach ćwiczeń napisałem sobie taki prosty plugin od zera. Teraz popatrzcie jak to zrobiłem i przy okazji nauczcie się sami 🙂

Założenia: robimy plugin wykopowy

Plugin ma być maksymalnie prosty (w końcu to nasze pierwsze dzieło), bez nadmiaru kodu. Plugin będzie dodawał pod naszymi wpisami odnośnik, który po kliknięciu doda naszą stronę do Wykopu. Dokładniej: wyświetli nam wykopową stronę dodawania z wypełnionymi już polami na odnośnik, tytuł i krótki opis.

Tworzymy plik .php

Utwórz katalog oraz plik .php wewnątrz jego. Katalog i plik powinny (ale nie jest to konieczne) nazywać się tak samo jak nasz plugin; poszczególne wyrazy w nazwie powinny zostać rozdzielone myślnikami. Konwencją jest także rozpoczynanie nazwy pluginu od literek „wp”.

Mój plugin będzie się nazywał „WP Wykop by Muzungu”. Dlatego też utworzyłem katalog o nazwie ‚wp-wykop-by-muzungu’, a w nim plik ‚wp-wykop-by-muzungu.php’.

Tworzymy opis naszego pluginu

Opis pluginu umieszczamy w naszym pliku .php jako komentarz. Wygląda on mniej więcej tak:

<?php
/*
Plugin Name: WP Wykop by Muzungu
Version: 0.1
Description: Automatically Adds <strong>"Wykop To" button to your posts.
Author: Konrad Karpieszuk
Author URI: http://www.muzungu.pl/
Plugin URI: http://www.muzungu.pl/
*/

Co się stało się? W każdej linijce mamy pewien fragment opisu. I tak:

Plugin Name – to nasz nazwa pluginu.

Version: wersja pluginu w zapisie z kropką oddzielającą podwersje

Description: opis naszego pluginu. Jak widać w przykładzie powyżej możemy w nim użyć tagów HTML

Author: Imię i nazwisko autora pluginu, lub nazwa firmy, która go stworzyła.

Author URI: Odnośnik do strony WWW autora (bloga, profilu na Naszej Klasie… 😉 )

Plugin URI: Tu wpisujemy odnośnik do strony, na której plugin będzie opisany.

Sprawdzamy czy nasz plugin został zainstalowany w odpowiednio nowej wersji WordPressa

Właściwie to nie musiałem tego robić, bo ten plugin jest bajecznie prosty i zadziała pewnie nawet w starym WordPressie. Ale podaję jak to się robi, bo może w przyszłości sam stworzysz plugin, który będzie korzystał tylko z najnowszej wersji API tego systemu blogowego.

Oto jak to się robi. W tym samym pliku wpisujemy poniżej:

/* Version check */
global $wp_version;

$exit_msg = 'WP Wykop by Muzungu requires WordPress 2.5 or newer.
			<a href="http://codex.wordpress.org/Upgrading_WordPress">
			Please update!</a>';

if (version_compare($wp_version, "2.5", "<")) 
{
	exit($exit_msg);
}

I tak po kolei, w linii 11. wpisaliśmy w postaci komentarza co robi poniższy kod (to jeden ze standardów kodowania pluginów dla WordPressa: każdą funkcję dokładnie okomentuj, tak aby potem inni mogli ją sobie łatwo przerobić bez zbędnego zagłębiania się w kod).

Następnie w linii 12. wywołujemy zmienną globalną $wp_version, w której przechowywana jest informacja o zainstalowanej wersji WP.

W 14 linijce tworzymy string, który przechowuje komunikat błędu, jaki się pojawi użytkownikowi, jeśli spróbuje nasz plugin zainstalować w zbyt starej wersji WordPressa.

Linie 18-21 to instrukcja warunkowa sprawdzającą wersję WP z wersją wymaganą przez nas (tutaj: 2.5) i jeśli warunek nie jest spełniony, instalacja kończy się wyświetleniem komunikatu, który stworzyliśmy przed chwilą.

Tworzymy kod odnośnika do Wykopu

Następnie musimy stworzyć kod HTML odpowiedzialny za wyświetlenie odnośnika do strony dodawania do Wykopu, w taki sposób, aby od razu zostały przekazane do niej informacje o adresie naszego wpisu, tytule i jego treści. Zrobimy to tworząc funkcję o nazwie WPWykopTo_Link().

Przyjrzyjmy się jednak najpierw jak wygląda odpowiedni odnośnik. Musi on nas kierować do strony http://www.wykop.pl/dodaj i przekazywać parametry metodą GET (czyli dokleić je do adresu strony) takie jak „url”, „title” oraz „desc”.

Zatem do dzieła.

/* Show a Wykop To Link */
function WPWykopTo_Link () 
{
	global $post;
	// get the URL to the post
	$link = urlencode(get_permalink($post->ID));
	
	// get a post title 
	$title = urlencode($post->post_title);
	
	// get first 350 characters of post and strip it off
	// HTML tags
	
	$text = urlencode(substr(strip_tags($post->post_content), 0, 350));
	
	// create a Wykop To link and return it
	
	return '<a href="http://www.wykop.pl/dodaj?url='.$link.'&title='.$title.'&desc='.$text.'">Wykop To</a>';
	
}

OK, znów lecimy po kolei i sprawdzamy co zrobiliśmy:

Linia 26: wczytujemy kolejną globalną zmienną, dostarczoną nam prez silnik WordPressa. $post zawiera w sobie wiele informacji o aktualnie przetwarzanym/wyświetlanym wpisie blogowym.

W linii 28. wywołujemy funkcję dostarczoną przez WP get_permalink(), która pobiera stały odnośnik do wpisu. Funkcja operuje tutaj na zmiennej $post->ID (czyli pobiera odnośnik do wpisu o określonym identyfikatorze). Odnośnik „urlenkodujemy” (przetwarzamy tak, aby bezpiecznie się wyświetlił jako parametr w innym URLu) i przypisujemy do zmiennej $link.

Linia 31 przypisuje do zmienne $title tytuł wpisu wyciągnięty z metody „title” obiektu $post. (nie znoszę programowania obiektowego)

W linii 36. na pierwszy rzut oka dzieje się wiele. Na drugi rzut oka jednak łatwo zauważymy, że wszystko co się stało, to pobraliśmy z obiektu $post treść naszego wpisu, usunęliśmy z niego znaczniki HTML, przycięliśmy do długości 350 znaków, także „zurlenkodowaliśmy” i przypisaliśmy do zmiennej $text. Proste? Proste! 🙂

Linia 40 to już banał. Zwracamy w niej kod HTML odpowiedzialny za wyświetlenie odnośnika do Wykopu. W czasie tego zwracania w odpowiednie miejsca podstawiamy nasze zmienne $link, $title i $text, tak aby utworzyły prawidłowy odnośnik dodający.

Doczepiamy nasz link do końca treści wpisu

Kod HTML utworzony, czas więc go doczepić do końca treści naszego wpisu:

/* Add Wykop To link to the end of the post */
function WPWykopTo_ContentFilter ($content) {
	return $content.WPWykopTo_Link();
}

Tutaj kod jest krótki. Tworzymy funkcję o zagmatwanej nazwie WPWykopTo_ContentFilter(), która pobierze parametr $content i doklei na jego końcu wynik działania naszej poprzedniej funkcji (czyli WPWykopTo_Link(), czyli kod HTML odnośnika do Wykopu). I tyle.

Informujemy WordPress aby użył naszego filtra

WordPress na tym etapie sam z siebie nie wie jeszcze, że jakaś funkcja już istnieje i przerabia treść wpisów w ten sposób, że dokleja na ich końcu odnośnik do Wykopu. To bardzo dobrze, bo pozwala nam to, teoretycznie (teoretycznie, bo w tym tutorialu nie pokaże jak to się robi; może w następnym rozdziale) na przykład dokleić odnośnik do Wykopu tylko do wpisów wyświetlanych na pojedynczych stronach. Ale w naszym przypadku chcemy aby link był dkolejany do wszystkich wpisów bez wyjątku.

Aby to sprawić używamy tak zwanych „haków” (ang. „hooks”). Haki „podczepiają” nasze funkcje pod silnik WordPressa. W kodzie WordPressa co rusz wpisane są funkcje sprawdzające czy w danym momencie jakiś plugin nie chciałby zmodyfikować działania owego silnika. Jeśli znajdzie taki plugin z odpowiednią instrukcją „hakującą”, pozwala mu zadziałać.

Haki są dwojakiego rodzaju.

Są haki podczepiane w momencie wykonania jakiegoś działania (action) przez WordPressa. Na przykład gdy zarejestruje się nowy użytkownik, gdy ktoś opublikuje nowy komentarz, lub gdy ktoś zamieści nowy wpis. Lub… przykładów jest bardzo wiele. Za zamieszczenie takiego akcyjnego haka odpowiada funkcja add_action(). Jednak teraz jej nie użyjemy.

Są też haki podczepiane w momencie wczytywania strony, których zadaniem jest przefiltrowanie tego, co silnik WordPressa właśnie wypluwa i zmodyfikowanie tej wyplutej zawartości. Takiego właśnie haka teraz użyjemy – chcemy bowiem wyplutą przez WordPressa treść wpisu zmodyfikować tak, że zanim pojawi się ona w przeglądarce odwiedzającego, doklejony do jej końca zostanie nasz wykopowy link. Za przefiltrowanie wordpressowego wyziewu odpowiada funkcja add_filter() i to jest właśnie moment gdy jej użyjemy.

Tutaj kod będzie bajecznie prosty i krótki:

add_filter('the_content', 'WPWykopTo_ContentFilter');
?>

Jak widać funkcja add_filter przyjmuje dwa parametry.

Pierwszy z nich to wskazanie co ma zostać przefiltrowane. W naszym przypadku filtrujemy treść wpisu, więc piszemy tutaj ‚the_content’. Pełna lista rzeczy, które można filtrować znajduje się tutaj.

Drugi parametr mówi funkcji jaka nasza funkcja ma zostać zastosowana do filtrowania zawartości pierwszego parametru. Dlatego wpisaliśmy tutaj nazwę naszej funkcji filtrującej ‚WPWykopTo_ContentFilter’.

I tyle, to już koniec naszego plugina.

Instalujemy plugin

Powyższe plugin na pewno działa. Ja już to sprawdziłem, a jeśli Ty też chcesz sprawdzić, utworzony na początku katalog ‚wp-wykop-by-muzungu’ wgraj do WordPressa w lokalizacji /wp-content/plugins. Następnie przejdź do panelu administracyjnego WordPressa. wybierz tam Plugins > Installed. Na liście pluginów zobaczysz swój plugin. Jeszcze on nie działa.

Aby zadziałał, musisz kliknąć obok niego napis „Activate”. Jeśli nie używasz WordPressa starszego niż 2.6, aktywacja na pewno się powiedzie. Przejdź teraz na stronę swojego bloga, a zobaczysz pod każdym wpisem mały, którki napis „Wykop To” 🙂

Zobacz też

Jest już dostępny rozdział drugi tego tutorialu.

Chcesz nauczyć się więcej?

Nie ma sprawy. Bardzo chętnie napiszę kolejne rozdziały, ale… gdy sam nauczę się czegoś nowego. 🙂 Jeśli chcesz to przyspieszyć, pomóż mi spełnić moje małe marzenie 🙂

A marzy mi się książka Vladimira Prelovaca WordPress Plugin Development – Beginner’s Guide. Kosztuje jednak prawie 30 euro plus koszty wysyłki.

Jeśli chciałbyś dołożyć złotówkę do niej (lub więcej):
– prześlij mi pieniądze przez paypal. Mój adres email w paypalu to selpod@gmail.com
– jeśli nie masz konta w paypalu, kopsnij mi kaskę na konto w mBanku. Mój numer konta: 21114020040000350230107505, a ja się nazywam Konrad Karpieszuk 🙂
Przelane pieniądze oznacz jakoś tak abym wiedział, że to na książkę 🙂 Jak chcesz pochwal się w komentarzu pod wpisem ile przelałeś 🙂

0

Apache – lekki, szybki, przyjemny…

No chyba, że w wydaniu wraz z dystrybucją Ubuntu Linux. No ręce można załamać. Apache to serwer WWW; najpopularniejszy na świecie właśnie przez swoją szybkość i małe wymagania odnośnie zasobów. Bywa i tak, że na jednym serwerze Apache hostowane są dziesiątki tysięcy stron i wszystko działa bez zarzutu.

Ja tymczasem mam w systemie Apache’a zainstalowanego dla jednej strony i to testowej odpalanej raz na jakiś czas, gdy na niej pracuję.

I robię to tak: uruchamiam apache (sudo /etc/init.d/apache2 start), uruchamiam bazę MySQL (sudo /etc/init.d/mysql start) i wchodzę przeglądarką na localhosta, gdzie wyświetla mi się podstawowa instalacja WordPressa.

I ile taki apache po mniej więcej pół minucie pracy może zająć RAM-u? Sami popatrzcie, bo nie uwierzycie.

wszystkie procesy apache podświetliłem na żółto

wszystkie procesy apache podświetliłem na żółto

Pięknie, prawda? Podliczając łącznie wszystkie procesy po pół minucie pracy (nie, że np pracował 4 dni i nazbierał śmieci) zajmują 154,3 MB.

Dodam, że zwykłe odświeżenie strony (bez skryptów php w sobie) sprawia, że apache pracuje 7-8 sekund zajmując całą moc obliczeniową procesora.

Zwyczajnie zaczyna mi być wstyd, że używam Ubuntu.

0

Super wypasiona strona (warta kilka milionów dolarów)

Jestem niezwykle szczęśliwy, że to ja pierwszy mogę Wam donieść o powstaniu nowej, niezwykłej, pięknej, funkcjonalnej, uwielbianej przez tłumy strony internetowej, wartej według moich wstępnych szacunków od 4 do 370 milionów dolarów (strona jednak nie jest na sprzedaż). 😉

Strona – arcydzieło kodu, zawierające w sobie najnowsze technologie internetowe, takie jak XHTML, CSS i JavaScript – znajduje się pod adresem www.aukcjoteka.com. I wiecie jakie jaja? 🙂 To ja jestem jej autorem! Wypas, normalnie! 🙂

Uwaga! Zanim klikniesz w link wyżej, muszę Cię uprzedzić, że zdarzały się omdlenia wśród internautów, którzy przypadkiem natknęli się na tą witrynę! Wiesława z Bydgoszczy relacjonuje, że wchodząc pod adres www.aukcjoteka.com doznała niemal boskiego objawienia. Inny anonimowy Internauta przyznaje się do uczucia podniecenia seksualnego, już w momencie wpisywania adresu strony do przeglądarki. Zatem przygotuj się na nieoczekiwane!

Strona oficjalnie istnieje w sieci dopiero od wczoraj, ale już wywołuje burzliwe reakcje w polskim i światowym środowisku ludzi zrzeszonych wokół web 2.0, ekomers i hodowli pietruszki. Jeszcze zanim stronę ukończyłem dostałem zapytania odnośnie możliwości odkupienia strony przez Rafała Agnieszczaka z Świstak.pl, Pierre’a Amidyara z Ebay oraz kogoś piszącego do mnie w języku afrykanerskim z Allegro. Strona jest jednak jak wspomniałem nie do kupienia, ale udało mi się wynegocjować, że za każde wystąpienie na stronie słowa „świstak” otrzymuję 700 złotych, za słowo „allegro” mam 43 duńskie korony, a za „ebay” puszkę oryginalnej amerykańskiej coli i koszulkę z wilkiem wyjącym do księżyca. Są też fanty za pisanie paszkwili na temat konkurencyjnych wobec siebie serwisów. Zatem nie jest źle.

Część z Was na pewno się zorientowała, że www.aukcjoteka.com (czujecie to przyspieszone bicie serca, gdy kolejny raz widzicie ten seksi adres internetowy?) to kontynuacja mojego bloga aukcjoteka.blogspot.com. I rzeczywiście – na bloggerze nieźle się już dusiłem, zwłaszcza od czasu gdy poznałem możliwości WordPressa. Co więcej nie ukrywam, że na Aukcjotece zarabiam jakieś tam pieniądze i mam zamiar zarabiać ich jeszcze więcej. Czas więc było rozwinąć skrzydła. Pamiętacie zapewne moje pytanie o domenę .com. To właśnie po to mi była ona potrzebna 🙂 Spodziewajcie się, że na nowej Aukcjotece będę częściej pisał niż tutaj na moim prywatnym blogu (prywatny blog pozostanie na prywatne przemyślenia o byle czym i o wszystkim), więc już teraz dodajcie sobie do czytnika kanał RSS Aukcjoteki. Spodziewajcie się też, że Aukcjoteka nie będzie już blogiem, ale serwisem o aukcjach internetowych z większą ilością osób piszących i różnymi fajnymi bajerami i nagrodami dla czytelników.

Tak więc raz jeszcze zapraszam i uprzedzam 🙂 Jeśli tylko pojawią się u Ciebie uczucia nudności i zawroty głowy, drżenie rąk czy uczucie ciepła w miejscach intymnych, oderwij się na chwilę od www.aukcjoteka.com. Pomyśl, że to tylko strona internetowa (a nie – jak pisze Paweł Sobieszkodzący ze wsi Pajewo – „przykład potęgi ludzkiego geniuszu, doskonałe zestawienie kolorów, architektura div-ów godna mistrza Da Vinci uwzględniająca w sobie podział kartezjański, złoty środek i srebrne obrzeża podobne do murów antycznej Atlantydy”), odetchnij i odpocznij. I wróć jeszcze raz! 🙂

http://feeds.feedburner.com/Aukcjoteka
0