Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[BETA] Users Of The Day (another version)

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

quazi писал(а):список последних активных пользователей генерируется именно в includes/page_header.php
Это сделано по той причине, что число пользователей на форуме на данный момент нужно считать на каждой странице.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

Сообщение quazi »

Xpert, не согласен
при прочтении топика, абсолютно нет необходимости в определении общего количества всех активных пользователей

по той же самой причине
а) встроенная фича форума №количество активных пользователей"
б) и мое расмещение основго кода мода

в includes/page_header.php неразумно
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Поставил, живет.
Маленькое косметическое дополнение.

Код: Выделить всё

#
#-----[ OPEN ]------------------------------------------------
#
# Make sure to edit this file for every theme you use!
#
templates/subSilver/index_body.tpl

#
#-----[ FIND ]------------------------------------------------
#
<td class="row1" align="center" valign="middle" rowspan

#
#-----[ IN-LINE FIND ]----------------------------------------
#
# This value can be different, if other mods, add +1 to the value
#
2

#
#-----[ IN-LINE REPLACE WITH ]--------------------------------
#
# The find value can be different, if other mods, add +1 to the value
#
3
а то будет белый квадрат, это перед вашим редактированием index_body.tpl

И ещё, не совсем понял
$lang['Users_Stat'] = 'Сегодня наш форум поcетило пользователей: <b>%d</b><br />Зарегистрированных: %d, скрытых: %d и гостей: %d, из них <b>%d</b> в течение последнего часа<br />Зарегистрированные пользователи: %s';
Вот
Зарегистрированные пользователи: %s
Это за последний час или за сегодня?

Добавлено спустя 15 минут 20 секунд:

Посмотрел пощупал.
Как я понял:
ИП отображаеться только если пользователь онлайн?
Внизу отображаеться список ИП гостей?
Ну и
$lang['Users_Stat'] = 'Сегодня наш форум поcетило пользователей: <b>%d</b><br />Зарегистрированных: %d, скрытых: %d и гостей: %d, из них <b>%d</b> в течение последнего часа<br />Зарегистрированные пользователи: %s';
Пока не понял, но думаю завтра пойму, по тому что покажет. Просто меня эта формулировка вводит в заблуждение.

Добавлено спустя 1 минуту 51 секунду:

За мод спасибо, уже нравится.
я люблю daft punk | новый sugoi.ru
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

Сообщение quazi »

"за сегодня"
пожалуйста
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

quazi писал(а):"за сегодня"
Это именно сегодня или сутки?

Еще раз спасибо, и за рецепт отключения невидимости админов тоже спасибо. Невидимость модеров включаеться так?

Код: Выделить всё

// admin is not visible anywhere 
if ($userdata['user_level'] != MOD) 
{ 
   continue; 
}
Пофиг - сейчас проверю.
я люблю daft punk | новый sugoi.ru
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

Сообщение quazi »

VVVas писал(а):сегодня или сутки?
а подумать? "вчера" и "сегодня" как мы дифференцируем?

Добавлено спустя 7 минут 20 секунд:

скрытая фича мода.
админ может знать когда сегодня юзер ушел. то есть не просто окно с форумом закрыл, а нажал на кнопку форума "выход [ логин ]"

в посказке его IP будет выглядеть именно так 0.0.0.0
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

quazi писал(а):а подумать? "вчера" и "сегодня" как мы дифференцируем?
Просто какое-то странное сегодня (хоть оно и пытаеться быть сегодня): у одного пользователя, мод Today / Yesterday by Rumata пишет "Вчера".

А язык я себе поправил вот так

Код: Выделить всё

$lang['Users_Stat'] = 'Сегодня форум поcетило пользователей: <b>%d</b>, из них зарегистрированных: %d, скрытых: %d и гостей: %d<br />В течение последнего часа на форуме побывало <b>%d</b> пользователей<br />Сегодня на форуме побывали: %s';
Ещё раз спасибо - всё живет.

Добавлено спустя 7 минут 17 секунд:

Что-то закоментил указанные строки, а меня всё равно не видно.
я люблю daft punk | новый sugoi.ru
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

Сообщение quazi »

Код: Выделить всё

// Users at last hour
   if ($row['user_session_time'] >= mktime(date("H"), 0, 0))
   {

##
## этот фрагмент отвечает за учет админов в общем списке посетителей
## то есть админы считаются при показе админов
##
      if ($row['user_level'] != ADMIN) {
         $day_users['hour']++;
      }
   }

. . . . . . . . . . . . . . 

##
## этот фрагмент отвечает за видимость админов
## то есть только админы видят друг друга
##
        // all users visible for admin
        if ( $userdata['user_level'] == ADMIN || $row['user_level'] != ADMIN && $row['user_allow_viewonline'] )
        {
                $day_userlist[] = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color . $user_tooltip . '>' . $row['username'] . '</a>';
        }
обратить внимание надо на строки, помеченные ##
для изменения публичности админов надо изменить строку

Код: Выделить всё

        if ( $userdata['user_level'] == ADMIN || $row['user_level'] != ADMIN && $row['user_allow_viewonline'] )
на

Код: Выделить всё

        if ( $userdata['user_level'] == ADMIN || $row['user_allow_viewonline'] )
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

VVVas писал(а):Today / Yesterday by Rumata
Rumata и quazi - это одно лицо :)
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

Сообщение quazi »

Xpert писал(а):Это сделано по той причине, что число пользователей на форуме на данный момент нужно считать на каждой странице
это верно
quazi писал(а):при прочтении топика, абсолютно нет необходимости в определении общего количества всех активных пользователей
а это не верно

резюме: надо переносить из includes/page_header.php в index.php

Добавлено спустя 43 минуты 36 секунд:
VVVas писал(а):какое-то странное сегодня (хоть оно и пытаеться быть сегодня)
чтобы "сегодня" не было похожим на "вчера", будучи "сегодня"

надо изменить следующие строки, если вы уже поставили мод.
тем кто еще не ставил можно смело копировать код из первого поста этой темы

1. добавить строчку после // +Users of the day MOD

Код: Выделить всё

$userdata_time = 3600 * ( @$userdata['user_timezone'] ? $userdata['user_timezone'] : @$board_config['board_timezone'] );
далее я привожу по две строчки - старая (что было) и новая (чем заменить)

2. изменить 2 запроса БД

Код: Выделить всё

WHERE u.user_session_time >= " . ( mktime(0, 0, 0) ) . "
WHERE u.user_session_time >= " . ( gmmktime(0, 0, 0) - $userdata_time ) . "

AND s.session_time >= " . ( mktime(0, 0, 0) ) . "
AND s.session_time >= " . ( gmmktime(0, 0, 0) - $userdata_time ) . "
3. изменить строку (подсчет пользователей за час)

Код: Выделить всё

if ( $row['user_session_time'] >= mktime(date("H"), 0, 0) )
if ( $row['user_session_time'] >= gmmktime(date("H"), 0, 0) - $userdata_time )
4. изменить строку (посчет гостей за час)

Код: Выделить всё

if ( $row['session_time'] >= mktime(date("H"), 0, 0) )
if ( $row['session_time'] >= gmmktime(date("H"), 0, 0) - $userdata_time )
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

quazi
Пока не боролся с невидимостью админов. Просто поставил тупо новую версию. Вчера теперь исчезло. Спасибо.
В ней я так понял это фича такая что для гостей не видны и модеры и админы и статистика по ним? Может просто откажетесь от скрытия админов (вообще) и модеров (для гостей), а то как то странно получаеться в стандартном списке я есть, а в списке за день меня нет. Может стоит основываться только на параметре "Скрывать мое пребывание на форуме"?

Добавлено спустя 2 минуты 22 секунды:

Поборолся вот с невидимостью админов - нас теперь видно и мы считаемся.
Но модеры и их статистика всё равно не видны гостям. Можно это побороть?

Добавлено спустя 42 секунды:

И ещё бага: количество пользователей за последний час всегда отображаеться как 0.

Добавлено спустя 52 секунды:
Xpert писал(а):Rumata и quazi - это одно лицо
Это уже не одно лицо, а только одно тело и раздвоение личности 8)

Добавлено спустя 17 минут 34 секунды:

Насчет отрубания невидимости админов, я всё верно сделал:

Код: Выделить всё

      if ($row['user_level'] != ADMIN) 
//      { 
         $day_users['hour']++; 
//      }

Код: Выделить всё

      // admin is not visible anywhere 
      if ($userdata['user_level'] != ADMIN) 
//      { 
//         continue; 
//      }

Код: Выделить всё

// all users visible for admin 
        if ( $userdata['user_level'] == ADMIN || $row['user_allow_viewonline'] )
Или я что-то пропустил, не так или не там сделал?

Добавлено спустя 27 минут 21 секунду:
VVVas писал(а):Но модеры и их статистика всё равно не видны гостям.
Вот например сегодня на форуме был модер Smoke, но его гостям не видно, галочку "Скрывать мое прибывание на форуме" он не ставил. Это для примера.
я люблю daft punk | новый sugoi.ru
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

Сообщение quazi »

надо так

Код: Выделить всё

//      if ($row['user_level'] != ADMIN)
//      {
//         $day_users['hour']++;
//      }
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Если вдруг надо будет посмотреть со стороны пользователя, то
login test
pass test
я люблю daft punk | новый sugoi.ru
quazi
phpBB 2.0.2
Сообщения: 306
Стаж: 19 лет 1 месяц

Сообщение quazi »

test/test видимый
Сб 16 Июл 2005 12:58
Сегодня форум поcетило пользователей: 8, из них зарегистрированных: 4, скрытых: 1 и гостей: 3

test/test невидимый
Сб 16 Июл 2005 12:56
Сегодня форум поcетило пользователей: 8, из них зарегистрированных: 3, скрытых: 2 и гостей: 3

все в норме
sigal
phpBB Plus
Сообщения: 442
Стаж: 19 лет 10 месяцев
Откуда: КПРФ ;)

Сообщение sigal »

Код: Выделить всё

$lang['Users_Stat'] = 'Сегодня форум поcетило пользователей: <b>%d</b>, из них зарегистрированных: %d, скрытых: %d и гостей: %d<br />В течение последнего часа на форуме побывало <b>%d</b> пользователей<br />Сегодня на форуме побывали: %s';
VVVas
а зачем мутить в конце про последний час такое предложение? есть вариант проще сделать, я у себя сократил таким образом:

Код: Выделить всё

$lang['Users_Stat'] = 'Сегодня наш форум поcетило пользователей: <b>%d</b> :: зарегистрированных: %d, скрытых: %d и гостей: %d , из них %d в течение последнего часа.<br />Сегодня на форуме побывало: %s';
хотя последнее предожение сегодня на форуме побывало - я убрал..

Вернуться в «Бета-версии модов для phpBB 2.0.x»