• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/connector.php
  • Класс: BitrixImOpenLinesConnector
  • Вызов: Connector::onMessageDelete
static function onMessageDelete($messageId, $messageFields, $flags)
{
	if (
		$flags['BY_EVENT'] ||
		!isset($messageFields['PARAMS']['CONNECTOR_MID'])
	)
	{
		return false;
	}

	if ($messageFields['CHAT_ENTITY_TYPE'] == 'LINES')
	{
		[$connectorType, $lineId, $connectorChatId] = explode("|", $messageFields['CHAT_ENTITY_ID']);
	}
	else if (Connector::isLiveChat($messageFields['CHAT_ENTITY_TYPE']))
	{
		$connectorType = self::TYPE_LIVECHAT;
	}
	else
	{
		return false;
	}

	if ($connectorType == self::TYPE_LIVECHAT)
	{
		CIMMessenger::DisableMessageCheck();
		foreach($messageFields['PARAMS']['CONNECTOR_MID'] as $mid)
		{
			CIMMessenger::Delete($mid, $flags['USER_ID'], $flags['COMPLETE_DELETE'], true);
		}
		CIMMessenger::EnableMessageCheck();
	}
	else if (
		isset($lineId)
		&& isset($connectorChatId)
		&& Loader::includeModule('imconnector')
	)
	{
		$fields = [];
		foreach($messageFields['PARAMS']['CONNECTOR_MID'] as $mid)
		{
			$fields[] = [
				'im' => [
					'chat_id' => $messageFields['CHAT_ID'],
					'message_id' => $messageFields['ID']
				],
				'message' => [
					'id' => $mid
				],
				'chat' => [
					'id' => $connectorChatId
				],
			];
		}
		if (!empty($fields))
		{
			$connector = new Output($connectorType, $lineId);
			$connector->deleteMessage($fields);
		}
	}

	return true;
}