You are here

public function DisplayFieldCopyForm::buildForm in Display Field Copy 2.x

Same name and namespace in other branches
  1. 8 src/Form/DisplayFieldCopyForm.php \Drupal\display_field_copy\Form\DisplayFieldCopyForm::buildForm()

File

src/Form/DisplayFieldCopyForm.php, line 80

Class

DisplayFieldCopyForm
Configure copy fields.

Namespace

Drupal\display_field_copy\Form

Code

public function buildForm(array $form, FormStateInterface $form_state, $field_key = '') {
  $form = parent::buildForm($form, $form_state, $field_key);
  $form['entities']['#access'] = FALSE;
  $form['ui_limit']['#access'] = FALSE;
  $options = [];
  foreach ($this->entityTypeManager
    ->getDefinitions() as $entity_type_id => $entity_type) {
    if (!$entity_type instanceof ContentEntityTypeInterface) {
      continue;
    }
    $bundles = $this->entityTypeBundleInfo
      ->getBundleInfo($entity_type_id);
    foreach ($bundles as $bundle_id => $data) {
      $fields = $this->entityFieldManager
        ->getFieldDefinitions($entity_type_id, $bundle_id);
      foreach ($fields as $field_id => $field) {
        if ($field instanceof BaseFieldDefinition) {
          $options[$entity_type_id . '.' . $field_id] = $entity_type
            ->getLabel() . ' - ' . $field
            ->getLabel();
        }
        elseif ($field instanceof FieldConfigInterface) {
          $options[$field
            ->id()] = $entity_type
            ->getLabel() . ' (' . $data['label'] . ') - ' . $field
            ->label();
        }
      }
    }
  }
  $field = $this->field;
  $form['ds_field_identity']['field_id'] = array(
    '#type' => 'select',
    '#options' => $options,
    '#title' => t('Fields'),
    '#required' => TRUE,
    '#default_value' => isset($field['properties']['field_id']) ? $field['properties']['field_id'] : '',
  );
  return $form;
}