You are here

public function ServiceAuditFilesNotInDatabase::auditfilesNotInDatabaseGetFilesForReport in Audit Files 4.x

Same name and namespace in other branches
  1. 8.3 src/ServiceAuditFilesNotInDatabase.php \Drupal\auditfiles\ServiceAuditFilesNotInDatabase::auditfilesNotInDatabaseGetFilesForReport()
  2. 8.2 src/ServiceAuditFilesNotInDatabase.php \Drupal\auditfiles\ServiceAuditFilesNotInDatabase::auditfilesNotInDatabaseGetFilesForReport()

Get files for report.

1 call to ServiceAuditFilesNotInDatabase::auditfilesNotInDatabaseGetFilesForReport()
ServiceAuditFilesNotInDatabase::auditfilesNotInDatabaseGetReportsFiles in src/ServiceAuditFilesNotInDatabase.php
Get the files that are not in database.

File

src/ServiceAuditFilesNotInDatabase.php, line 157

Class

ServiceAuditFilesNotInDatabase
Define all methods that are used on Files not in database functionality.

Namespace

Drupal\auditfiles

Code

public function auditfilesNotInDatabaseGetFilesForReport($path, array &$report_files) {
  $config = $this->configFactory
    ->get('auditfiles.settings');
  $file_system_stream = $config
    ->get('auditfiles_file_system_path') ? $config
    ->get('auditfiles_file_system_path') : 'public';
  $real_files_path = $real_files_path = $this->fileSystem
    ->realpath($file_system_stream . '://');
  $maximum_records = $config
    ->get('auditfiles_report_options_maximum_records') ? $config
    ->get('auditfiles_report_options_maximum_records') : 250;
  if ($maximum_records > 0 && count($report_files) < $maximum_records) {
    $new_files = $this
      ->auditfilesNotInDatabaseGetFiles($path);
    if (!empty($new_files)) {
      foreach ($new_files as $file) {

        // Check if the current item is a directory or a file.
        if (empty($file['path_from_files_root'])) {
          $item_path_check = $real_files_path . DIRECTORY_SEPARATOR . $file['file_name'];
        }
        else {
          $item_path_check = $real_files_path . DIRECTORY_SEPARATOR . $file['path_from_files_root'] . DIRECTORY_SEPARATOR . $file['file_name'];
        }
        if (is_dir($item_path_check)) {

          // The item is a directory, so go into it and get any files there.
          if (empty($path)) {
            $file_path = $file['file_name'];
          }
          else {
            $file_path = $path . DIRECTORY_SEPARATOR . $file['file_name'];
          }
          $this
            ->auditfilesNotInDatabaseGetFilesForReport($file_path, $report_files);
        }
        else {

          // The item is a file, so add it to the list.
          $file['path_from_files_root'] = $this
            ->auditfilesNotInDatabaseFixPathSeparators($file['path_from_files_root']);
          $report_files[] = $file;
        }
      }
    }
  }
}