- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/volume/foldertree.php
- Класс: BitrixDiskVolumeFolderTree
- Вызов: FolderTree::purify
public function purify(): self
{
$connection = Application::getConnection();
$tableName = VolumeTable::getTableName();
$filter = $this->getFilter(
[
'=INDICATOR_TYPE' => VolumeFolder::className(),
'=OWNER_ID' => $this->getOwner(),
],
VolumeTable::getEntity()
);
$filterParent = array_intersect(array_keys($filter), ['PARENT_ID', '=PARENT_ID', '@PARENT_ID']);
$parentKeyId = array_shift($filterParent);
if ($parentKeyId && isset($filter[$parentKeyId]))
{
$filter[] = [
'LOGIC' => 'OR',
'PARENT_ID' => $filter[$parentKeyId],
'FOLDER_ID' => $filter[$parentKeyId],
];
unset($filter[$parentKeyId]);
}
$where = Query::buildFilterSql(VolumeTable::getEntity(), $filter);
$sql = 'DELETE FROM ' . $tableName . ' WHERE ' . $where;
$connection->queryExecute($sql);
return $this;
}