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

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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
romeo_piter
phpBB 2.0.21
Сообщения: 1322
Стаж: 15 лет 1 месяц
Благодарил (а): 159 раз
Поблагодарили: 21 раз

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

Сообщение 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.11
Сообщения: 804
Стаж: 13 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз

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

Сообщение Perfecthus »

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

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

Сообщение rxu »

romeo_piter писал(а): 20.04.2024 7:22 В functions.php в массив глобальных переменных добавляю
Смотря куда конкретно.
Изображение
romeo_piter
phpBB 2.0.21
Сообщения: 1322
Стаж: 15 лет 1 месяц
Благодарил (а): 159 раз
Поблагодарили: 21 раз

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
Сообщения: 16372
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1745 раз

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

Сообщение rxu »

Там не определена переменная $online_users, так как она задается только в случае, если вызов page_header() содержит второй параметр в виде true. В search.php такого не задано. Либо надо расширением задать true для $display_online_list.
Изображение
romeo_piter
phpBB 2.0.21
Сообщения: 1322
Стаж: 15 лет 1 месяц
Благодарил (а): 159 раз
Поблагодарили: 21 раз

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

Сообщение romeo_piter »

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

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

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

Сообщение rxu »

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

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