Тема: PunBB - использование gravatar'ов вместо стандартной системы аватаров
Думаю, объяснять что и для чего особо не надо. Смысл прост - делаем так, чтобы вместо стандартной схемы (пользователь при редактировании своего профиля заливает на сервер аватарку, которая потом отображается везде) работала моднячая система Граватаров. Ведь так сделано на любом блоге - все аватарки являются граватарками.
И нефиг мне сервер засорять своими аватарками
Итак, к делу! Данный хук будет работать только при отключенной системе аватаров в настройках админки форума.
Для отображения аватаров при просмотре темы на форуме.
1. Открыть файл viewtopic.php и найти (364 строка):
if ($forum_config['o_avatars'] == '1' && $forum_user['show_avatars'] != '0')
{
$forum_page['avatar_markup'] = generate_avatar_markup($cur_post['poster_id'], $cur_post['avatar'], $cur_post['avatar_width'], $cur_post['avatar_height'], $cur_post['username']);
if (!empty($forum_page['avatar_markup']))
$forum_page['author_ident']['avatar'] = '<li class="useravatar">'.$forum_page['avatar_markup'].'</li>';
}
2. Заменить на:
if ($forum_config['o_avatars'] == '1' && $forum_user['show_avatars'] != '0')
{
$forum_page['avatar_markup'] = generate_avatar_markup($cur_post['poster_id'], $cur_post['avatar'], $cur_post['avatar_width'], $cur_post['avatar_height'], $cur_post['username']);
if (!empty($forum_page['avatar_markup']))
$forum_page['author_ident']['avatar'] = '<li class="useravatar">'.$forum_page['avatar_markup'].'</li>';
} else {
$forum_page['author_ident']['avatar'] = '<li class="useravatar"><img src="https://www.gravatar.com/avatar/'.md5(strtolower($cur_post['email'])).'.jpg?s=64&r=X" /></li>';
}
где параметр ?s=64 указывает на размер стороны аватара. В даннм случае аватар будет размером 64x64 пикселя.
Для отображения аватаров при просмотре профиля.
3. Открыть файл profile.php и найти (1658 строка):
if ($forum_config['o_avatars'] == '1')
{
$forum_page['avatar_markup'] = generate_avatar_markup($id, $user['avatar'], $user['avatar_width'], $user['avatar_height'], $user['username'], TRUE);
if (!empty($forum_page['avatar_markup']))
$forum_page['user_ident']['avatar'] = '<li class="useravatar">'.$forum_page['avatar_markup'].'</li>';
}
4. Заменить на:
if ($forum_config['o_avatars'] == '1')
{
$forum_page['avatar_markup'] = generate_avatar_markup($id, $user['avatar'], $user['avatar_width'], $user['avatar_height'], $user['username'], TRUE);
if (!empty($forum_page['avatar_markup']))
$forum_page['user_ident']['avatar'] = '<li class="useravatar">'.$forum_page['avatar_markup'].'</li>';
} else {
$forum_page['user_ident']['avatar'] = '<li class="useravatar"><img src="https://www.gravatar.com/avatar/'.md5(strtolower($user['email'])).'.jpg?s=64&r=X" /></li>';
}
Для отображения сообщения об использовании системы граватаров на странице настройки профиля пользователя.
5. Далее в файле profile.php найти (1982 строка):
if ($forum_page['has_required']): ?>
<div id="req-msg" class="req-warn ct-box error-box">
<p class="important"><?php echo $lang_common['Required warn'] ?></p>
</div>
<?php endif; ?>
6. Ниже добавить:
<div id="req-msg" class="ct-box error-box">
<p class="important">Изменить свой аватар ты можешь в один клик через сервис <a target="_blank" href="https://ru.gravatar.com/">Gravatar</a>!</p>
</div>
Все просто! В итоге у вас получится тоже самое, что сейчас можно видеть на данном форуме!