You are here

function _user_import_settings_save in User Import 6.4

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.2 user_import.module \_user_import_settings_save()
  5. 7.3 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 324
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' => '',
    '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);

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

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

  // Update settings for existing import
  if (isset($settings['import_id'])) {
    db_query("UPDATE {user_import}\n           SET name = '%s', filename = '%s', oldfilename = '%s', filepath = '%s', pointer = %d, processed = %d, valid= %d, field_match = '%s', roles = '%s', options = '%s', setting = '%s'\n           WHERE import_id = %d\n           ", trim($settings['name']), $settings['filename'], $settings['oldfilename'], $settings['filepath'], $settings['pointer'], $settings['processed'], $settings['valid'], serialize($settings['field_match']), serialize($settings['roles']), serialize($settings['options']), $settings['setting'], $settings['import_id']);

    // Save settings for new import
  }
  else {
    db_query("INSERT INTO {user_import}\n           (name, filename, oldfilename, filepath, started, pointer, processed, valid, field_match, roles, options, setting)\n           VALUES ('%s', '%s', '%s', '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s')\n           ", trim($settings['name']), $settings['filename'], $settings['oldfilename'], $settings['filepath'], time(), $settings['pointer'], $settings['processed'], $settings['valid'], serialize($settings['field_match']), serialize($settings['roles']), serialize($settings['options']), $settings['setting']);
    switch ($GLOBALS['db_type']) {
      case 'mysql':
      case 'mysqli':
        $settings['import_id'] = db_result(db_query("SELECT LAST_INSERT_ID()"));
        break;
      case 'pgsql':
        $settings['import_id'] = db_result(db_query("SELECT currval('{user_import_import_id_seq}')"));
        break;
    }
  }
  return $settings;
}