• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_share.php
  • Класс: CIMShare
  • Вызов: CIMShare::PrepareText
static function PrepareText($quoteMessage)
{
	$quoteMessage['MESSAGE'] = preg_replace("/[SEND(?:=(.+?))?](.+?)?[/SEND]/i", "$2", $quoteMessage['MESSAGE']);
	$quoteMessage['MESSAGE'] = preg_replace("/[PUT(?:=(.+?))?](.+?)?[/PUT]/i", "$2", $quoteMessage['MESSAGE']);
	$quoteMessage['MESSAGE'] = preg_replace("/[CALL(?:=(.+?))?](.+?)?[/CALL]/i", "$2", $quoteMessage['MESSAGE']);
	//$quoteMessage['MESSAGE'] = preg_replace_callback('#(http[s]{0,1}://.*?)#', array($this, "PrepareImages"), $quoteMessage['MESSAGE']);
	$quoteMessage['MESSAGE'] = preg_replace("/(?:-{54}n)(.[^[n]+)(?:.[^n]*)?(.+?)(?:-{54})/s", '[QUOTE][B]$1[/B]$2[/QUOTE]', $quoteMessage['MESSAGE']);

	$result = '[QUOTE]';
	if ($quoteMessage['MESSAGE_TYPE'] != IM_MESSAGE_PRIVATE)
	{
		$chat = BitrixImModelChatTable::getById($quoteMessage['CHAT_ID'])->fetch();
		if ($chat)
		{
			$url = $chat['ENTITY_TYPE'] == 'LINES'? 'imol|'.$chat['ENTITY_ID']: 'chat'.$chat['ID'];
			$messageContext = isset($quoteMessage['MESSAGE_ID']) ? '&IM_MESSAGE=' . (int)$quoteMessage['MESSAGE_ID'] : '';
			$result .= "[B]".GetMessage('IM_SHARE_CHAT').":[/B] [URL=/online/?IM_DIALOG=".$url.$messageContext."]".$chat['TITLE']."[/URL]n";
		}
	}

	$userName = BitrixImUser::getInstance($quoteMessage['AUTHOR_ID'])->getFullName(false);
	$result .= "[B]".$userName."[/B]n";

	$result .= HTMLToTxt(nl2br($quoteMessage['MESSAGE']), '', array(), 0);
	if (!empty($quoteMessage['FILES']))
	{
		foreach ($quoteMessage['FILES'] as $file)
		{
			$result .= "[".GetMessage("IM_SHARE_FILE").": ".$file['name']."]n";
		}
	}
	$result .= '[/QUOTE]';

	return $result;
}