Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Количество пользователей онлайн

00 голосов
4
Стала задача посчитать количество залогиненных пользователей на сайте на данный момент времени (можно под одинаковыми логинами) и вывести на экран это число.

Как в битриксе это можно сделать?
Есть ли готовая предустановленная функция?
спросил 12 Янв, 14 от Asteria (1,840 баллов)

4 Ответы

00 голосов
апи функции модуля статистики

CDBResult
CUserOnline::GetList(
int &guest_counter,
int &session_counter
)
Возвращает список сессий посетителей, проявивших активность (совершивших хит) на сайте за определённый интервал времени.

CDBResult
CGuest::GetList(
string &by = "s_last_date",
string &order = "desc",
array filter = array(),
bool &is_filtered
)
Возвращает список посетителей.


Подробнее читай в описании апи функций
ответил 26 Апр, 14 от asderte (260 баллов)
00 голосов
hiko, у меня пакет «Стандарт» без модуля статистики.
Функция работать не будет?
ответил 21 Авг, 14 от Asteria (1,840 баллов)
00 голосов
Есть один вариант.

В \bitrix\php_interface\init.php:

Код
AddEventHandler("main", "OnBeforeProlog", "MyUserOnline");
function MyUserOnline()
{
   if($GLOBALS["USER"]->IsAuthorized())
      CUser::SetLastActivityDate($GLOBALS["USER"]->GetID());
}


В том месте, где нужно получить пользователей в онлайне:

Код
//online status
$db = CUser::GetList($by, $order, array("LAST_ACTIVITY"=>120));
while($dba = $db->Fetch())
   echo $dba['ID']."<br>";
ответил 27 Дек, 14 от Ixie (540 баллов)
00 голосов
Vadim Dumbravanu, вроде бы работает. Спасибо большое.
ответил 15 Апр, 15 от Asteria (1,840 баллов)