• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/usersettings.php
  • Класс: BitrixCalendarUserSettings
  • Вызов: UserSettings::getTrackingUsers
static function getTrackingUsers($userId = false, $params = [])
{
	if (!$userId)
	{
		$userId = CCalendar::getUserId();
	}

	$res = [];
	$str = CUserOptions::getOption("calendar", "superpose_tracking_users", false, $userId);

	if ($str !== false && CheckSerializedData($str))
	{
		$ids = unserialize($str, ['allowed_classes' => false]);
		if (is_array($ids) && count($ids) > 0)
		{
			foreach($ids as $id)
			{
				if ((int)$id > 0)
				{
					$res[] = (int)$id;
				}
			}
		}
	}
	if (is_array($res) && !in_array($userId, $res))
	{
		$res[] = $userId;
	}

	if (isset($params['userList']))
	{
		$params['userList'] = array_unique($params['userList']);
		$diff = array_diff($params['userList'], $res);
		if (count($diff) > 0)
		{
			$res = array_merge($res, $diff);
			self::setTrackingUsers($userId, $res);
		}
	}

	$res = BitrixMainUserTable::getList(
		[
			'filter' => ['ID' => $res],
			'select' => ['ID', 'LOGIN', 'NAME', 'LAST_NAME', 'SECOND_NAME']
		]
	);

	$trackedUsers = [];
	while ($user = $res->fetch())
	{
		$user['FORMATTED_NAME'] = CCalendar::GetUserName($user);
		$trackedUsers[] = $user;
	}

	return $trackedUsers;
}