• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_messenger.php
  • Класс: CIMMessenger
  • Вызов: CIMMessenger::PreparePushForPrivate
static function PreparePushForPrivate($params)
{
	$pushText = self::PrepareMessageForPush($params['params']);
	unset($params['params']['message']['text_push']);

	if (isset($params['params']['system']) && $params['params']['system'] == 'Y')
	{
		$userName = '';
		$avatarUser = '';
	}
	else
	{
		$userName = BitrixImUser::getInstance($params['params']['message']['senderId'])->getFullName(false);
		$avatarUser = BitrixImUser::getInstance($params['params']['message']['senderId'])->getAvatar();
		if ($avatarUser && mb_strpos($avatarUser, 'http') !== 0)
		{
			$avatarUser = BitrixImCommon::getPublicDomain().$avatarUser;
		}
	}

	if ($params['params']['users'][$params['params']['message']['senderId']])
	{
		$params['params']['users'] = Array(
			$params['params']['message']['senderId'] => $params['params']['users'][$params['params']['message']['senderId']]
		);
	}
	else
	{
		$params['params']['users'] = Array();
	}

	unset($params['extra']);

	array_walk_recursive($params, function(&$item, $key)
	{
		if (is_null($item))
		{
			$item = false;
		}
		else if ($item instanceof BitrixMainTypeDateTime)
		{
			$item = date('c', $item->getTimestamp());
		}
	});

	$result = Array();
	$result['module_id'] = 'im';
	$result['push']['type'] = 'message';
	$result['push']['tag'] = 'IM_MESS_'.intval($params['params']['message']['senderId']);
	$result['push']['sub_tag'] = 'IM_MESS';
	$result['push']['app_id'] = 'Bitrix24';
	$result['push']['message'] = $pushText;
	$result['push']['advanced_params'] = array(
		"group"=> 'im_message',
		"avatarUrl"=> $avatarUser,
		"senderName" => $userName,
		"senderMessage" => $pushText,
		"data" => self::PrepareEventForPush($params['command'], $params['params']),
	);
	$result['push']['params'] = Array(
		'TAG' => 'IM_MESS_'.$params['params']['message']['senderId'],
		'CATEGORY' => 'ANSWER',
		'URL' => SITE_DIR.'mobile/ajax.php?mobile_action=im_answer',
		'PARAMS' => Array(
			'RECIPIENT_ID' => (int)$params['params']['message']['senderId'],
			'MESSAGE_ID' => $params['params']['message']['id']
		),
	);

	return $result;
}