• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/component/ustatonline.php
  • Класс: BitrixIntranetComponentUstatOnline
  • Вызов: UstatOnline::getAllOnlineUserAction
public function getAllOnlineUserAction($pageNum)
{
	$pageNum = intval($pageNum);
	if ($pageNum <= 0)
	{
		$pageNum = 1;
	}

	$select = [
		"ID", "LAST_NAME", "NAME", "SECOND_NAME", "LOGIN", "PERSONAL_PHOTO", "LAST_ACTIVITY_DATE",
	];

	$users = [];
	$pageSize = 10;
	$date = new DateTime;

	$filter = [
		'=ACTIVE'       => true,
		'=IS_REAL_USER' => true,
		'>=LAST_ACTIVITY_DATE' => $date->add('-'.$this->getLimitOnlineSeconds().' seconds'),
		"!UF_DEPARTMENT" => false,
	];

	$result = UserTable::getList([
		'select' => $select,
		'filter' => $filter,
		'limit'  => $pageSize,
		'offset' => ($pageNum - 1) * $pageSize,
		'order' => [
			'LAST_LOGIN' => 'DESC'
		],
	]);
	while ($user = $result->fetch())
	{
		$userResult = self::prepareUser($user);
		$userResult["PATH_TO_USER_PROFILE"] = CComponentEngine::MakePathFromTemplate(
			$this->arParams["PATH_TO_USER"], array("user_id" => $user['ID'])
		);

		$users[] = $userResult;
	}

	if (!empty($users))
	{
		return $users;
	}
	else
	{
		return false;
	}
}