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