- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_main.php
- Класс: CVoxImplantMain
- Вызов: CVoxImplantMain::UpdateChatInfo
static function UpdateChatInfo($dialogId, array $additionalData)
{
if(!CModule::IncludeModule('im'))
return false;
if (mb_substr($dialogId, 0, 4) == 'chat')
{
$chatId = intval(mb_substr($dialogId, 4));
$fieldValue = $additionalData['CRM'].'|'.$additionalData['CRM_ENTITY_TYPE'].'|'.$additionalData['CRM_ENTITY_ID'];
$chatFields = array(
'ENTITY_DATA_1' => $fieldValue
);
if($additionalData['CRM'] == 'Y' && $additionalData['CRM_ENTITY_TYPE'] != '' && $additionalData['CRM_ENTITY_ID'] > 0)
{
$entityFields = CVoxImplantCrmHelper::getEntityFields($additionalData['CRM_ENTITY_TYPE'], $additionalData['CRM_ENTITY_ID']);
if($entityFields)
{
$chatFields['TITLE'] = $entityFields['NAME'];
$chatFields['AVATAR'] = (int)$entityFields['PHOTO'];
}
}
$updateResult = IMModelChatTable::update($chatId, $chatFields)->isSuccess();
if($updateResult)
{
$relationCursor = BitrixImModelRelationTable::getList(array(
"select" => array("ID", "USER_ID", "EXTERNAL_AUTH_ID" => "USER.EXTERNAL_AUTH_ID"),
"filter" => array(
"=CHAT_ID" => $chatId
),
));
while ($relation = $relationCursor->fetch())
{
if (
BitrixImUser::getInstance($relation['USER_ID'])->isBot() ||
BitrixImUser::getInstance($relation['USER_ID'])->isNetwork() ||
BitrixImUser::getInstance($relation['USER_ID'])->isConnector()
)
{
continue;
}
CIMContactList::CleanChatCache($relation['USER_ID']);
}
}
return $updateResult;
}
return false;
}