• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/bot/marta.php
  • Класс: BitrixImBotBotMarta
  • Вызов: Marta::onMessageAdd
static function onMessageAdd($messageId, $messageFields)
{
	if ($messageFields['SYSTEM'] == 'Y')
		return false;

	if ($messageFields['CHAT_ENTITY_TYPE'] != 'LINES')
	{
		BitrixImBot::startWriting(Array('BOT_ID' => self::getBotId()), $messageFields['DIALOG_ID']);
	}

	$userName = BitrixImUser::getInstance($messageFields['FROM_USER_ID'])->getName();

	$dateNow = new BitrixMainTypeDateTime();
	self::setBotOption($messageFields['FROM_USER_ID'], 'last_message', $dateNow->format('Ymd'));

	$botData = BitrixImBot::getCache(self::getBotId());

	if ($messageFields['MESSAGE'] == '0' && $messageFields['CHAT_ENTITY_TYPE'] == 'LINES')
	{
		self::sendAnswer(0, Array(
			'DIALOG_ID' => $messageFields['DIALOG_ID'],
			'ANSWER' => Loc::getMessage('IMBOT_BOT_WELCOME_LINES_REDIRECT')
		));
		return true;
	}

	if (mb_strpos($messageFields['MESSAGE'], self::EDIT_PHRASE) !== false && BitrixImUser::getInstance($messageFields['FROM_USER_ID'])->isExtranet())
	{
		$messageFields['MESSAGE'] = str_replace(self::EDIT_PHRASE, '', $messageFields['MESSAGE']);
	}

	self::sendMessage(Array(
		'BOT_ID' => self::getBotId(),
		'BOT_LANG' => $botData['LANG'],
		'DIALOG_ID' => $messageFields['DIALOG_ID'],
		'MESSAGE_ID' => $messageId,
		'MESSAGE_TEXT' => $messageFields['MESSAGE'],
		'MESSAGE_TYPE' => $messageFields['MESSAGE_TYPE'],
		'USER_NAME' => htmlspecialcharsback($userName),
		'USER_AGE' => 30,
	));

	return true;
}