numRecords() > 0) { while($nextResult = $result->next()) { $where .= $nextResult['FileID'] . ','; } } foreach($classes as $className) { $query = singleton($className)->extendedSQL(); $ids = $query->execute()->column(); if(!count($ids)) continue; foreach(singleton($className)->has_one() as $relName => $joinClass) { if($joinClass == 'Image' || $joinClass == 'File') { $fieldName = $relName .'ID'; $query = singleton($className)->extendedSQL("$fieldName > 0"); $query->distinct = true; $query->select(array($fieldName)); $usedFiles = array_merge($usedFiles, $query->execute()->column()); } elseif($joinClass == '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; } }