function FieldStorageAddForm::buildForm

Same name and namespace in other branches
  1. 9 core/modules/field_ui/src/Form/FieldStorageAddForm.php \Drupal\field_ui\Form\FieldStorageAddForm::buildForm()
  2. 8.9.x core/modules/field_ui/src/Form/FieldStorageAddForm.php \Drupal\field_ui\Form\FieldStorageAddForm::buildForm()
  3. 11.x core/modules/field_ui/src/Form/FieldStorageAddForm.php \Drupal\field_ui\Form\FieldStorageAddForm::buildForm()

Overrides FormInterface::buildForm

File

core/modules/field_ui/src/Form/FieldStorageAddForm.php, line 124

Class

FieldStorageAddForm
Provides a form for the "field storage" add page.

Namespace

Drupal\field_ui\Form

Code

public function buildForm(array $form, FormStateInterface $form_state, $entity_type_id = NULL, $bundle = NULL) {
    if (!$form_state->get('entity_type_id')) {
        $form_state->set('entity_type_id', $entity_type_id);
    }
    if (!$form_state->get('bundle')) {
        $form_state->set('bundle', $bundle);
    }
    $this->entityTypeId = $form_state->get('entity_type_id');
    $this->bundle = $form_state->get('bundle');
    if (!$form_state->has('field_type_options') || !$form_state->has('unique_definitions')) {
        $this->processFieldDefinitions($form_state);
    }
    // Place the 'translatable' property as an explicit value so that contrib
    // modules can form_alter() the value for newly created fields. By default
    // we create field storage as translatable so it will be possible to enable
    // translation at field level.
    $form['translatable'] = [
        '#type' => 'value',
        '#value' => TRUE,
    ];
    $form['actions'] = [
        '#type' => 'actions',
    ];
    $form['actions']['submit'] = [
        '#type' => 'submit',
        '#value' => $this->t('Continue'),
        '#button_type' => 'primary',
    ];
    $form['#attached']['library'] = [
        'field_ui/drupal.field_ui',
        'field_ui/drupal.field_ui.manage_fields',
        'core/drupal.ajax',
    ];
    if ($form_state->hasValue('new_storage_type')) {
        // A group is already selected. Show field types for that group.
        $this->addFieldOptionsForGroup($form, $form_state);
    }
    else {
        // Show options for groups and ungrouped field types.
        $this->addGroupFieldOptions($form, $form_state);
    }
    return $form;
}

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