- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/component/ustatonline.php
- Класс: BitrixIntranetComponentUstatOnline
- Вызов: UstatOnline::prepareList
public function prepareList(): array
{
$users = [];
$select = [
"ID", "LAST_NAME", "NAME", "SECOND_NAME", "LOGIN", "PERSONAL_PHOTO", "LAST_ACTIVITY_DATE",
];
$date = new DateTime;
$filter = [
'=ACTIVE' => true,
'=IS_REAL_USER' => true,
'>=LAST_ACTIVITY_DATE' => $date->add('-'.$this->arResult["LIMIT_ONLINE_SECONDS"].' seconds'),
"!UF_DEPARTMENT" => false,
];
$result = UserTable::getList([
'select' => $select,
'filter' => $filter,
'order' => ['LAST_ACTIVITY_DATE' => 'DESC']
]);
while ($user = $result->fetch())
{
$users[$user['ID']] = self::prepareUser($user);
$this->arResult['ONLINE_USERS_ID'][] = $user['ID'];
}
if (count($users) < 10)
{
unset($filter['>=LAST_ACTIVITY_DATE']);
$result = UserTable::getList([
'select' => $select,
'filter' => $filter,
'limit' => 10,
]);
while ($user = $result->fetch())
{
$users[$user['ID']] = self::prepareUser($user);
}
}
return array_values($users);
}