19 September 2008

Smarty-плагин для Gravatar

PHP
Многим известно про популярный сервис — Gravatar. Кратко напомню его суть — любой пользователь может зарегистрироваться там, загрузить свой аватар и связать его со своим e-mail адресом. Сервис Gravatar предоставляет возможность получить аватар любого зарегистрированного пользователя. Данный плагин позволяет построить адрес для аватара пользователя в Smarty шаблонах.

Кратко о том, как строится URL для Gravatar. Он имеет вид:
http://www.gravatar.com/avatar/<email_hash>?s=<size>&r=<rating>&d=<default>
<email_hash> — MD5 хэш от e-mail адреса в нижнем регистре без пробелов в начале и конце;
<size> — размер аватара в пикселях, от 1 до 512;
<rating> — рейтинг аватара, принимает только следующие значения: «g», «pg», «r» или «x»;
<default> — адрес аватара для тех пользователей, которые не зарегистрированы в сервисе Gravatar. URL должен быть закодирован с помощью urlencode.

Сам плагин выглядит так:
<?php
/*
* Smarty plugin
* -------------------------------------------------------------
* Файл: function.gravatar.php
* Тип: function
* Имя: gravatar
* Назначение: Построить URL для Gravatar
* -------------------------------------------------------------
*/
function smarty_function_gravatar($params)
{
$url = 'http://www.gravatar.com/avatar/';

if (empty($params['email'])) {
$params['email'] = '';
}
$url .= md5(strtolower(trim($params['email'])));

$firstparam = true;
if (isset($params['size'])) {
$url .= '?s='.$params['size'];
$firstparam = false;
}

if (isset($params['rating'])) {
$url .= ($firstparam)?'?':'&';
$url .= 'r='.$params['rating'];
$firstparam = false;
}

if (isset($params['default'])) {
$url .= ($firstparam)?'?':'&';
$url .= 'd='.urlencode($params['default']);
}
return $url;
}
?>


* This source code was highlighted with Source Code Highlighter.

Примеры использования:
<img src="{gravatar email='my@email.com'}" alt=«Gravatar» />

<img src="{gravatar email='my@email.com' size='40'}" alt=«Gravatar» />

<img src="{gravatar email='my@email.com' rating='g'
default='http://www.example.com/avatar.jpg'}"
alt=«Gravatar» />

* This source code was highlighted with Source Code Highlighter.


Полезные ссылки:
www.gravatar.com — более подробно о сервисе на официальном сайте
www.smarty.net/manual/ru/plugins.php — Документация Smarty. Создание плагинов
Tags:SmartyGravatarаватарплагинPHP
Hubs: PHP
+6
868 9
Leave a comment
Ads