dle.in.ua » Хаки » Интеграция Gravatar в DLE

Интеграция Gravatar в DLE

Автор: WhyMax от 8-03-2010, 22:46
Интеграция Gravatar в DLEИзвестно, что сейчас многие пользователи пользуются сервисом (Gravatar http://ru.gravatar.com/)
Зарегистрировавшись, Вы сможете загрузить для себя глобальный аватар, который будет отображаться на всех сайтах, поддерживающих эту систему (в основном это различные блоги и форумы). Идентификация происходит по вашему 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}', "{THEME}/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}', "{THEME}/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';
}

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

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

Демо можете посмотреть на _http://whymax.ru/scripts/6-gravatar-in-dle.html - в комментарии.
Убедительная просьба если Вам данный хак не нужен не пишите в комментариях "зачем он нужен", "бред" и т.д. Просто закройте данную страницу.
Уважайте труд других.
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Мдя, некрасиво без кликабельной ссылки на источник sad
    в таком случае я за удаление новости))
    Поддержка только там))
    • WhyMax
    • Регистрация: --
    • Репутация: (||)
    • 8 марта 2010 23:45
    • 1
    ^
  • Группа: User
  • Icq: 9277210
  • Комментариев: 11
  • Публикаций: 0
  • Вот теперь вопрос:
    имеет ли смысл ковырять целых 5 файлов скрипта и не проще ли аватар вставить вручную на тех блогах или форумах, которые поддерживают gravatar, где вы зарегистрированы.

    Я не обсуждаю нужен или нет, просто вопрос практичности, учитывая частоту обновления DLE.

    --------------------
    • dlepro_com
    • Регистрация: 12.01.2010
    • Репутация: (0|0|0)
    • 9 марта 2010 06:53
    • 2
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • посылаю вас на предпоследнюю строчку в новости.
    не нужен не ставьте.

    учитывая частоту обновлений дле - в таком случае можете не ставить ни один модуль.
    я все файлы обновляю вручную, т.к. модов очень много (1 двиг на все сайты), так гораздо проще, изменений в коде мало, особенно если юзать специальный софт!
    • WhyMax
    • Регистрация: --
    • Репутация: (||)
    • 10 марта 2010 22:47
    • 3
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 1
  • Публикаций: 0
  • WhyMax,
    а как сделать чтобы когда гости пишут комментарии чтобы при каждом новом комментарии выводился новый аватар?
    • Ramazan
    • Регистрация: 11.03.2012
    • Репутация: (0|0|0)
    • 11 марта 2012 17:41
    • 4
    ^
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.