- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/controller/action/searchaction.php
- Класс: BitrixDiskControllerActionSearchAction
- Вызов: SearchAction::listIdsBySearch
protected function listIdsBySearch($searchQuery)
{
$filter = [
'=DELETED_TYPE' => ObjectTable::DELETED_TYPE_NONE,
'STORAGE.USE_INTERNAL_RIGHTS' => true,
'=STORAGE.MODULE_ID' => Driver::INTERNAL_MODULE_ID,
'@STORAGE.ENTITY_TYPE' => [
DiskProxyTypeUser::className(),
DiskProxyTypeGroup::className(),
DiskProxyTypeCommon::className(),
],
];
$fulltextContent = DiskSearchFullTextBuilder::create()
->addText($searchQuery)
->getSearchValue()
;
if (!SearchContent::canUseFulltextSearch($fulltextContent))
{
return [];
}
if (ReindexHeadIndex::isReady())
{
$filter["*HEAD_INDEX.SEARCH_INDEX"] = $fulltextContent;
}
elseif (ReindexBaseObjectIndex::isReady())
{
$filter["*SEARCH_INDEX"] = $fulltextContent;
}
else
{
return [];
}
$securityContext = new DiskSecurityDiskSecurityContext($this->getCurrentUser()->getId());
$parameters = Driver::getInstance()->getRightsManager()->addRightsCheck(
$securityContext,
[
'select' => ['ID'],
'filter' => $filter,
'limit' => 30,
'order' => [
'UPDATE_TIME' => 'DESC',
],
],
['ID', 'CREATED_BY']
);
$objectIds = [];
foreach (ObjectTable::getList($parameters) as $row)
{
$objectIds[] = $row['ID'];
}
return $objectIds;
}