Выделяем ботов в отдельную строку на главной

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Oleg NT
Former team member
Сообщения: 450
Стаж: 20 лет 8 месяцев
Откуда: Нижний Тагил
Поблагодарили: 11 раз

Выделяем ботов в отдельную строку на главной

Сообщение Oleg NT »

Многие меня просили убрать ботов с главной страницы (в строке «Кто сейчас на сайте — зарегистрированные пользователи»). Полностью я убирать не стал, а просто выделил их в отдельную строку.

Итак, что делаем.

Открываем /includes/functions.php
Ищем строку

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

	$user_online_link = $online_userlist = '';
Внутри нее после

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

$online_userlist
добавляем

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

 = $online_userlist_bots
Далее после этой строки добавляем следующий код:

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

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

Далее ищем строку

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

		$sql = 'SELECT username, username_clean, user_id, user_type, user_allow_viewonline, user_colour
В конец строки добавляем

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

, group_id
Ищем строку

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

					$online_userlist .= ($online_userlist != '') ? ', ' . $user_online_link : $user_online_link;
Заменяем на вот такое:

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

					if ($forum_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'];
Ищем

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

		'LOGGED_IN_USER_LIST'			=> $online_userlist,
после добавляем:

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

		'LOGGED_IN_USER_LIST_BOTS'		=> $online_userlist_bots,
Далее открываем файл /language/ru/common.php
Ищем строку, начинающуюся так:

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

	'REGISTERED_USERS'
После этой строки добавляем:

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

	'REGISTERED_USERS_BOTS'		=> 'Роботы:',
то же самое сделать в английском файле („Роботы:“ заменить на „Bots:“).

Открываем /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 -->
Идем в админку, очищаем кэш шаблонов стилей.

Теперь наша строчка на главной превратилась в две:
.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 19 лет 11 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Re: Выделяем ботов в отдельную строку на главной

Сообщение Gisher »

Oleg NT
может сделаете и для этого мода? Who Was Here?
Аватара пользователя
Oleg NT
Former team member
Сообщения: 450
Стаж: 20 лет 8 месяцев
Откуда: Нижний Тагил
Поблагодарили: 11 раз

Re: Выделяем ботов в отдельную строку на главной

Сообщение Oleg NT »

У меня нет такого мода :oops: :roll: и никогда не ставил.
Посмотрим.
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 19 лет 11 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Re: Выделяем ботов в отдельную строку на главной

Сообщение Gisher »

такс... при просмотре viewonline.php в шапке ругается на

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

[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3924: Undefined variable: online_userlist_bots
строка 3924 у меня

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

	        'LOGGED_IN_USER_LIST_BOTS'      => $online_userlist_bots,
Аватара пользователя
Oleg NT
Former team member
Сообщения: 450
Стаж: 20 лет 8 месяцев
Откуда: Нижний Тагил
Поблагодарили: 11 раз

Re: Выделяем ботов в отдельную строку на главной

Сообщение Oleg NT »

Oleg NT писал(а): Ищем

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

		$total_online_users = $online_users['total_online'];
после добавляем:

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

		$online_userlist_bots = $user_online_strings['online_userlist_bots'];
Вот этот шаг не пропустили?
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 19 лет 11 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Re: Выделяем ботов в отдельную строку на главной

Сообщение Gisher »

нет вроде

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

	// Get users online list ... if required
	$l_online_users = $online_userlist = $l_online_record = '';

	if ($config['load_online'] && $config['load_online_time'] && $display_online_list)
	{
		$f = request_var('f', 0);
		$f = max($f, 0);
		$online_users = obtain_users_online($f);
		$user_online_strings = obtain_users_online_string($online_users, $f);

		$l_online_users = $user_online_strings['l_online_users'];
		$online_userlist = $user_online_strings['online_userlist'];
		$total_online_users = $online_users['total_online'];
	        $online_userlist_bots = $user_online_strings['online_userlist_bots'];

		if ($total_online_users > $config['record_online_users'])
		{
			set_config('record_online_users', $total_online_users, true);
			set_config('record_online_date', time(), true);
		}

		$l_online_record = sprintf($user->lang['RECORD_ONLINE_USERS'], $config['record_online_users'], $user->format_date($config['record_online_date']));

		$l_online_time = ($config['load_online_time'] == 1) ? 'VIEW_ONLINE_TIME' : 'VIEW_ONLINE_TIMES';
		$l_online_time = sprintf($user->lang[$l_online_time], $config['load_online_time']);
	}
	else
	{
		$l_online_time = '';
	}
Добавлено спустя 2 минуты 6 секунд:
у вас при включённом debug нет подобных ошибок при просмотре страницы "Кто сейчас на конференции"?
Аватара пользователя
Oleg NT
Former team member
Сообщения: 450
Стаж: 20 лет 8 месяцев
Откуда: Нижний Тагил
Поблагодарили: 11 раз

Re: Выделяем ботов в отдельную строку на главной

Сообщение Oleg NT »

Опа, появилось. Ну пока отключите дебаг :) Я спать пошел. Потом подумаю, где косяк.
Gisher
phpBB 2.0.12
Сообщения: 857
Стаж: 19 лет 11 месяцев
Благодарил (а): 11 раз
Поблагодарили: 13 раз

Re: Выделяем ботов в отдельную строку на главной

Сообщение Gisher »

приятных снов)
я даже отключать не буду, всё равно эту страницу кроме меня никто не видет)


Добавлено спустя 46 минут 31 секунду:
пришлось отключить)
ошибка выскакивает не только в viewonline.php, в игротеке, в галереи и т д
wce
phpBB 1.2.1
Сообщения: 20
Стаж: 20 лет 7 месяцев

Re: Выделяем ботов в отдельную строку на главной

Сообщение wce »

Слегка апну тему: если в config.php включить DEBUG_EXTRA - сообщение об ошибке Undefined variable: online_userlist_bots не вылазит. Как не вылазит и в футере время генерации страницы. Так что присоединяюсь к просьбе Gisher.
21Vitaliy
phpBB 1.2.0
Сообщения: 17
Стаж: 17 лет 7 месяцев
Забанен: Бессрочно

Re: Выделяем ботов в отдельную строку на главной

Сообщение 21Vitaliy »

Oleg NT

А как по вашей онологии можно отделить пользователей и администраторов/модераторов?

Тоесть администраторов/модераторов на одну строку (скажем будет называеться "Команда")
А вторая строка обычные пользователи.
Erlang
phpBB 2.0.15
Сообщения: 1033
Стаж: 22 года 2 месяца
Откуда: Москва
Благодарил (а): 293 раза
Поблагодарили: 7 раз

Re: Выделяем ботов в отдельную строку на главной

Сообщение Erlang »

У меня аналогично
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3779: Undefined variable: online_userlist_bots
С уважением,
Сергей
Аватара пользователя
wwc
phpBB 1.4.4
Сообщения: 127
Стаж: 19 лет 3 месяца
Откуда: Москва
Благодарил (а): 1 раз

Re: Выделяем ботов в отдельную строку на главной

Сообщение wwc »

После того как поменял версию на 3.0.6 перестало работать выделение ботов. Внимательно все просмотрел, выяснилось ,что группа ботов поменялась. Внёс изменения в define('BOTS_GROUP_ID', 20); ... безрезультатно.

http://www.rsgmag.ru/forum/
Лучшая месть убийце - укол редкого вируса и поиск антидота от него за 48 часов.
Аватара пользователя
Бармен
phpBB 1.2.0
Сообщения: 17
Стаж: 16 лет 11 месяцев
Благодарил (а): 2 раза

Re: Выделяем ботов в отдельную строку на главной

Сообщение Бармен »

Тоже не работает на 3,0,7
попробовал
http://www.phpbb.com/community/viewtopi ... &t=1637765
Вот только маленький косячек получается
Сейчас посетителей на форуме: 20, из них зарегистрированных: 15, гостей: 2 (основано на активности пользователей за последние 10 минут)

Но никак не отображается количество скрытых.
и там есть в инструкции
Find

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

	'HIDDEN_USERS_ONLINE'			=> '%d hidden users online',
	'HIDDEN_USERS_TOTAL'			=> '%d hidden',
	'HIDDEN_USERS_TOTAL_AND'		=> '%d hidden and ',
	'HIDDEN_USERS_ZERO_ONLINE'		=> '0 hidden users online',
	'HIDDEN_USERS_ZERO_TOTAL'		=> '0 hidden',
	'HIDDEN_USERS_ZERO_TOTAL_AND'	=> '0 hidden and ',
	'HIDDEN_USER_ONLINE'			=> '%d hidden user online',
	'HIDDEN_USER_TOTAL'				=> '%d hidden',
	'HIDDEN_USER_TOTAL_AND'			=> '%d hidden and ',
половины этих параметров в 307 просто нет, но судя по всему это не так важно.

Возникает вопрос, а как сделать так чтобы на главной отображалось количество скрытых?
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Выделяем ботов в отдельную строку на главной

Сообщение Shredder »

wwc писал(а):После того как поменял версию на 3.0.6 перестало работать выделение ботов.
Вот в этом куске кода:

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

					if ($forum_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;
					}
Заменить $forum_id на $item_id - всё заработает.
Аватара пользователя
МайскийЖук
phpBB 3.0.7-PL1
Сообщения: 2535
Стаж: 16 лет 11 месяцев
Благодарил (а): 17 раз
Поблагодарили: 366 раз

Выделяем ботов в отдельную строку на главной

Сообщение МайскийЖук »

Отлично! Спасибо большое автору темы, а так же пользователю Shredder за уточнение. Все прекрасно работает. :)
Любовь и боль, покой и бой я как любой несу с собой…

Вернуться в «Для авторов (phpBB 3.0.x)»