You are here

user.inc in User Import 5.2

File

supported/user.inc
View source
<?php

/**
 * Implementation of hook_user_import_form_field_match().
 */
function user_user_import_form_field_match() {
  $options = array();
  $options['user']['email'] = t('Email Address*');
  $options['user']['password'] = t('Password');
  return $options;
}

/**
 * Implementation of hook_user_import_form_fieldsets().
 */
function user_user_import_form_fieldset($import, $collapsed) {
  $form = array();
  user_user_import_edit_roles_fields($form, $import, $collapsed);
  user_user_import_edit_email_fields($form, $import, $collapsed);
  return $form;
}

/**
 * Implementation of hook_user_import_data().
 */
function user_user_import_data($settings, $column_settings, $module, $field_id, $data, $column_id) {
  if ($module != 'user') {
    return;
  }
  if ($field_id == 'email') {
    $value = trim($data[$column_id]);
    _user_import_validate_email($value, $settings['options']['update_users']);
  }
  if ($field_id == 'password') {
    $value = trim($data[$column_id]);
  }
  return $value;
}

/**
 * Implementation of hook_user_import_pre_save().
 */
function user_user_import_pre_save($settings, $account, $password, $fields, $errors) {
  $account_add['mail'] = $fields['user']['email'][0];
  if (empty($settings['options']['update_users'])) {
    $account_add['timezone'] = '-18000';
    $account_add['status'] = 1;
    $account_add['init'] = $fields['user']['email'][0];
    $account_add['pass'] = empty($fields['user']['password'][0]) ? user_password() : $fields['user']['password'][0];

    // get enabled roles
    while (list($rid, $role_set) = each($settings['roles'])) {
      if (!empty($role_set)) {
        $account_add['roles'][$rid] = $rid;
      }
    }
    if (!empty($settings['options']['activate'])) {
      $account_add['access'] = time();
      $account_add['login'] = time();
    }
    if ($settings['contact'] == 1) {
      $account_add['contact'] = 1;
    }
  }
  return $account_add;
}
function user_user_import_edit_roles_fields(&$form, $import, $collapsed) {
  $roles_data = user_roles();

  // remove 'anonymous user' option
  while (list($rid, $role_name) = each($roles_data)) {
    if ($role_name != 'anonymous user' && $role_name != 'authenticated user') {
      $roles[$rid] = $role_name;
    }
  }

  // roles selected
  if (!empty($import['roles'])) {
    foreach ($import['roles'] as $rid) {
      if ($rid != 0) {
        $roles_selected[] = $rid;
      }
    }
  }
  if (empty($roles_selected)) {
    $roles_selected[] = 2;
  }
  $form['role_selection'] = array(
    '#type' => 'fieldset',
    '#title' => t('Role Assign'),
    '#description' => t("Select which role(s) imported users should be assigned. The role 'authenticated user' is assigned automatically."),
    '#weight' => -80,
    '#collapsible' => TRUE,
    '#collapsed' => $collapsed,
  );
  $form['role_selection']['roles'] = array(
    '#type' => 'checkboxes',
    '#options' => $roles,
    '#default_value' => $roles_selected,
  );
  return;
}
function user_user_import_edit_email_fields(&$form, $import, $collapsed) {
  $form['email_message'] = array(
    '#type' => 'fieldset',
    '#title' => t('Email Message'),
    '#description' => t('Welcome message to be sent to imported users. Leave blank to use the default !message.<br /><strong>Warning</strong>: if you copy and paste directly from Word some characters may get garbled.', array(
      '!message' => l('message', 'admin/user/settings'),
    )),
    '#collapsible' => TRUE,
    '#collapsed' => $collapsed,
  );
  $form['email_message']['subject'] = array(
    '#type' => 'textfield',
    '#title' => t('Message Subject'),
    '#default_value' => $import['options']['subject'],
    '#description' => t('Customize the subject of the welcome e-mail, which is sent to imported members.') . ' ' . t('Available variables are:') . ' !username, !site, !password, !uri, !uri_brief, !mailto, !date, !login_uri, !edit_uri, !login_url' . $profile_string . '.',
  );
  $form['email_message']['message'] = array(
    '#type' => 'textarea',
    '#title' => t('Message'),
    '#default_value' => $import['options']['message'],
    '#description' => t('Customize the body of the welcome e-mail, which is sent to imported members.') . ' ' . t('Available variables are:') . ' !username, !site, !password, !uri, !uri_brief, !mailto, !login_uri, !edit_uri, !login_url' . $profile_string . '.',
  );
  $form['email_message']['message_format'] = array(
    '#type' => 'radios',
    '#title' => t('Email Format'),
    '#default_value' => empty($import['options']['message_format']) ? 0 : $import['options']['message_format'],
    '#options' => array(
      t('Plain Text'),
      t('HTML'),
    ),
  );
  $form['email_message']['message_css'] = array(
    '#type' => 'textarea',
    '#title' => t('CSS'),
    '#default_value' => $import['options']['message_css'],
    '#description' => t('Use if sending HTML formated email.'),
  );
  return;
}
function _user_import_validate_email($email = NULL, $duplicates_allowed = FALSE) {
  if (!$email) {
    user_import_errors(t('no email'));
  }
  elseif (!valid_email_address($email)) {
    user_import_errors(t('invalid email'));
  }
  elseif (!$duplicates_allowed && _user_import_existing_uid($email)) {
    user_import_errors(t('duplicate email'));
  }
  return;
}

Functions

Namesort descending Description
user_user_import_data Implementation of hook_user_import_data().
user_user_import_edit_email_fields
user_user_import_edit_roles_fields
user_user_import_form_fieldset Implementation of hook_user_import_form_fieldsets().
user_user_import_form_field_match Implementation of hook_user_import_form_field_match().
user_user_import_pre_save Implementation of hook_user_import_pre_save().
_user_import_validate_email