1 (edited by PunBB 2019.11.04 00:19)

Topic: Cliff Status on Avatar - Статус пользователя вокруг аватара

Статус пользователя вокруг аватара ($matches[2] / $matches[2])

Вся суть расширения:
После установки расширения, в темах на форуме, со стороны мини-профиля теперь вокруг аватара будет отображаться цвет его статуса:
$matches[2] - пользователь в данный момент На форуме ($matches[2])
$matches[2] - пользователь в данный момент Неактивен ($matches[2])

Выглядит это так:
https://punbb.softplaza.net/uploads/images/2018/04/ed62e4b18eb67705400ffe43a2e08992.png

$matches[2]
Cliff Status on Avatar

2

Re: Cliff Status on Avatar - Статус пользователя вокруг аватара

CL1FF, поставил расширение, появилась рамка вокруг ника. После моего сообщения написал свое юзер без аватара и у него отобразился мой аватар  PunBB_INFO_ICQ/smile Пришлось пока отключить.

3

Re: Cliff Status on Avatar - Статус пользователя вокруг аватара

Grand91 wrote:

CL1FF, поставил расширение, появилась рамка вокруг ника. После моего сообщения написал свое юзер без аватара и у него отобразился мой аватар  PunBB_INFO_ICQ/smile Пришлось пока отключить.

Странно, у меня вроде таких проблем не было  PunBB_INFO_ICQ/dontknow
Позже у себя перепроверю и отпишусь

$matches[2]

Так, ну я проверил и у меня такой проблемы не появилось, все работает как нужно  PunBB_INFO_ICQ/scratch
https://punbb.softplaza.net/uploads/images/2018/04/4bdc02a21b8ddf03dd3830b168816c55.png

4

Re: Cliff Status on Avatar - Статус пользователя вокруг аватара

CL1FF, у меня стоит расширение на дефолтный аватар, может как-то конфликтуют. Факт был задокументирован  PunBB_INFO_ICQ/smile
http://joxi.net/52alMgjCGV9Kwm

5

Re: Cliff Status on Avatar - Статус пользователя вокруг аватара

Grand91 wrote:

дефолтный аватар

Попробуйте отключить и проверить еще раз  PunBB_INFO_ICQ/scratch

6

Re: Cliff Status on Avatar - Статус пользователя вокруг аватара

Пробовал на 1.4.4 - заглючило,

Я добился аналогичного поведения добавив вот такой css

.postbody .useravatar img {
    border: 2px solid #BB9999;
   margin: 4px 0 4px -8px;
    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; 
}
.postbody.online .useravatar img {
    border: 2px solid #99BB99;
}

7

Re: Cliff Status on Avatar - Статус пользователя вокруг аватара

SegrOk wrote:

Пробовал на 1.4.4 - заглючило,

Я добился аналогичного поведения добавив вот такой css

Программный код:
.postbody .useravatar img {
    border: 2px solid #BB9999;
   margin: 4px 0 4px -8px;
    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...

Не знаю что у вас могло "заглючить", с моим расширением все в порядке. Проверял на чистых версиях 1.4.4-1.4.6, все работало как нужно.
Так что ищите у себя в коде проблемы, в крайнем случае в консоли.

8

Re: Cliff Status on Avatar - Статус пользователя вокруг аватара

Воспроизвел глюк:
нужна тема к торой по переменно пишут два пользователя
первый пост - user1 без аватара
второй пост - user2 с аватаром
третий пост - user1

При этом в третьем посте у user1 появляется аватара от user2

Почему? Из-за кеширования выводимых данных в viewtopic.php в строке 358

$forum_page['author_ident'] = $user_data_cache[$cur_post['poster_id']]['author_ident'];

при этом $forum_page['avatar_markup'] не кешировалось и остается от предыдущего поста

Есть два варианта решения

первый - исправить хук vt_row_pre_post_actions_merge

<?php if (!defined('FORUM')) die();

if ($forum_config['o_avatars'] == '1' && $forum_user['show_avatars'] != '0')
{
   if (!preg_match('~useravatar useravatar_(on|off)~', $forum_page['author_ident']['avatar']))
   {
      if ($cur_post['is_online'] == $cur_post['poster_id'] && $forum_config['o_avatars'] == '1')
         $forum_page['author_ident']['avatar'] = str_replace('class="useravatar"', 'class="useravatar useravatar_on"', $forum_page['author_ident']['avatar']);
      else
         $forum_page['author_ident']['avatar'] = str_replace('class="useravatar"', 'class="useravatar useravatar_off"', $forum_page['author_ident']['avatar']);
   }  
}

Второй - вообще не нужен этот хук:
Во viewtopic.php в строке 556 добавляется класс "online" к блоку всего поста, этого достаточно чтобы раскрасить аватар используя только css, не внося коррективы в html
Достаточно такого css

.postbody .useravatar img {
    border: 2px solid #BB9999;
   margin: 4px 0 4px -8px;
    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; 
}
.postbody.online .useravatar img {
    border: 2px solid #99BB99;
}