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