Gravatar, vlastní ikonka globálně
by LucaS on Feb.21, 2009, under PHP
Gravatar neboli Global Recognize Avatar. Slovo Avatar je známo především z icq, kde je tak pojmenována Vaše ikonka u přezdívky. Podle obrázku si Vás lidé také pamatují. Gravatar zajistí, aby i Vaše emailová schránka měla svoji tvář.
Narazil jsem na tuto službu docela náhodně, když jsem se snažil přiřadit ikonku ke svým komentářům zde na blogu
Stačí zaregistrovat Váš email na výše uvedené adrese a pomocí dvou kroků vložit obrázek, ze kterého se vytvoří ikonka. Překvapením bylo, že jsem na stránkách nikdy nebyl, a ještě před registrací byla moje emailová adresa, kterou používám při komentování předepsaná. Nezkoumal jsem do hloubky, ale nejspíš nějaký záznam cookies z některého komentáře. Po několika minutách po registraci se Vaše ikonka projeví všude, kde jste kdy komentovali. Samozřejmě na stránkách podporují Gravatary. Jak si ale takovou podporu vytvořit i na svých stránkách?
Gravatar i na svých stránkách
Hned jsem zjišťovaj jak implementovat globální ikonky i na svůj web ke komentářům, nebo diskuzím, které nejsou poháněny žádným redakčním systémem. Zde najdete ukázky implementací pro mnoho programovacích (skriptovacích) jazyků.
Php kód jsem si klasicky zabalil do třídy a uložil do souboru class.functions.php, který využívám ve všech příkladech zde na blogu:
<?php /** Využití gravatarů na vlastních projektech * http://www.ekloe.com */ class kloe_functions { function __construct() { } function get_gravatar($email, $default, $size) { $grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=".md5( strtolower($email) ). "&default=".urlencode($default). "&size=".$size; return "<img src=\"$grav_url\" width=\"$size\" height=\"$size\" alt=\"$email\" />"; } } # end of class kloe_functions ?>
Do funkce vložíme email, cestu k defaultnímu obrázku a velikost obrázku. Uvnitř funkce se do načítací URL gravataru enkoduje vložený email pomocí funkce MD5 a cesta k defaultnímu obrázku.
Definované hodnoty uložte do souboru config.inc.php
<?php // === definovani defaultniho obrazku // http://www.ekloe.com define ('DEF_GRAV', 'http://gravatar.ekloe.com/img/default_gravatar.jpg'); define ('SIZE_GRAV', 40); ?>
DEF_GRAV definuje umístění obrázku, který se zobrazí v případě, že vložená emailová adresa nemá ikonku.
SIZE_GRAV definuje velikost obrázku. Standardně je 40 pixelů.
Příklad použití
Pouhé zavolání funkce zajistí zobrazení Gravataru. Takhle můžete ve své diskuzi zobrazovat ikonky uživatelů i bez registrace a vkládání obrázků.
<?php include_once("inc/config.inc.php"); include_once("inc/class.kloe.php"); $kloe = new kloe_functions(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Implementace Gravataru</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <?php echo $kloe->get_gravatar("email@vase_domena.cz", DEF_GRAV, SIZE_GRAV); ?> </body> </html>
Funkci jsem již implementoval do svých knihoven a teď můžu uživatelům nabídnout, zda si ikonku uploadují sami, nebo si ji nechají načíst přes gravatar.com
Zdroj ke stažení ZDE: Využití gravatarů na vlastních projektech.
Kam dál (další články na eKloe.com):















