- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_share.php
- Класс: CIMShare
- Вызов: CIMShare::SendMessage
private function SendMessage($startText, $endText, $quoteMessage, $messageParams = Array(), bool $skipUrlIndex = false)
{
$userName = BitrixImUser::getInstance($quoteMessage['AUTHOR_ID'])->getFullName(false);
$messageDate = FormatDate('X', $quoteMessage['DATE_CREATE'], time() + CTimeZone::GetOffset());
$sendMessage = $startText;
$sendMessage .= "------------------------------------------------------n";
$sendMessage .= $userName." [".$messageDate."]n";
if (trim($quoteMessage['MESSAGE']))
{
$sendMessage .= $quoteMessage['MESSAGE']."n";
}
if (!empty($quoteMessage['FILES']))
{
foreach ($quoteMessage['FILES'] as $fileId => $file)
{
$sendMessage .= "[".GetMessage("IM_SHARE_FILE").": ".$file['name']."]n";
}
}
$sendMessage .= "------------------------------------------------------n";
$sendMessage .= $endText;
$messageParams['CLASS'] = "bx-messenger-content-item-system";
if ($quoteMessage['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE)
{
if ($quoteMessage['AUTHOR_ID'] == $this->user_id)
{
$relation = BitrixImModelRelationTable::getList(Array(
'select' => Array('USER_ID'),
'filter' => Array(
'=CHAT_ID' => $quoteMessage['CHAT_ID'],
'!=USER_ID' => $quoteMessage['AUTHOR_ID'],
)
))->fetch();
if ($relation)
{
$quoteMessage['AUTHOR_ID'] = $relation['USER_ID'];
}
}
$messageId = CIMMessage::Add(Array(
'FROM_USER_ID' => $this->user_id,
'TO_USER_ID' => $quoteMessage['AUTHOR_ID'],
'MESSAGE' => $sendMessage,
'PARAMS' => $messageParams,
'URL_PREVIEW' => 'N',
'SKIP_CONNECTOR' => 'Y',
'SKIP_COMMAND' => 'Y',
'SILENT_CONNECTOR' => 'Y',
'SKIP_URL_INDEX' => $skipUrlIndex ? 'Y' : 'N',
));
}
else
{
$chat = BitrixImModelChatTable::getById($quoteMessage['CHAT_ID'])->fetch();
if ($chat['ENTITY_TYPE'] === 'ANNOUNCEMENT')
{
$messageId = CIMMessage::Add(Array(
'FROM_USER_ID' => $this->user_id,
'TO_USER_ID' => $this->user_id,
'MESSAGE' => $sendMessage,
'PARAMS' => $messageParams,
'URL_PREVIEW' => 'N',
'SKIP_CONNECTOR' => 'Y',
'SKIP_COMMAND' => 'Y',
'SILENT_CONNECTOR' => 'Y',
'SKIP_URL_INDEX' => $skipUrlIndex ? 'Y' : 'N',
));
}
else
{
$messageId = CIMChat::AddMessage(Array(
'TO_CHAT_ID' => $quoteMessage['CHAT_ID'],
'MESSAGE' => $sendMessage,
'PARAMS' => $messageParams,
'SYSTEM' => 'Y',
'URL_PREVIEW' => 'N',
'SKIP_CONNECTOR' => 'Y',
'SKIP_COMMAND' => 'Y',
'SILENT_CONNECTOR' => 'Y',
'SKIP_URL_INDEX' => $skipUrlIndex ? 'Y' : 'N',
));
}
}
return $messageId;
}