• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_messenger.php
  • Класс: CIMMessenger
  • Вызов: CIMMessenger::PrepareParamsForPush
static function PrepareParamsForPush($params)
{
	if (!isset($params['MESSAGE']))
	{
		$params['MESSAGE'] = '';
	}
	$params['MESSAGE'] = trim($params['MESSAGE']);

	$pushFiles = '';
	if (isset($params['FILES']) && count($params['FILES']) > 0)
	{
		foreach ($params['FILES'] as $file)
		{
			$pushFiles .= " [".GetMessage('IM_MESSAGE_FILE').": ".$file['name']."]";
		}
		$params['MESSAGE'] .= $pushFiles;
	}

	$hasAttach = mb_strpos($params['MESSAGE'], '[ATTACH=') !== false;

	$params['MESSAGE'] = preg_replace("/[CODE](.*?)[/CODE]/si", " [".GetMessage('IM_MESSAGE_CODE')."] ", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace("/[s]([^[]*(?:[(?!s]|/s])[^[]*)*)[/s]/i", "-", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace("/[b]([^[]*(?:[(?!b]|/b])[^[]*)*)[/b]/i", "$1", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace("/[i]([^[]*(?:[(?!i]|/i])[^[]*)*)[/i]/i", "$1", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace("/[u]([^[]*(?:[(?!u]|/u])[^[]*)*)[/u]/i", "$1", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace("/\[url\](.*?)\[\/url\]/i".BX_UTF_PCRE_MODIFIER, "$1", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace("/\[url\s*=\s*((?:[^\[\]]++|\[ (?: (?>[^\[\]]+) | (?:\1) )* \])+)\s*\](.*?)\[\/url\]/ixs".BX_UTF_PCRE_MODIFIER, "$2", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace_callback("/[USER=([0-9]{1,})][/USER]/i", Array('BitrixImText', 'modifyShortUserTag'), $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace("/[USER=([0-9]+)( REPLACE)?](.+?)[/USER]/i", "$3", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace("/[CHAT=([0-9]{1,})](.*?)[/CHAT]/i", "$2", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace_callback("/[SEND(?:=(?:.+?))?](?:.+?)?[/SEND]/i", Array("CIMMessenger", "PrepareMessageForPushSendPutCallBack"), $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace_callback("/[PUT(?:=(?:.+?))?](?:.+?)?[/PUT]/i", Array("CIMMessenger", "PrepareMessageForPushSendPutCallBack"), $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace("/[CALL(?:=(.+?))?](.+?)?[/CALL]/i", "$2", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace("/[PCH=([0-9]{1,})](.*?)[/PCH]/i", "$2", $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace_callback("/[ICON=([^]]*)]/i", Array("CIMMessenger", "PrepareMessageForPushIconCallBack"), $params['MESSAGE']);
	$params['MESSAGE'] = preg_replace('#-{54}.+?-{54}#s', " [".GetMessage('IM_QUOTE')."] ", str_replace(array("#BR#"), Array(" "), $params['MESSAGE']));
	$params['MESSAGE'] = preg_replace('/^(>>(.*)(n)?)/mi', " [".GetMessage('IM_QUOTE')."] ", str_replace(array("#BR#"), Array(" "), $params['MESSAGE']));

	if (!$pushFiles && !$hasAttach && ($params['ATTACH'] ?? null))
	{
		$params['MESSAGE'] .= " [".GetMessage('IM_MESSAGE_ATTACH')."]";
	}

	return $params['MESSAGE'];
}