- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_messenger.php
- Класс: CIMMessenger
- Вызов: CIMMessenger::PreparePushForChat
static function PreparePushForChat($params)
{
$pushText = self::PrepareMessageForPush($params['params']);
unset($params['params']['message']['text_push']);
$chatTitle = mb_substr(htmlspecialcharsback($params['params']['chat'][$params['params']['chatId']]['name']), 0, 32);
$chatType = $params['params']['chat'][$params['params']['chatId']]['type'];
$chatAvatar = $params['params']['chat'][$params['params']['chatId']]['avatar'];
$chatTypeLetter = $params['params']['chat'][$params['params']['chatId']]['message_type'];
if (($params['params']['system'] ?? null) === 'Y' || $params['params']['message']['senderId'] <= 0)
{
$avatarUser = '';
$userName = '';
}
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 (
isset(
$params['params']['message']['senderId'],
$params['params']['users'][$params['params']['message']['senderId']]
)
&& $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'] = [];
}
if ($chatAvatar == '/bitrix/js/im/images/blank.gif')
{
$chatAvatar = '';
}
else if ($chatAvatar && mb_strpos($chatAvatar, 'http') !== 0)
{
$chatAvatar = BitrixImCommon::getPublicDomain().$chatAvatar;
}
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'] = ($chatType === 'open'? 'openChat': $chatType);
$result['push']['tag'] = 'IM_CHAT_'.intval($params['params']['chatId']);
$result['push']['sub_tag'] = 'IM_MESS';
$result['push']['app_id'] = 'Bitrix24';
$result['push']['message'] = ($userName? $userName.': ': '').$pushText;
$result['push']['advanced_params'] = array(
"group"=> $chatType == 'lines'? 'im_lines_message': 'im_message',
"avatarUrl"=> $chatAvatar? $chatAvatar: $avatarUser,
"senderName" => $chatTitle,
"senderMessage" => ($userName? $userName.': ': '').$pushText,
"senderCut" => mb_strlen($userName? $userName.': ' : ''),
"data" => self::PrepareEventForPush($params['command'], $params['params'])
);
$result['push']['params'] = Array(
'TAG' => 'IM_CHAT_'.$params['params']['chatId'],
'CHAT_TYPE' => $chatTypeLetter? $chatTypeLetter: 'C',
'CATEGORY' => 'ANSWER',
'URL' => SITE_DIR.'mobile/ajax.php?mobile_action=im_answer',
'PARAMS' => Array(
'RECIPIENT_ID' => 'chat'.$params['params']['chatId'],
'MESSAGE_ID' => $params['params']['message']['id']
),
);
return $result;
}