- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/bitrix24disk/legacy/newdiskstorage.php
- Класс: BitrixDiskBitrix24DiskLegacyNewDiskStorage
- Вызов: NewDiskStorage::buildSelfTree
private function buildSelfTree(): array
{
$deletedTypeNone = ObjectTable::DELETED_TYPE_NONE;
$typeFolder = ObjectTable::TYPE_FOLDER;
$storageId = $this->storage->getId();
/** @var TreeNode[] $firstLevelLinks */
$firstLevelLinks = array();
$this->treeData = array();
$maxVersion = -1;
$query = new InternalsEntityQuery(ObjectTable::getEntity());
$query
->setSelect(array(
'ID',
'NAME',
'REAL_OBJECT_ID',
'PARENT_ID',
'CODE',
'CREATE_TIME',
'SYNC_UPDATE_TIME',
))
->addFilter('STORAGE_ID', $storageId)
->addFilter('DELETED_TYPE', $deletedTypeNone)
->addFilter('TYPE', $typeFolder)
;
foreach ($query->exec() as $folderRow)
{
if($folderRow['CODE'] === SpecificFolder::CODE_FOR_UPLOADED_FILES)
{
continue;
}
$node = $this->fillTreeData($folderRow);
if ($node->isLink() && !$this->isRealObjectExists($node))
{
$firstLevelLinks[] = $node;
}
$maxVersion = max($maxVersion, $folderRow['SYNC_UPDATE_TIME']->getTimestamp());
}
if (isset($this->treeData[$this->storage->getRootObjectId()]))
{
$this->treeData[$this->storage->getRootObjectId()]->setAsRoot();
}
return [$firstLevelLinks, $maxVersion];
}