1 (edited by CL1FF 2018.04.22 06:42)

Topic: Статус пользователя вокруг аватара (Online / Offline)

Выглядит это примерно так:
https://punbb.softplaza.net/uploads/images/2018/04/4533aafa9493ae1136b22ccdddb6fbf7.png

Начнем пожалуй со стилей.
Добавим в стили следующий код:

/* Обводка аватара при Оффлайне */
.useravatar_off img {
    border: 2px solid DarkRed;
    padding: 5px;
    background: #FFF;
    -webkit-border-radius: 1px;
    -moz-border-radius: 1px;
    border-radius: 1px;
    -webkit-box-shadow: -2px 2px 6px -1px rgba(0,0,0,0.3);
    -moz-box-shadow: -2px 2px 6px -1px rgba(0,0,0,0.3);
    -o-box-shadow: -2px 2px 6px -1px rgba(0,0,0,0.3);
    box-shadow: -2px 2px 6px -1px rgba(0,0,0,0.3);
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px;
}

/* Обводка аватара при Онлайне */
.useravatar_on img {
    border: 2px solid Green;
    padding: 5px;
    background: #FFF;
    -webkit-border-radius: 1px;
    -moz-border-radius: 1px;
    border-radius: 1px;
    -webkit-box-shadow: -2px 2px 6px -1px rgba(0,0,0,0.3);
    -moz-box-shadow: -2px 2px 6px -1px rgba(0,0,0,0.3);
    -o-box-shadow: -2px 2px 6px -1px rgba(0,0,0,0.3);
    box-shadow: -2px 2px 6px -1px rgba(0,0,0,0.3);
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px;
}

Далее заходим в файл viewtopic.php и ищем следующий код:

            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>';
            }

заменяем его на этот:

            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 ($cur_post['is_online'] == $cur_post['poster_id'] && $forum_config['o_avatars'] == '1')
                  $forum_page['author_ident']['status'] = '<li class="userstatus"><li class="useravatar_on"><span>'.$forum_page['avatar_markup'].'</span></li></li>';
               else
                  $forum_page['author_ident']['status'] = '<li class="userstatus"><li class="useravatar_off"><span>'.$forum_page['avatar_markup'].'</span></li></li>';
            }

Затем что бы аватар отображался, нужно найти этот код:

            if ($cur_post['is_online'] == $cur_post['poster_id'])
               $forum_page['author_ident']['status'] = '<li class="userstatus"><span>'.$lang_topic['Online'].'</span></li>';
            else
               $forum_page['author_ident']['status'] = '<li class="userstatus"><span>'.$lang_topic['Offline'].'</span></li>';

и заменить на этот:

            if ($cur_post['is_online'] == $cur_post['poster_id'])
               $forum_page['author_ident']['status'] .= '<li class="userstatus"><span>'.$lang_topic['Online'].'</span></li>';
            else
               $forum_page['author_ident']['status'] .= '<li class="userstatus"><span>'.$lang_topic['Offline'].'</span></li>';

На этом все. Всем хорошего настроения.  PunBB_INFO_ICQ/ok

2

Re: Статус пользователя вокруг аватара (Online / Offline)

CL1FF, очень здорово, что вы занимаетесь модификацией движка, и делитесь кодом с пользователями!  PunBB_INFO_ICQ/thumbsup

Однако помните, править исходный код, считается плохим тоном, хотя бы потому, что для многих пользователей, выполнить эти простые манипуляции (внести правки в ядро), станет непосильным действом. Старайтесь научиться работать с хуками ,писать самостоятельно просенькие расширения, уверен, многие пользователи будут вам благодарны.  PunBB_INFO_ICQ/ok

3

Re: Статус пользователя вокруг аватара (Online / Offline)

sempai wrote:

CL1FF, очень здорово, что вы занимаетесь модификацией движка, и делитесь кодом с пользователями! 

Однако помните, править исходный код, считается плохим тоном, хотя бы потому, что для многих пользователей, выполнить эти простые манипуляции (внести правки в ядро), станет непосильным действом. Старайтесь научиться работать с хуками ,писать самостоятельно просенькие расширения, уверен, многие...

Будем учится)
Если это хоть кому то понравиться - постараюсь расширение написать  PunBB_INFO_ICQ/yes

4 (edited by PunBB 2018.04.21 12:41)

Re: Статус пользователя вокруг аватара (Online / Offline)

CL1FF, когда напишите первое расширение, вы будете добавлены в команду разработчиков и получите доступ к нашему репозиторию  PunBB_INFO_ICQ/thumbsup

sempai wrote:

править исходный код, считается плохим тоном

По возможности лучше писать расширения, но не всегда и все получается реализовать с их помощью.

5

Re: Статус пользователя вокруг аватара (Online / Offline)

Вышло расширение:
Cliff Status on Avatar - Статус пользователя вокруг аватара