- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/Update/UpdateService.php
- Класс: BitrixImV2MessageUpdateUpdateService
- Вызов: UpdateService::fireEventAfterMessageUpdate
private function fireEventAfterMessageUpdate(array $botInChat = []): Result
{
$result = new Result;
$messageFields = $this->message->toArray();
$param = CIMMessageParam::Get($messageFields['ID']);
$messageFields['PARAMS'] = $param ?: [];
if ($messageFields && ($params['WITH_FILES'] ?? null) === 'Y')
{
$files = [];
if (isset($messageFields['PARAMS']['FILE_ID']))
{
foreach ($messageFields['PARAMS']['FILE_ID'] as $fileId)
{
$files[$fileId] = $fileId;
}
}
$messageFields['FILES'] = CIMDisk::GetFiles($messageFields['CHAT_ID'], $files, false);
}
$messageFields['DATE_MODIFY'] = new DateTime();
if ($this->message->getChat()->getType() != Chat::IM_TYPE_PRIVATE)
{
$messageFields['BOT_IN_CHAT'] = $botInChat;
}
foreach(GetModuleEvents('im', self::EVENT_AFTER_MESSAGE_UPDATE, true) as $event)
{
$updateFlags = [
'ID' => $this->message->getId(),
'TEXT' => $this->message->getMessage(),
'URL_PREVIEW' => $this->urlPreview,
'EDIT_FLAG' => $this->message->isViewedByOthers(),
'USER_ID' => $this->getContext()->getUserId(),
'BY_EVENT' => false,
];
ExecuteModuleEventEx($event, [$this->message->getId(), $messageFields, $updateFlags]);
Bot::onMessageUpdate($this->message->getId(), $messageFields);
}
return $result;
}