- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/tasknotifications.php
- Класс: CTaskNotifications
- Вызов: CTaskNotifications::GetRecipientsIDs
static function GetRecipientsIDs($arFields, $bExcludeCurrent = true, $bExcludeAdditionalRecipients = false, $currentUserId = false)
{
$currentUserIDFound = null;
if ($bExcludeAdditionalRecipients)
{
$arFields['ADDITIONAL_RECIPIENTS'] = [];
}
if ( ! isset($arFields['ADDITIONAL_RECIPIENTS']) )
{
$arFields['ADDITIONAL_RECIPIENTS'] = [];
}
if ( ! isset($arFields['IGNORE_RECIPIENTS']) || ! is_array($arFields['IGNORE_RECIPIENTS']) )
{
$arFields['IGNORE_RECIPIENTS'] = [];
}
$arRecipientsIDs = array_unique(
array_filter(
array_merge(
array($arFields["CREATED_BY"], $arFields["RESPONSIBLE_ID"]),
(array) ($arFields["ACCOMPLICES"] ?? []),
(array) ($arFields["AUDITORS"] ?? []),
(array) ($arFields['ADDITIONAL_RECIPIENTS'] ?? [])
)));
if (!empty($arFields['IGNORE_RECIPIENTS']))
{
foreach ($arRecipientsIDs as $key => $value)
{
if (in_array($value, $arFields['IGNORE_RECIPIENTS']))
{
unset($arRecipientsIDs[$key]);
}
}
}
if ($bExcludeCurrent)
{
if($currentUserId !== false)
{
$currentUserIDFound = $currentUserId;
}
elseif(User::getId())
{
$currentUserIDFound = User::getId();
}
if($currentUserIDFound)
{
$currentUserPos = array_search($currentUserIDFound, $arRecipientsIDs);
if ($currentUserPos !== false)
{
unset($arRecipientsIDs[$currentUserPos]);
}
}
}
return $arRecipientsIDs;
}