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()

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

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.