• Модуль: 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'],
	);
}