Поддержка серверов

CIMMessenger::PreparePushForChat: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=360509

<?php 
//    /bitrix/modules/im/classes/general/im_messenger.phpCIMMessenger::PreparePushForChat()
//    3543:

    
public static function PreparePushForChat($params)
    {
        
$pushText self::PrepareMessageForPush($params['params']);
        unset(
$params['params']['message']['text_push']);

        
$chatTitle substr(htmlspecialcharsback($params['params']['chat'][$params['params']['chatId']]['name']), 032);
        
$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'] == 'Y' || $params['params']['message']['senderId'] <= 0)
        {
            
$avatarUser '';
            
$userName '';
        }
        else
        {
            
$userName = \Bitrix\Im\User::getInstance($params['params']['message']['senderId'])->getFullName(false);
            
$avatarUser = \Bitrix\Im\User::getInstance($params['params']['message']['senderId'])->getAvatar();
            if (
$avatarUser && strpos($avatarUser'http') !== 0)
            {
                
$avatarUser = \Bitrix\Im\Common::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();
        }

        if (
$chatAvatar == '/bitrix/js/im/images/blank.gif')
        {
            
$chatAvatar '';
        }
        else if (
$chatAvatar && strpos($chatAvatar'http') !== 0)
        {
            
$chatAvatar = \Bitrix\Im\Common::getPublicDomain().$chatAvatar;
        }

        unset(
$params['extra']);

        
array_walk_recursive($params, function(&$item$key){
            if (
is_null($item))
            {
                
$item false;
            }
            else if (
$item instanceof \Bitrix\Main\Type\DateTime)
            {
                
$item date('c'$item->getTimestamp());
            }
        });

        
$result = Array();
        
$result['module_id'] = 'im';
        
$result['push']['type'] = $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,
            
"event" => $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']
            ),
        );

        return 
$result;
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение