- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/Send/PushService.php
- Класс: BitrixImV2MessageSendPushService
- Вызов: PushService::preparePushForPrivate
private function preparePushForPrivate(array $params): array
{
$pushText = $this->prepareMessageForPush($params['params']);
unset($params['params']['message']['text_push']);
if (isset($params['params']['system']) && $params['params']['system'] == 'Y')
{
$userName = '';
$avatarUser = '';
}
else
{
$userName = User::getInstance($params['params']['message']['senderId'])->getFullName(false);
$avatarUser = User::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'] = [
$params['params']['message']['senderId'] => $params['params']['users'][$params['params']['message']['senderId']]
];
}
else
{
$params['params']['users'] = [];
}
unset($params['extra']);
array_walk_recursive($params, function(&$item, $key)
{
if (is_null($item))
{
$item = false;
}
else if ($item instanceof DateTime)
{
$item = date('c', $item->getTimestamp());
}
});
$result = [];
$result['module_id'] = 'im';
$result['push'] = [];
$result['push']['type'] = 'message';
$result['push']['tag'] = 'IM_MESS_'.(int)$params['params']['message']['senderId'];
$result['push']['sub_tag'] = 'IM_MESS';
$result['push']['app_id'] = 'Bitrix24';
$result['push']['message'] = $pushText;
$result['push']['advanced_params'] = [
'group' => 'im_message',
'avatarUrl' => $avatarUser,
'senderName' => $userName,
'senderMessage' => $pushText,
'data' => $this->prepareEventForPush($params['command'], $params['params']),
];
$result['push']['params'] = [
'TAG' => 'IM_MESS_'.$params['params']['message']['senderId'],
'CATEGORY' => 'ANSWER',
'URL' => SITE_DIR. 'mobile/ajax.php?mobile_action=im_answer',
'PARAMS' => [
'RECIPIENT_ID' => (int)$params['params']['message']['senderId'],
'MESSAGE_ID' => $params['params']['message']['id']
],
];
return $result;
}