NewDiskStorage::buildTree: метод Битрикс
Постоянная ссылка: http://bxapi.ru/src/?id=379364
// Bitrix\Disk\Bitrix24Disk\Legacy\NewDiskStorage::buildTree()
// /bitrix/modules/disk/lib/bitrix24disk/legacy/newdiskstorage.php:894
private function buildTree()
{
TreeNode::$__pathNodes = [];
$this->treeData = [];
$firstLevelLinks = $this->buildSelfTree();
$deepLinks = $this->buildTreeFromFirstLevelLinks($firstLevelLinks);
$theDeepestLinks = $this->buildTreeRecursiveFromLinks($deepLinks);
foreach($firstLevelLinks as $node)
{
if(isset($this->treeData[$node->realObjectId]))
{
$this->treeData[$node->realObjectId]->setLink($node);
}
}
foreach($deepLinks as $node)
{
if(isset($this->treeData[$node->realObjectId]))
{
$this->treeData[$node->realObjectId]->setLink($node);
}
}
foreach($theDeepestLinks as $node)
{
if(isset($this->treeData[$node->realObjectId]))
{
$this->treeData[$node->realObjectId]->setLink($node);
}
}
}