1 user.module | user_register_form($form, &$form_state) |
Form builder; the user registration form.
See also
Related topics
File
- core/
modules/ user/ user.module, line 3219 - Enables the user registration and login system.
Code
function user_register_form($form, &$form_state) {
global $user;
$admin = user_access('administer users');
// Pass access information to the submit handler. Running an access check
// inside the submit function interferes with form processing and breaks
// hook_form_alter().
$form['administer_users'] = array(
'#type' => 'value',
'#value' => $admin,
);
// If we aren't admin but already logged on, go to the user page instead.
if (!$admin && $user->uid) {
backdrop_goto('user/' . $user->uid);
}
$form['#user'] = entity_create('user', array());
$form['#attached']['library'][] = array('system', 'jquery.cookie');
$form['#attributes']['class'][] = 'user-info-from-cookie';
// Start with the default user account fields.
user_account_form($form, $form_state);
// Attach field widgets, and hide the ones where the 'user_register_form'
// setting is not on.
field_attach_form('user', $form['#user'], $form, $form_state);
foreach (field_info_instances('user', 'user') as $field_name => $instance) {
if (empty($instance['settings']['user_register_form'])) {
$form[$field_name]['#access'] = FALSE;
}
}
if ($admin) {
// Redirect back to page which initiated the create request;
// usually admin/people/create.
$form_state['redirect'] = $_GET['q'];
}
// Prepare cancel link.
if (isset($_GET['destination'])) {
$path = $_GET['destination'];
}
elseif (isset($_SERVER['HTTP_REFERER'])) {
$path = $_SERVER['HTTP_REFERER'];
}
elseif ($admin) {
$path = 'admin/people';
}
else {
$path = '<front>';
}
$options = backdrop_parse_url($path);
$options['attributes']['class'][] = 'form-cancel';
$form['actions'] = array('#type' => 'actions');
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Create new account'),
);
$form['actions']['cancel'] = array(
'#type' => 'link',
'#title' => t('Cancel'),
'#href' => $options['path'],
'#options' => $options,
'#weight' => 1,
);
$form['#validate'][] = 'user_register_validate';
// Add the final user registration form submit handler.
$form['#submit'][] = 'user_register_submit';
return $form;
}