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 🙂 ).

Podziel się:

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 email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *