- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/connector.php
- Класс: BitrixImOpenLinesConnector
- Вызов: Connector::onMessageUpdate
static function onMessageUpdate($messageId, $messageFields, $flags)
{
if (
$flags['BY_EVENT']
|| !isset($messageFields['PARAMS']['CONNECTOR_MID'])
)
{
return false;
}
//TODO: Replace with the method ImOpenLinesChat::parseLinesChatEntityId or ImOpenLinesChat::parseLiveChatEntityId
[$connectorId, $lineId, $connectorChatId] = explode('|', $messageFields['CHAT_ENTITY_ID']);
if ($messageFields['CHAT_ENTITY_TYPE'] == 'LINES')
{
}
else if (self::isLiveChat($messageFields['CHAT_ENTITY_TYPE']))
{
$connectorId = self::TYPE_LIVECHAT;
}
else
{
return false;
}
if (
$messageFields['SYSTEM'] != 'Y'
&& self::isEnableSendMessageWithSignature($connectorId, $lineId)
&& $messageFields['AUTHOR_ID'] > 0
)
{
$flags['TEXT'] =
'[b]' . htmlspecialchars_decode(self::getOperatorName($lineId, $messageFields['AUTHOR_ID'], $messageFields['CHAT_ENTITY_ID'])) . ':[/b]'.
($flags['TEXT'] <> ''? '[br] '.$flags['TEXT']: '');
}
if ($connectorId == self::TYPE_LIVECHAT)
{
CIMMessenger::DisableMessageCheck();
foreach($messageFields['PARAMS']['CONNECTOR_MID'] as $mid)
{
CIMMessenger::Update($mid, $flags['TEXT'], $flags['URL_PREVIEW'], $flags['EDIT_FLAG'], $flags['USER_ID'], true);
}
CIMMessenger::EnableMessageCheck();
}
else if (
isset($lineId) && isset($connectorChatId)
&& !empty($messageFields['PARAMS']['CONNECTOR_MID'])
&& is_array($messageFields['PARAMS']['CONNECTOR_MID'])
&& Loader::includeModule('imconnector')
)
{
$fields = [
'im' => [
'chat_id' => $messageFields['CHAT_ID'],
'message_id' => $messageFields['ID']
],
'message' => [
'id' => $messageFields['PARAMS']['CONNECTOR_MID'],
'text' => $flags['TEXT'],
],
'chat' => [
'id' => $connectorChatId
],
];
$connector = new Output($connectorId, $lineId);
$connector->updateMessage([$fields]);
}
return true;
}