numRecords() > 0) { while ($nextResult = $result->next()) { $where .= $nextResult['FileID'] . ','; } } foreach ($classes as $className) { $query = new DataQuery($className); $ids = $query->execute()->column(); if (!count($ids)) { continue; } foreach (singleton($className)->hasOne() as $relName => $joinClass) { if ($joinClass == 'SilverStripe\\Assets\\Image' || $joinClass == 'SilverStripe\\Assets\\File') { $fieldName = $relName .'ID'; $query = DataList::create($className)->where("$fieldName > 0"); $query->distinct = true; $query->select(array($fieldName)); $usedFiles = array_merge($usedFiles, $query->execute()->column()); } elseif ($joinClass == 'SilverStripe\\Assets\\Folder') { // @todo } } } if ($usedFiles) { return "\"File\".\"ID\" NOT IN (" . implode(', ', $usedFiles) . ") AND (\"ClassName\" = 'File' OR \"ClassName\" = 'Image')"; } else { return "(\"ClassName\" = 'File' OR \"ClassName\" = 'Image')"; } return $where; // @todo - How? } }