• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_messenger.php
  • Класс: CIMMessenger
  • Вызов: CIMMessenger::PreparePushForMentionInChat
static function PreparePushForMentionInChat($params)
{
	$params['CHAT_ID'] = intval($params['CHAT_ID']);
	if ($params['CHAT_ID'] <= 0)
	{
		return false;
	}

	$params['CHAT_TITLE'] = mb_substr(htmlspecialcharsback($params['CHAT_TITLE']), 0, 32);

	$pushText = $params['MESSAGE'];

	$chatType = BitrixImChat::getType($params);

	$avatarUser = BitrixImUser::getInstance($params['FROM_USER_ID'])->getAvatar();
	if ($avatarUser && mb_strpos($avatarUser, 'http') !== 0)
	{
		$avatarUser = BitrixImCommon::getPublicDomain().$avatarUser;
	}

	$avatarChat = CIMChat::GetAvatarImage($params['CHAT_AVATAR'], 200, false);
	if ($avatarChat && mb_strpos($avatarChat, 'http') !== 0)
	{
		$avatarChat = BitrixImCommon::getPublicDomain().$avatarChat;
	}

	$result = Array();
	$result['module_id'] = 'im';
	$result['push']['params'] = Array(
		'TAG' => 'IM_CHAT_'.$params['CHAT_ID'],
		'CHAT_TYPE' => $params['CHAT_TYPE'],
		'CATEGORY' => 'ANSWER',
		'URL' => SITE_DIR.'mobile/ajax.php?mobile_action=im_answer',
		'PARAMS' => Array(
			'RECIPIENT_ID' => 'chat'.$params['CHAT_ID']
		)
	);
	$result['push']['type'] = $params['PUSH_TYPE']? $params['PUSH_TYPE']: ($params['CHAT_TYPE'] == IM_MESSAGE_OPEN? 'openChat': 'chat');
	$result['push']['tag'] = 'IM_CHAT_'.$params['CHAT_ID'];
	$result['push']['sub_tag'] = 'IM_MESS';
	$result['push']['app_id'] = 'Bitrix24';
	$result['push']['message'] = $pushText;
	$result['push']['advanced_params'] = array(
		"group"=> $chatType == 'lines'? 'im_lines_message': 'im_message',
		"avatarUrl"=> $avatarChat? $avatarChat: $avatarUser,
		"senderName" => (string)$params['CHAT_TITLE'],
		"senderMessage" => $pushText,
	);

	return $result;
}