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