- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/integration/calendar.php
- Класс: BitrixIntranetIntegrationCalendar
- Вызов: Calendar::updateCalendarChatParticipants
static function updateCalendarChatParticipants($eventId, $entryFields, $currentEventAttendeeList): void
{
if (
$entryFields['ID'] !== $entryFields['PARENT_ID']
|| !isset($entryFields['ATTENDEES'])
)
{
return;
}
if (!Loader::includeModule('im'))
{
return;
}
$meetingData = unserialize($entryFields['MEETING'], ['allowed_classes' => false]);
if (isset($meetingData['CHAT_ID']))
{
$chatId = $meetingData['CHAT_ID'];
}
else
{
return;
}
$currentUsers = [];
if (is_array($currentEventAttendeeList) && !empty($currentEventAttendeeList))
{
foreach ($currentEventAttendeeList as $key => $data)
{
$currentUsers[] = $data['id'];
}
}
$addedUsers = array_diff($entryFields['ATTENDEES'], $currentUsers);
$deletedUsers = array_diff($currentUsers, $entryFields['ATTENDEES']);
if (empty($addedUsers) && empty($deletedUsers))
{
return;
}
Secretary::updateChatUsers($chatId, $addedUsers, $deletedUsers);
}