Главная » 2011 » Май » 31 » Интеграция Gravatar
02:49
Интеграция Gravatar


Известно, что сейчас многие пользователи пользуются сервисом Gravatar.
Зарегистрировавшись, Вы сможете загрузить для себя глобальный аватар, который будет отображаться на всех сайтах, поддерживающих эту систему (в основном это различные блоги и форумы). Идентификация происходит по вашему e-mail.

Большинство блоггеров используют движок Wordpress - у него уже встроена данный плагин, т.к. они приобрели данный сервис.
Есть так же блоггеры, использующие DataLife Engine (DLE) и мой блог не исключение, вот и решил интегрировать Gravatar в DLE.
Данный мод позволяет полностью интегрировать Gravatar для DLE!
Если у пользователя нет собственного аватара, то отображается Gravatar, если и он отсутствует, то стандартное изображение "нет аватара".

Делается очень просто, для этого нужно будет отредактировать несколько файлов:
./engine/classes/comments.class.php
./engine/modules/profile.php
./engine/modules/fullsearch.php
./engine/modules/search.php
./engine/inc/editusers.php

И так, открываем файл ./engine/classes/comments.class.php
Находим в нем строку:else $tpl->set( '{foto}', "/templates/Simple/images/noavatar.png" );И заменяем её на:else {
    $grav_url = 'http://gravatar.com/avatar/' . md5( $row['gast_email'] ) . "?s=100&r=g&d=" . $config['http_home_url'] . 'templates/' . $config['skin'] . '/images/noavatar.png';
    $tpl->set('{foto}', $grav_url);
}

Теперь в файлах:

./engine/modules/profile.php
./engine/modules/fullsearch.php
./engine/modules/search.php
Будем делать следующие изменения (просто повторите данную операция над всеми файлами):
Находим строку:

else $tpl->set( '{foto}', "/templates/Simple/images/noavatar.png" );И заменяем её на:else {
    $grav_url = 'http://gravatar.com/avatar/' . md5( stripslashes( $row['email'] ) ) . "?s=100&r=g&d=" . $config['http_home_url'] . 'templates/' . $config['skin'] . '/images/noavatar.png';
    $tpl->set('{foto}', $grav_url);
}

При желании можете так же добавить отображение gravatar в админке:
Для этого откройте файл ./engine/inc/editusers.php
Найдите в нем строку:

$avatar = "engine/skins/images/noavatar.png";И замените на:else {
    $avatar = 'http://gravatar.com/avatar/' . md5( stripslashes( $row['email'] ) ) . "?s=100&r=g&d=" . $config['http_home_url'] . 'templates/' . $config['skin'] . '/images/noavatar.png';
}

У меня на блоге стоит мод "кто онлайн", поэтому для него я проделал следующие изменения (таких модов много, так что для вашего может не подойти):

Для начала надо сделать SQL запрос:ALTER TABLE `dle_online` ADD `email` VARCHAR( 80 ) NOT NULL AFTER `foto`

Теперь открываем ./engine/inc/online.php
И ищем все (2 раза):`foto`, После вставляем `email`,
Ищем '{$member_id['foto']}', И после вставляем'{$member_id['email']}',
Ищем `foto`=VALUES(`foto`), И после вставляем`email`=VALUES(`email`),
Ищем 'unknown', И после вставляем'unknown',
Ищем `foto`='unknown', И после вставляем`email`='',
И наконец ищем$foto = $config['http_home_url']."templates/".$config['skin']."/images/noavatar.png";И заменяем эту строку на$foto = 'http://gravatar.com/avatar/' . md5( stripslashes( $row['email'] ) ) . "?s=100&r=g&d=" . $config['http_home_url'] . 'templates/' . $config['skin'] . '/images/noavatar.png';

Обратите внимание на имя файла "noavatar.png" - у вас оно может быть с расширением jpg, gif (только если Вы сами изменили его).
Входящие переменные для gravatar:
s=100 - размер аватары в пикселях, в данном случае 100px. От 1 до 512 пикселей.
r=g - категория аватара (g, pg, r, x)

Демо можете посмотреть на данной странице - в комментарии.
Убедительная просьба если Вам данный хак не нужен не пишите в комментариях "зачем он нужен", "бред" и т.д. Просто закройте данную страницу.
Уважайте труд других.
Категория: Хаки | Просмотров: 420 | Добавил: ALL-DLE | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: