Как получить переменную общего количества пользователей онлайн?

Вопросы без привязки к версии. Установлена авточистка (2 года).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
romeo_piter
phpBB 2.0.22
Сообщения: 1369
Стаж: 16 лет
Благодарил (а): 163 раза
Поблагодарили: 20 раз

Как получить переменную общего количества пользователей онлайн?

Сообщение romeo_piter »

Стоит задача получить отдельную цифру пользователей онлайн для главной страницы, вместо длинного стринга, который штатно используется во viewonline.
В functions.php в массив глобальных переменных добавляю:
'TOTAL_USERS_EXT' => $online_users['total_online'],
В шаблоне index_body использую:
{{ TOTAL_USERS_EXT }}

Всё работает, цифра на главной отображается.
Но при входе на страницу search.php лезет ошибка:
3985: Undefined variable $online_users
3985: Trying to access array offset on value of type null

Что не так? Как сделать, чтобы всё было так?
Аватара пользователя
Perfecthus
phpBB 2.0.12
Сообщения: 871
Стаж: 14 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 53 раза
Поблагодарили: 92 раза

Re: Как получить переменную общего количества пользователей онлайн?

Сообщение Perfecthus »

Undefined variable $online_users = Неопределенная переменная $online_users
Определи переменную, возможно глобально.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: Как получить переменную общего количества пользователей онлайн?

Сообщение rxu »

romeo_piter писал(а): 20.04.2024 7:22 В functions.php в массив глобальных переменных добавляю
Смотря куда конкретно.
Изображение
romeo_piter
phpBB 2.0.22
Сообщения: 1369
Стаж: 16 лет
Благодарил (а): 163 раза
Поблагодарили: 20 раз

Re: Как получить переменную общего количества пользователей онлайн?

Сообщение romeo_piter »

rxu писал(а): 20.04.2024 10:54 Смотря куда конкретно.
В этот массив:
// The following assigns all _common_ variables that may be used at any point in a template.
$template->assign_vars(array(
после
'RECORD_USERS' => $l_online_record,
примерно 3985 строка
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: Как получить переменную общего количества пользователей онлайн?

Сообщение rxu »

Там не определена переменная $online_users, так как она задается только в случае, если вызов page_header() содержит второй параметр в виде true. В search.php такого не задано. Либо надо расширением задать true для $display_online_list.
Изображение
romeo_piter
phpBB 2.0.22
Сообщения: 1369
Стаж: 16 лет
Благодарил (а): 163 раза
Поблагодарили: 20 раз

Re: Как получить переменную общего количества пользователей онлайн?

Сообщение romeo_piter »

Тогда перефразирую вопрос. Мне нужна в шаблон переменная, содержащая количество пользователей (суммарное или просто гостей) онлайн для вывода ТОЛЬКО на главной странице. Как мне ее получить, чтобы не лезло никаких ошибок.

{{ TOTAL_USERS_ONLINE }} выводит полностью длинную фразу
"Всего 92 посетителя :: 8 зарегистрированных, 0 скрытых и 84 гостя (основано на активности пользователей за последние 5 минут)"
которая мне не нужна. Мне из нее нужно только "92".
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: Как получить переменную общего количества пользователей онлайн?

Сообщение rxu »

Вызов функции obtain_users_online() (без параметров) дает массив со всей информацией, из него нужен элемент $online_users['total_online'].
Изображение

Вернуться в «phpBB-пространство»