You are here

function _user_import_settings_save in User Import 7.3

Same name and namespace in other branches
  1. 8 user_import.module \_user_import_settings_save()
  2. 5.2 user_import.module \_user_import_settings_save()
  3. 5 user_import.module \_user_import_settings_save()
  4. 6.4 user_import.module \_user_import_settings_save()
  5. 6.2 user_import.module \_user_import_settings_save()
  6. 7 user_import.module \_user_import_settings_save()
  7. 7.2 user_import.module \_user_import_settings_save()
5 calls to _user_import_settings_save()
user_import_add_form_submit in ./user_import.admin.inc
user_import_edit_submit in ./user_import.admin.inc
user_import_template_new_submit in ./user_import.admin.inc
Save a new template.
user_import_template_update_submit in ./user_import.admin.inc
Update an existing template.
_user_import_initialise_import in ./user_import.admin.inc

File

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

Code

function _user_import_settings_save($settings) {

  // Database field defaults.
  $database_fields = array(
    'import_id' => NULL,
    'name' => '',
    'auto_import_directory' => '',
    'filename' => '',
    'oldfilename' => '',
    'filepath' => '',
    'started' => 0,
    'pointer' => 0,
    'processed' => 0,
    'valid' => 0,
    'field_match' => array(),
    'roles' => '',
    'options' => array(),
    'setting' => '',
  );

  // Form elements we never want to save in the options column.
  $form_variables = array(
    'form_id',
    'form_token',
    'form_build_id',
    'cancel',
    'import',
    'submit',
    'op',
    0,
    'return_path',
  );
  $form_variables = array_flip($form_variables);

  // Remove settings we don't need in the options column.
  $options = array_diff_key($settings, $database_fields);
  $options = array_diff_key($options, $form_variables);

  // Optimise Email Domain option if it's set.
  if (!empty($options['email_domain'])) {
    $options['email_domain'] = trim($options['email_domain']);
    if (substr($options['email_domain'], 0, 1) != '@') {
      $options['email_domain'] = '@' . $options['email_domain'];
    }
  }

  // Set defaults for options.
  foreach ($options as $key => $value) {
    $settings['options'][$key] = isset($settings[$key]) ? $settings[$key] : '';
  }

  // Optimise Email Domain option if it's set.
  if (!empty($settings['options']['email_domain'])) {
    $settings['options']['email_domain'] = trim($settings['options']['email_domain']);
    if (substr($settings['options']['email_domain'], 0, 1) != '@') {
      $settings['options']['email_domain'] = '@' . $settings['options']['email_domain'];
    }
  }

  // Set defaults for fields.
  foreach ($database_fields as $key => $value) {
    $settings[$key] = isset($settings[$key]) ? $settings[$key] : $value;
  }

  // Set default values.
  $import_id = isset($settings['import_id']) ? $settings['import_id'] : '';
  $name = isset($settings['name']) ? trim($settings['name']) : '';
  $pointer = isset($settings['pointer']) ? $settings['pointer'] : 0;
  $processed = isset($settings['processed']) ? $settings['processed'] : 0;
  $valid = isset($settings['valid']) ? $settings['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 = isset($settings['setting']) ? $settings['setting'] : '';

  // Only set an auto import directory if saving a template.
  if (isset($settings['auto_import_directory']) && $settings['setting'] == 'template') {
    $auto_import_directory = $settings['auto_import_directory'];
  }
  else {
    $auto_import_directory = '';
  }
  $file = new ArrayObject();
  $file->filename = isset($settings['filename']) ? $settings['filename'] : '';
  $file->oldfilename = isset($settings['oldfilename']) ? $settings['oldfilename'] : '';
  $file->filepath = isset($settings['filepath']) ? $settings['filepath'] : '';
  $settings['import_id'] = user_import_import_set($name, $file, $pointer, $processed, $valid, $field_match, $roles, $options, $setting, $auto_import_directory, $import_id);
  return $settings;
}