- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Link/Calendar/CalendarService.php
- Класс: BitrixImV2LinkCalendarCalendarService
- Вызов: CalendarService::prepareDataForCreateSlider
public function prepareDataForCreateSlider(Chat $chat, ?Message $message = null): Result
{
$result = new Result();
if (!Loader::includeModule('calendar'))
{
return $result->addError(new CalendarError(CalendarError::CALENDAR_NOT_INSTALLED));
}
$chat->setContext($this->context);
$randomPostfix = mt_rand() & 1000; // get random number from 0 to 1000
$data['params']['sliderId'] = "im:chat{$chat->getChatId()}{$randomPostfix}";
$userIds = $chat->getRelations(
[
'SELECT' => ['ID', 'USER_ID', 'CHAT_ID'],
'FILTER' => ['ACTIVE' => true, 'ONLY_INTERNAL_TYPE' => true],
'LIMIT' => 50,
]
)->getUsers()->filterExtranet()->getIds();
$users = array_values(array_map(static fn($item) => ['id' => (int)$item, 'entityId' => 'user'], $userIds));
$data['params']['participantsEntityList'] = $users;
if (isset($message))
{
$message->setContext($this->context);
$data['params']['entryDescription'] = CIMShare::PrepareText([
'CHAT_ID' => $chat->getChatId(),
'MESSAGE_ID' => $message->getMessageId(),
'MESSAGE_TYPE' => $chat->getType(),
'MESSAGE' => $message->getMessage(),
'AUTHOR_ID' => $message->getAuthorId(),
'FILES' => $this->getFilesForPrepareText($message)
]);
}
return $result->setResult($data);
}