You are here

function user_import_trigger_imports in User Import 8

Same name and namespace in other branches
  1. 7.3 user_import.module \user_import_trigger_imports()
  2. 7 user_import.module \user_import_trigger_imports()
  3. 7.2 user_import.module \user_import_trigger_imports()

Trigger imports if new files are found durring a cron run.

1 call to user_import_trigger_imports()
user_import_cron in ./user_import.module
Implementation of hook_cron().

File

./user_import.module, line 166
Import or update users with data from a comma separated file (csv).

Code

function user_import_trigger_imports() {
  $auto_imports_enabled = variable_get('user_import_auto_imports_enabled', FALSE);
  if (empty($auto_imports_enabled)) {
    return;
  }

  // Load import functions.
  module_load_include('inc', 'user_import', 'user_import.admin');

  // Get list of templates to check.
  $imports = db_query("SELECT * FROM {user_import} WHERE auto_import_directory != '' AND setting = 'template'");
  foreach ($imports as $import) {

    // Check for file in the uploads directory of this template.
    $directory = 'private://user_import/uploads/' . $import->auto_import_directory;
    $files = file_scan_directory($directory, '/.*$/');
    foreach ($files as $import_file) {

      // Move file to processing directory.
      $filename_new = $import_file->filename . '-' . rand(1000000, 2000000);
      $import_file_new = file_unmanaged_move($import_file->uri, 'private://user_import/processing/' . $filename_new);

      // Create import.
      // Get template.
      $settings = _user_import_settings_select($import->import_id);
      $import_id = '';
      $name = '';
      $pointer = 0;
      $processed = 0;
      $valid = 0;
      $field_match = isset($settings['field_match']) ? serialize($settings['field_match']) : '';
      $roles = isset($settings['roles']) ? serialize($settings['roles']) : '';
      $options = isset($settings['options']) ? serialize($settings['options']) : '';
      $setting = 'import';
      $file->filename = $filename_new;
      $file->oldfilename = $import_file->filename;
      $file->filepath = 'private://user_import/processing/' . $filename_new;
      $import_id = user_import_import_set($name, $file, $pointer, $processed, $valid, $field_match, $roles, $options, $setting, $import_id);
      $settings = _user_import_settings_select($import_id);
      _user_import_process($settings);
    }
  }
  return;

  // Get template.
  $settings = _user_import_settings_select(2);
  foreach ($files as $filename) {
    if ($filename == 'sample.txt') {

      // Check if it's used for an import already.
      $imported = db_query('SELECT import_id FROM {user_import} WHERE filename = :filename', array(
        ':filename' => $filename,
      ))
        ->fetchField();
      if (!$imported) {
        $import_id = '';
        $name = '';
        $pointer = 0;
        $processed = 0;
        $valid = 0;
        $field_match = isset($settings['field_match']) ? serialize($settings['field_match']) : '';
        $roles = isset($settings['roles']) ? serialize($settings['roles']) : '';
        $options = isset($settings['options']) ? serialize($settings['options']) : '';
        $setting = 'import';
        $file->filename = $filename;
        $file->oldfilename = $filename;
        $file->filepath = drupal_get_path('module', 'user_import') . '/' . $filename;
        $import_id = user_import_import_set($name, $file, $pointer, $processed, $valid, $field_match, $roles, $options, $setting, $import_id);
        $settings = _user_import_settings_select($import_id);
        _user_import_process($settings);
      }
    }
  }
  return;
}