function profile_form_alter
profile_form_alter(&$form, &$form_state, $form_id)
Implements hook_form_alter().
File
- modules/profile/profile.module, line 378
- Support for configurable user profiles.
Code
function profile_form_alter(&$form, &$form_state, $form_id) { if (!($form_id == 'user_register_form' || $form_id == 'user_profile_form')) { return; } $form['#validate'][] = 'profile_user_form_validate'; $account = $form['#user']; $result = _profile_get_fields($form['#user_category'], $form['#user_category'] == 'register'); $weight = 1; foreach ($result as $field) { $category = $field->category; if (!isset($form[$category])) { $form[$category] = array('#type' => 'fieldset', '#title' => check_plain($category), '#weight' => $weight++); } switch ($field->type) { case 'textfield': case 'url': $form[$category][$field->name] = array( '#type' => 'textfield', '#title' => check_plain($field->title), '#default_value' => isset($account->{$field->name}) ? $account->{$field->name} : '', '#maxlength' => 255, '#description' => _profile_form_explanation($field), '#required' => $field->required, ); if ($field->autocomplete) { $form[$category][$field->name]['#autocomplete_path'] = "profile/autocomplete/" . $field->fid; } break; case 'textarea': $form[$category][$field->name] = array( '#type' => 'textarea', '#title' => check_plain($field->title), '#default_value' => isset($account->{$field->name}) ? $account->{$field->name} : '', '#description' => _profile_form_explanation($field), '#required' => $field->required, ); break; case 'list': $form[$category][$field->name] = array( '#type' => 'textarea', '#title' => check_plain($field->title), '#default_value' => isset($account->{$field->name}) ? $account->{$field->name} : '', '#description' => _profile_form_explanation($field), '#required' => $field->required, ); break; case 'checkbox': $form[$category][$field->name] = array( '#type' => 'checkbox', '#title' => check_plain($field->title), '#default_value' => isset($account->{$field->name}) ? $account->{$field->name} : '', '#description' => _profile_form_explanation($field), '#required' => $field->required, ); break; case 'selection': $options = array(); $lines = preg_split("/[\n\r]/", $field->options); foreach ($lines as $line) { if ($line = trim($line)) { $options[$line] = $line; } } $form[$category][$field->name] = array( '#type' => 'select', '#title' => check_plain($field->title), '#default_value' => isset($account->{$field->name}) ? $account->{$field->name} : '', '#options' => $options, '#description' => _profile_form_explanation($field), '#required' => $field->required, '#empty_value' => 0, ); break; case 'date': $form[$category][$field->name] = array( '#type' => 'date', '#title' => check_plain($field->title), '#default_value' => isset($account->{$field->name}) ? $account->{$field->name} : '', '#description' => _profile_form_explanation($field), '#required' => $field->required, ); break; } } }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!profile!profile.module/function/profile_form_alter/7.x