1. drupal
    1. 5 core.php
    2. 6 core.php
    3. 7
    4. 8
5 hook_form_alter($form_id, &$form)
6 – 7 hook_form_alter(&$form, &$form_state, $form_id)

Perform alterations before a form is rendered.

One popular use of this hook is to add form elements to the node form. When altering a node form, the node object can be accessed at $form['#node'].

Note that instead of hook_form_alter(), which is called for all forms, you can also use hook_form_FORM_ID_alter() to alter a specific form. For each module (in system weight order) the general form alter hook implementation is invoked first, then the form ID specific alter implementation is called. After all module hook implementations are invoked, the hook_form_alter() implementations from themes are invoked in the same manner.


$form Nested array of form elements that comprise the form.

$form_state A keyed array containing the current state of the form. The arguments that drupal_get_form() was originally called with are available in the array $form_state['build_info']['args'].

$form_id String representing the name of the form itself. Typically this is the name of the function that generated the form.

See also


Related topics


modules/system/system.api.php, line 1190

function hook_form_alter(&$form, &$form_state, $form_id) {
  if (isset($form['type']) && $form['type']['#value'] . '_node_settings' == $form_id) {
    $form['workflow']['upload_' . $form['type']['#value']] = array(
      '#type' => 'radios', 
      '#title' => t('Attachments'), 
      '#default_value' => variable_get('upload_' . $form['type']['#value'], 1), 
      '#options' => array(t('Disabled'), t('Enabled')),