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