You are here

public function ServiceAuditFilesMergeFileReferences::auditfilesMergeFileReferencesGetFileList in Audit Files 8.2

Same name and namespace in other branches
  1. 8.3 src/ServiceAuditFilesMergeFileReferences.php \Drupal\auditfiles\ServiceAuditFilesMergeFileReferences::auditfilesMergeFileReferencesGetFileList()

Retrieves the file IDs to operate on.

Return value

array The file IDs.

File

src/ServiceAuditFilesMergeFileReferences.php, line 82

Class

ServiceAuditFilesMergeFileReferences
Define all methods that used in merge file references functionality.

Namespace

Drupal\auditfiles

Code

public function auditfilesMergeFileReferencesGetFileList() {
  $config = $this->configFactory
    ->get('auditfiles.settings');
  $connection = $this->connection;
  $maximum_records = $config
    ->get('auditfiles_report_options_maximum_records');
  $result_set = [];
  $query = $connection
    ->select('file_managed', 'fm')
    ->fields('fm', [
    'fid',
    'filename',
  ])
    ->orderBy('filename', 'ASC');
  if ($maximum_records > 0) {
    $query
      ->range(0, $maximum_records);
  }
  $files = $query
    ->execute()
    ->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);
}