You are here

function ServiceAuditFilesMergeFileReferences::_auditfiles_merge_file_references_get_file_list in Audit Files 8

Retrieves the file IDs to operate on.

Return value

array The file IDs.

File

src/ServiceAuditFilesMergeFileReferences.php, line 21
providing the service that used in 'managed not used' functionality.

Class

ServiceAuditFilesMergeFileReferences

Namespace

Drupal\auditfiles

Code

function _auditfiles_merge_file_references_get_file_list() {
  $config = \Drupal::config('auditfiles_config.settings');
  $connection = Database::getConnection();
  $result_set = [];
  $query = 'SELECT fid, filename FROM {file_managed} ORDER BY filename ASC';
  $maximum_records = $config
    ->get('auditfiles_report_options_maximum_records') ? $config
    ->get('auditfiles_report_options_maximum_records') : 250;
  if ($maximum_records > 0) {
    $query .= ' LIMIT ' . $maximum_records;
  }
  $files = $connection
    ->query($query)
    ->fetchAllKeyed();
  $show_single_file_names = $config
    ->get('auditfiles_merge_file_references_show_single_file_names') ? $config
    ->get('auditfiles_merge_file_references_show_single_file_names') : 0;
  foreach ($files as $file_id => $file_name) {
    if ($show_single_file_names) {
      $result_set[] = $file_name;
    }
    else {
      $query2 = 'SELECT COUNT(fid) count FROM {file_managed} WHERE filename = :filename AND fid != :fid';
      $results2 = $connection
        ->query($query2, [
        ':filename' => $file_name,
        ':fid' => $file_id,
      ])
        ->fetchField();
      if ($results2 > 0) {
        $result_set[] = $file_name;
      }
    }
  }
  return array_unique($result_set);
}