- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/volume/module/voximplant.php
- Класс: BitrixDiskVolumeModuleVoximplant
- Вызов: Voximplant::getFragment
static function getFragment(array $filter): VolumeFragment
{
if ($filter['INDICATOR_TYPE'] == VolumeFolder::className() || $filter['INDICATOR_TYPE'] == VolumeFolderTree::className())
{
// Chat specific
$chatList = BitrixImModelChatTable::getList([
'select' => ['ID', 'TITLE', 'LAST_MESSAGE_ID'],
'filter' => ['=DISK_FOLDER_ID' => $filter['FOLDER_ID']],
]);
if ($chat = $chatList->fetch())
{
$filter['SPECIFIC'] = [
'chat' => $chat,
'userInChat' => [],
'userCount' => 0
];
$chatUserList = BitrixImModelRelationTable::getList([
'select' => ['USER_ID'],
'filter' => ['=CHAT_ID' => $chat['ID']]
]);
if ($chatUserList->getSelectedRowsCount() > 0)
{
foreach ($chatUserList as $chatUser)
{
$filter['SPECIFIC']['userInChat'][] = $chatUser['USER_ID'];
$filter['SPECIFIC']['userCount']++;
}
}
}
return new VolumeFragment($filter);
}
return parent::getFragment($filter);
}