- Модуль: 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;
}