- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/chat.php
- Класс: BitrixImChat
- Вызов: Chat::formatChatData
static function formatChatData($chat): array
{
$generalChatId = CIMChat::GetGeneralChatId();
$avatar = CIMChat::GetAvatarImage($chat['AVATAR'], 200, false);
$color = $chat['COLOR'] <> ''? Color::getColor($chat['COLOR']): Color::getColorByNumber($chat['ID']);
if ($generalChatId == $chat['ID'])
{
$chat["ENTITY_TYPE"] = 'GENERAL';
}
$chatType = BitrixImChat::getType($chat);
$muteList = Array();
if ($chat['RELATION_NOTIFY_BLOCK'] == 'Y')
{
$muteList[] = (int)$chat['RELATION_USER_ID'];
}
$counter = (int)$chat['RELATION_COUNTER'];
$startCounter = (int)$chat['RELATION_START_COUNTER'];
$userCounter = (int)$chat['USER_COUNT'];
$unreadId = (int)$chat['RELATION_UNREAD_ID'];
$lastMessageId = (int)$chat['LAST_MESSAGE_ID'];
$publicOption = '';
if ($chat['ALIAS_NAME'])
{
$publicOption = [
'code' => $chat['ALIAS_NAME'],
'link' => Alias::getPublicLink($chat['ENTITY_TYPE'], $chat['ALIAS_NAME'])
];
}
$options = CIMChat::GetChatOptions();
$restrictions = $options['DEFAULT'];
if ($chat["ENTITY_TYPE"] && in_array($chat["ENTITY_TYPE"], array_keys($options), true))
{
$restrictions = $options[$chat['ENTITY_TYPE']];
}
return Array(
'ID' => (int)$chat['ID'],
'NAME' => $chat['TITLE'],
'DESCRIPTION' => $chat['DESCRIPTION'],
'OWNER' => (int)$chat['AUTHOR_ID'],
'EXTRANET' => $chat['EXTRANET'] == 'Y',
'AVATAR' => $avatar,
'COLOR' => $color,
'TYPE' => $chatType,
'COUNTER' => $counter,
'USER_COUNTER' => $userCounter,
'MESSAGE_COUNT' => (int)$chat['MESSAGE_COUNT'] - $startCounter,
'UNREAD_ID' => $unreadId,
'RESTRICTIONS' => $restrictions,
'LAST_MESSAGE_ID' => $lastMessageId,
'DISK_FOLDER_ID' => (int)$chat['DISK_FOLDER_ID'],
'ENTITY_TYPE' => (string)$chat['ENTITY_TYPE'],
'ENTITY_ID' => (string)$chat['ENTITY_ID'],
'ENTITY_DATA_1' => (string)$chat['ENTITY_DATA_1'],
'ENTITY_DATA_2' => (string)$chat['ENTITY_DATA_2'],
'ENTITY_DATA_3' => (string)$chat['ENTITY_DATA_3'],
'MUTE_LIST' => $muteList,
'DATE_CREATE' => $chat['DATE_CREATE'],
'MESSAGE_TYPE' => $chat["TYPE"],
'DISAPPEARING_TIME' => (int)$chat['DISAPPEARING_TIME'],
'PUBLIC' => $publicOption,
'ROLE' => mb_strtolower(self::getRole($chat)),
'MANAGE_USERS' => (string)$chat['MANAGE_USERS'],
'MANAGE_UI' => (string)$chat['MANAGE_UI'],
'MANAGE_SETTINGS' => (string)$chat['MANAGE_SETTINGS'],
'CAN_POST' => (string)$chat['CAN_POST'],
);
}