Pull to refresh

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

Reading time2 min
Views1.1K
Многим известно про популярный сервис — 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:
Hubs:
Total votes 8: ↑7 and ↓1+6
Comments0

Articles