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

	if ($messageFields['COMMAND_CONTEXT'] != 'TEXTAREA')
		return false;

	if ($messageFields['MESSAGE_TYPE'] != IM_MESSAGE_PRIVATE)
		return false;

	if ($messageFields['COMMAND'] != 'lang')
		return false;

	$messageFields['COMMAND_PARAMS'] = trim($messageFields['COMMAND_PARAMS']);
	if (!in_array($messageFields['COMMAND_PARAMS'], Array('en', 'ru')))
		return false;

	global $GLOBALS;
	$grantAccess = IsModuleInstalled('bitrix24')? $GLOBALS['USER']->CanDoOperation('bitrix24_config'): $GLOBALS["USER"]->IsAdmin();
	if (!$grantAccess)
		return false;

	$language = $messageFields['COMMAND_PARAMS'];
	Loc::loadLanguageFile(__FILE__, $language);

	BitrixImBot::startWriting(Array('BOT_ID' => self::getBotId()), $messageFields['DIALOG_ID']);

	BitrixImBot::update(Array('BOT_ID' => self::getBotId()), Array(
		'LANG' => $language,
		'PROPERTIES' => Array(
			'NAME' => Loc::getMessage('IMBOT_BOT_NAME', null, $language),
			'COLOR' => Loc::getMessage('IMBOT_BOT_COLOR', null, $language),
			'EMAIL' => Loc::getMessage('IMBOT_BOT_EMAIL', null, $language),
			'WORK_POSITION' => Loc::getMessage('IMBOT_BOT_WORK_POSITION', null, $language),
			'PERSONAL_WWW' => Loc::getMessage('IMBOT_BOT_SITE', null, $language),
			'PERSONAL_GENDER' => Loc::getMessage('IMBOT_BOT_GENDER', null, $language),
			'PERSONAL_PHOTO' => self::uploadAvatar($language),
		)
	));

	self::sendAnswer(0, Array(
		'DIALOG_ID' => $messageFields['DIALOG_ID'],
		'ANSWER' => Loc::getMessage('IMBOT_BOT_CHANGE_LANG', null, $language)
	));

	return true;
}