array(
'title' => t('Users'),
'can_create' => user_access('administer users'),
'create' => 'node_import_create_user',
)
);
}
/**
* Create a new user.
*/
function node_import_create_user($type, $values, $preview) {
$output = $preview ? '' : FALSE;
if ($preview) {
$form = array(); //Not needed - TODO: we should use $form['#validate']
$form_state = array(
'values' => $values,
);
user_register_validate($form, $form_state);
$output = '
';
$output .= '
'. check_plain($values['name']) .'
';
$output .= '
'. check_plain($values['mail']) .'
';
$output .= '
';
}
else {
$form_id = 'user_register';
$values['op'] = t('Save');
$form_state = array(
'values' => $values,
);
node_import_drupal_execute($form_id, $form_state);
$output = $form_state['user']->uid;
}
return $output;
}
/**
* Implementation of hook_node_import_fields().
*/
function user_node_import_fields($type) {
$fields = array();
if ($type === 'user') {
$fields['name'] = array(
'title' => t('Username'),
'module' => 'user',
'map_required' => TRUE,
);
$fields['mail'] = array(
'title' => t('E-mail address'),
'module' => 'user',
'input_format' => 'email',
'map_required' => TRUE,
);
$fields['pass'] = array(
'title' => t('Password'),
'module' => 'user',
);
$fields['status'] = array(
'title' => t('Status'),
'module' => 'user',
'allowed_values' => array('1' => t('Active'), '0' => t('Blocked')),
);
$fields['notify'] = array(
'title' => t('Notify user of new account'),
'module' => 'user',
'is_mappable' => FALSE,
);
}
return $fields;
}
/**
* Implementation of hook_node_import_options().
*/
function user_node_import_options($type, $options, $fields, $map) {
$form = array();
if ($type === 'user') {
$options = array(
'never' => t('Treat records without password as an error'),
'always' => t('Generate password for each record (even if set in the file)'),
'empty' => t('Generate password for records with empty password'),
);
$default = isset($map['pass']) && strlen($map['pass']) > 0 ? 'empty' : 'never';
$form['generate_pass'] = array(
'#type' => 'radios',
'#title' => t('Password'),
'#options' => $options,
'#default_value' => isset($options['generate_pass']) ? $options['generate_pass'] : $default,
);
}
return $form;
}
/**
* Implementation of hook_node_import_defaults().
*/
function user_node_import_defaults($type, $defaults, $fields, $map) {
$form = array();
if ($type == 'user') {
$form['status'] = array(
'#type' => 'radios',
'#title' => t('Status'),
'#options' => array('0' => t('Blocked'), '1' => t('Active')),
'#default_value' => isset($defaults['status']) ? $defaults['status'] : '1',
);
$form['notify'] = array(
'#type' => 'checkbox',
'#title' => t('Notify user of new account'),
'#default_value' => isset($defaults['notify']) ? $defaults['notify'] : '0',
);
}
return $form;
}
/**
* Implementation of hook_node_import_values_alter().
*/
function user_node_import_values_alter(&$values, $type, $defaults, $options, $fields, $preview) {
if ($type === 'user') {
if ($options['generate_pass'] === 'always' || ($options['generate_pass'] === 'empty' && strlen($values['pass']) == 0)) {
$values['pass'] = user_password();
}
if (!$preview) {
$values['pass'] = array(
'pass1' => $values['pass'],
'pass2' => $values['pass'],
);
}
}
}