info navigation page administrator

phpbb-belk.ru

темы, связанные с форумом phpbb 3.0.x



Новая тема  [ 1 сообщение ] 

Автор Сообщение
Не в сети
(Андрей)  
Администратор
Аватара пользователя

Стаж: 6 лет 4 месяца 7 дней
Сообщения: 1179
Откуда: здешние мы


Стиль: subsilver2


Репутация: 9


Russia

Тиц и PR

перейти на сайт пользователя
Найти темы пользователя


Расширение функций Who is online (на главной странице)

работа с информацией раздела "кто сейчас на сайте", расположенного внизу главной страницы в виде отдельного блока. её изменение и модифицирование.

с модификацией браузера и разделением роботов и пользователей:

Вложение:
who is onlain index.png
who is onlain index.png [ 10.61 КБ | Просмотров: 35 ] who is onlain index.png



Вывод иконки браузера к нику пользователя
Browsers icons in "who is online" list для phpBB 3.0 mod

Обсуждение этой модификации здесь: https://phpbb-belk.ru/ikonki-brauzerov-polzovatelej-v-spiske-aktivnyx-proverka_t364.html

Вложение:
index.jpg
index.jpg [ 52.73 КБ | Просмотров: 45 ] index.jpg



как видно из скана - модификация добавляет значок браузера пользователя, с которого он входит на сайт. очередное предложение улучшения вывода информации от Sak. глядишь и кому ещё пригодится. :)

Установить не сложно. Поехали:

Скачать пак из архива сайта:

Скачать из файлового архива сайта

Содержимое папки root загрузить на ваш форум (туда, где находится файл config.php) - иконки браузеров.

Теперь редактируем файл:

Открыть includes\functions.php
Найти

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

      $sql = 'SELECT username, username_clean, user_id, user_type, user_allow_viewonline, user_colour
            FROM ' . USERS_TABLE . '
            WHERE ' . $db->sql_in_set('user_id', $online_users['online_users']) . '
            ORDER BY username_clean ASC';
      $result = $db->sql_query($sql);


Заменить найденное на

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

      $sql = 'SELECT u.username, u.username_clean, u.user_id, u.user_type, u.user_allow_viewonline, u.user_colour, s.session_browser
         FROM ' . USERS_TABLE . ' u JOIN ' . SESSIONS_TABLE . ' s
         ON u.user_id = s.session_user_id
         WHERE ' . $db->sql_in_set('u.user_id', $online_users['online_users']) . '
            AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) . '
         GROUP BY u.user_id
         ORDER BY u.username_clean ASC';
      $result = $db->sql_query($sql);


Найти

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

            if (isset($online_users['hidden_users'][$row['user_id']]))


Вставить перед найденным

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

            $user_browser = '';
            if ($row['user_type'] != USER_IGNORE)
            {
               if (stristr($row['session_browser'], 'Firefox')) $user_browser = 'firefox';
               elseif (stristr($row['session_browser'], 'Chrome')) $user_browser = 'chrome';
               elseif (stristr($row['session_browser'], 'Safari')) $user_browser = 'safari';
               elseif (stristr($row['session_browser'], 'Opera Mini')) $user_browser = 'operamini';
               elseif (stristr($row['session_browser'], 'Opera')) $user_browser = 'opera';
               elseif (stristr($row['session_browser'], 'MSIE 6.0')) $user_browser = 'ie';
               elseif (stristr($row['session_browser'], 'MSIE 7.0')) $user_browser = 'ie';
               elseif (stristr($row['session_browser'], 'MSIE 8.0')) $user_browser = 'ie';
            }


Найти

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

               $user_online_link = get_username_string(($row['user_type'] <> USER_IGNORE) ? 'full' : 'no_profile', $row['user_id'], $row['username'], $row['user_colour']);


Заменить на

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

               $user_online_link = get_username_string(($row['user_type'] <> USER_IGNORE) ? 'full' : 'no_profile', $row['user_id'], $row['username'], $row['user_colour']) . ($user_browser ? (' <img src="' . $phpbb_root_path . 'images/' . $user_browser . '.gif" alt="(' . $user_browser . ')" />') : '');


всё. можно пользоваться сразу. :-D


Разделение вывода пользователей и ботов
Вложение:
bots_new.png
bots_new.png [ 11.55 КБ | Просмотров: 38 ] bots_new.png



как видно из скана - модификация переводит вывод ботов, посещающих сайт, на отдельную строку. наверное у того, у кого много пользователей - это и будет востребовано... :?

тема для обсуждения и решения проблем: https://phpbb-belk.ru/razdelenie-polzovatelej-i-botov-na-glavnoj-proverka_t367.html

родная тема модификации: https://www.phpbbguru.net/community/viewtopic.php?t=23681#p229229

если заинтересовало - ставим:

Открыть /includes/functions.php
Найти

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

   $user_online_link = $online_userlist = '';


В строку, после

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

$online_userlist


Вставить код

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

 = $online_userlist_bots


После найденного ( с новой строки) пишем

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

   define('BOTS_GROUP_ID', 6);


Число 6 надо заменить на ID группы с ботами. Узнать можно так. Идем в Админраздел, на вкладку «Пользователи и группы», «Управление группами», «Боты => Участники». Смотрим на URL страницы участников. Там есть параметр „g“, после знака равенства идет ID группы. Вот это и есть искомое число. У меня здеь, на сайте, это число 6.


Найти

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

      $sql = 'SELECT username, username_clean, user_id, user_type, user_allow_viewonline, user_colour


Вставить после

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

user_colour


Следующий код

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

, group_id


Найти

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

               $online_userlist .= ($online_userlist != '') ? ', ' . $user_online_link : $user_online_link;


Заменить найденное на

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

               if ($item_id !== 0 || $row['group_id'] != BOTS_GROUP_ID)
               {
                  $online_userlist .= ($online_userlist != '') ? ', ' . $user_online_link : $user_online_link;
               }
               else
               {
                  $online_userlist_bots .= ($online_userlist_bots != '') ? ', ' . $user_online_link : $user_online_link;
               }


Найти

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

      $online_userlist = $user->lang['REGISTERED_USERS'] . ' ' . $online_userlist;


Вставляем после найденного

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

      if ($online_userlist_bots)
      {
         $online_userlist_bots = $user->lang['REGISTERED_USERS_BOTS'] . ' ' . $online_userlist_bots;
      }


Найти

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

      'l_online_users'   => $l_online_users,


Вставить после найденного

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

      'online_userlist_bots'   => $online_userlist_bots,


Найти

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

      $total_online_users = $online_users['total_online'];


Вставить после найденного

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

      $online_userlist_bots = $user_online_strings['online_userlist_bots'];


Найти

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

$l_online_users = $online_userlist = $l_online_record = $l_online_time = ''


Заменить найденное на

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

$l_online_users = $online_userlist = $l_online_record = $l_online_time = $online_userlist_bots = '';


Найти

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

      'LOGGED_IN_USER_LIST'         => $online_userlist,


Вставить после найденного

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

      'LOGGED_IN_USER_LIST_BOTS'      => $online_userlist_bots,


Открыть /language/ru/common.php
Найти (показана часть строки)

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

   'REGISTERED_USERS'


Вставить после найденного

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

   'REGISTERED_USERS_BOTS'      => 'Роботы:',


Если необходимо - такие же правки делаем и в английском варианте.

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

   'REGISTERED_USERS_BOTS'      => 'Bots:',

[/code_fon]


Открыть /styles/prosilver/template/index_body.html.
Найти

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

   <p>{TOTAL_USERS_ONLINE} ({L_ONLINE_EXPLAIN})<br />{RECORD_USERS}<br /> <br />{LOGGED_IN_USER_LIST}


Вставить после найденного

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

<!-- IF LOGGED_IN_USER_LIST_BOTS --><br />{LOGGED_IN_USER_LIST_BOTS}<!-- ENDIF -->


Открыть /styles/subsilver2/template/index_body.html.
Найти

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

      <td class="row1" width="100%"><span class="genmed">{TOTAL_USERS_ONLINE} ({L_ONLINE_EXPLAIN})<br />{RECORD_USERS}<br /><br />{LOGGED_IN_USER_LIST}</span></td>


Вставить после

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

{LOGGED_IN_USER_LIST}


Следующий код

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

<!-- IF LOGGED_IN_USER_LIST_BOTS --><br />{LOGGED_IN_USER_LIST_BOTS}<!-- ENDIF -->


Теперь надо очистить кэш форума и, может быть, браузера.
Всё. Правок, конечно, хватает, но система безглючная. должно работать сразу.


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Who is online,Index
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ 1 сообщение ] 

Кто сейчас на сайте:

Всего посетителей: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (45) здесь было 28 авг 2021, 12:44

Сейчас этот раздел просматривают: нет зарегистрированных пользователей и гости: 1

Часовой пояс: UTC + 2 часа



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Вы не можете защищать свои темы паролем

Найти:
Перейти:  


Текущее время: 28 янв 2022, 20:41

Создано на основе phpBB® Forum Software © phpBB Group
Яндекс.Метрика

Полная версия Мобильный вид