Same name and namespace in other branches
  1. 4.6.x modules/taxonomy.module \taxonomy_form_vocabulary()
  2. 4.7.x modules/taxonomy.module \taxonomy_form_vocabulary()
  3. 5.x modules/taxonomy/taxonomy.module \taxonomy_form_vocabulary()
  4. 6.x modules/taxonomy/taxonomy.admin.inc \taxonomy_form_vocabulary()

Form builder for the vocabulary editing form.

See also

taxonomy_form_vocabulary_submit()

taxonomy_form_vocabulary_validate()

Related topics

1 string reference to 'taxonomy_form_vocabulary'
taxonomy_menu in modules/taxonomy/taxonomy.module
Implements hook_menu().

File

modules/taxonomy/taxonomy.admin.inc, line 108
Administrative page callbacks for the taxonomy module.

Code

function taxonomy_form_vocabulary($form, &$form_state, $edit = array()) {

  // During initial form build, add the entity to the form state for use
  // during form building and processing. During a rebuild, use what is in the
  // form state.
  if (!isset($form_state['vocabulary'])) {
    $vocabulary = is_object($edit) ? $edit : (object) $edit;
    $defaults = array(
      'name' => '',
      'machine_name' => '',
      'description' => '',
      'hierarchy' => 0,
      'weight' => 0,
    );
    foreach ($defaults as $key => $value) {
      if (!isset($vocabulary->{$key})) {
        $vocabulary->{$key} = $value;
      }
    }
    $form_state['vocabulary'] = $vocabulary;
  }
  else {
    $vocabulary = $form_state['vocabulary'];
  }

  // @todo Legacy support. Modules are encouraged to access the entity using
  //   $form_state. Remove in Drupal 8.
  $form['#vocabulary'] = $form_state['vocabulary'];

  // Check whether we need a deletion confirmation form.
  if (isset($form_state['confirm_delete']) && isset($form_state['values']['vid'])) {
    return taxonomy_vocabulary_confirm_delete($form, $form_state, $form_state['values']['vid']);
  }
  $form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('Name'),
    '#default_value' => $vocabulary->name,
    '#maxlength' => 255,
    '#required' => TRUE,
  );
  $form['machine_name'] = array(
    '#type' => 'machine_name',
    '#default_value' => $vocabulary->machine_name,
    '#maxlength' => 255,
    '#machine_name' => array(
      'exists' => 'taxonomy_vocabulary_machine_name_load',
    ),
  );
  $form['old_machine_name'] = array(
    '#type' => 'value',
    '#value' => $vocabulary->machine_name,
  );
  $form['description'] = array(
    '#type' => 'textfield',
    '#title' => t('Description'),
    '#default_value' => $vocabulary->description,
  );

  // Set the hierarchy to "multiple parents" by default. This simplifies the
  // vocabulary form and standardizes the term form.
  $form['hierarchy'] = array(
    '#type' => 'value',
    '#value' => '0',
  );
  $form['actions'] = array(
    '#type' => 'actions',
  );
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );
  if (isset($vocabulary->vid)) {
    $form['actions']['delete'] = array(
      '#type' => 'submit',
      '#value' => t('Delete'),
    );
    $form['vid'] = array(
      '#type' => 'value',
      '#value' => $vocabulary->vid,
    );
    $form['module'] = array(
      '#type' => 'value',
      '#value' => $vocabulary->module,
    );
  }
  $form['#validate'][] = 'taxonomy_form_vocabulary_validate';
  return $form;
}