• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_user_settings.php
  • Класс: CCalendarUserSettings
  • Вызов: CCalendarUserSettings::getTrackingUsers
static function getTrackingUsers($userId = false, $params = array())
{
	if (!$userId)
		$userId = CCalendar::GetUserId();

	$res = array();
	$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 (intval($id) > 0)
				{
					$res[] = intval($id);
				}
			}
		}
	}

	if ($params && 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(
		array(
			'filter' => array('ID' => $res),
			'select' => array('ID', 'LOGIN', 'NAME', 'LAST_NAME', 'SECOND_NAME')
		)
	);

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

	return $trackedUsers;
}