Awatar z gravatar.com

Na potrzeby jednego z małych projektów, które robiłem w ostatnim czasie napisałem prostą klasę PHP odpowiedzialną za pobieranie obrazu z serwisu gravatar.com. Klasa ma dwie metody – do zwracania gotowego tagu <img /> oraz samego stringa z adresem zdjęcia. Wszystko oczywiście na podstawie podanego e-mail’a.


Implementacja klasy odbywa się standardowo:

$gravatar = new gravatar();

//echo full tag
echo $gravatar->getGravImg("[email]", [size], "[alt]");

//echo string only
echo $gravatar->getGravUrl("[email]", [size]);

Jako parametry dla wywoływanych metod podajemy oczywiście adres e-mail skojarzony z naszym kontem w serwisie gravatar.com, wielkość obrazka, który chcemy otrzymać wyrażoną w pikselach (obrazy generowane przez gravatar.com są kwadratowe, wystarczy więc jeden wymiar) oraz tekst dla atrybutu ALT w przypadku, kiedy generujemy pełen tag <img />.

Dla większej wygody użytkowania klasa ma zaimplementowaną domyślną wielkość obrazka (120px) oraz generuje tag <img /> z podstawowym inline css:

style="border: 0; padding: 0 5px 5px 0; width:[size]px; height:[size]px"

oczywiście wartości width i height są adekwatne do podanej wielkości obrazu.

Działanie klasy oparte jest o mechanizm dostarczany przez serwis gravatar.com, który generuje obrazek po podaniu hash MD5 z emaila jako parametr dla strony: http://www.gravatar.com/avatar. W związku z tym obie dostępne metody korzystają z trzeciej zaimplementowanej w klasie, która to generuje adres awatara poprzez przekształcenie podanego emaila w hash MD5:

md5(strtolower(trim($_email)))

oraz dodanie domeny i parametru s określającego rozmiar.

Klasa, tradycyjnie już, do pobrania poniżej (ze względów bezpieczeństwa plik ma rozszerzenie *.txt, przed dołączeniem go do projektu należy więc zmienić roszerzenie na *.php 🙂 ).

Mikołaj Niedbała

I'm a Poland based IT administrator, linux administrator and IT engineer creating professional IT infrastructure solutions based on Linux and virtual environments.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *