function 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

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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.