• Модуль: xmpp
  • Путь к файлу: ~/bitrix/modules/xmpp/classes/factory.php
  • Класс: CXMPPFactory
  • Вызов: CXMPPFactory::OnSocNetMessagesAdd
static function OnSocNetMessagesAdd($ID, $arFields)
{
	/*if (array_key_exists("IS_LOG", $arFields) && $arFields["IS_LOG"] == "Y")
		$bSystem = true;
	else
		$bSystem = false;*/

	$domain = CXMPPServer::GetDomain();
	if (CXMPPUtility::IsBitrix24Mode())
		$domain = $_SERVER["HTTP_HOST"];

	$factory = CXMPPFactory::GetFactory();

	if (IsModuleInstalled("im") && CModule::IncludeModule("im"))
	{
		if (isset($arFields["NOTIFY_MODULE"]) && isset($arFields["NOTIFY_EVENT"]) && $arFields["MESSAGE_TYPE"] == IM_MESSAGE_SYSTEM
		&& !CIMSettings::GetNotifyAccess($arFields["TO_USER_ID"], $arFields["NOTIFY_MODULE"], $arFields["NOTIFY_EVENT"], CIMSettings::CLIENT_XMPP))
			return false;

		if ($arFields["MESSAGE_OUT"] == IM_MAIL_SKIP)
			$arFields["MESSAGE_OUT"] = '';

		$parser = new CTextParser();

		return $factory->__SendMessage(
			((array_key_exists("IS_LOG", $arFields) && $arFields["IS_LOG"] == "Y") ? -5 : $arFields["FROM_USER_ID"]),
			$arFields["TO_USER_ID"],
			$ID,
			$arFields["MESSAGE_TYPE"],
			htmlspecialcharsbx($parser->convert4mail(str_replace("#BR#", "n", ($arFields["MESSAGE_OUT"] <> ''? $arFields["MESSAGE_OUT"]: $arFields["MESSAGE"])))),
			$domain
		);
	}
	else
	{
		$parser = new CSocNetTextParser();
		return $factory->__SendMessage(
			((array_key_exists("IS_LOG", $arFields) && $arFields["IS_LOG"] == "Y") ? -5 : $arFields["FROM_USER_ID"]),
			$arFields["TO_USER_ID"],
			$ID,
			$arFields["MESSAGE_TYPE"],
			htmlspecialcharsbx($parser->convert4mail(str_replace("#BR#", "n", $arFields["MESSAGE"]))),
			$domain
		);
	}
}