You are here

public function FieldInheritanceSettingsForm::buildForm in Field Inheritance 8

Same name and namespace in other branches
  1. 2.0.x src/Form/FieldInheritanceSettingsForm.php \Drupal\field_inheritance\Form\FieldInheritanceSettingsForm::buildForm()

Define the form used for Field Inheritance settings.

Parameters

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

Drupal\Core\Form\FormStateInterface $form_state: An associative array containing the current state of the form.

Return value

array Form definition array.

Overrides ConfigFormBase::buildForm

File

src/Form/FieldInheritanceSettingsForm.php, line 113

Class

FieldInheritanceSettingsForm
Provides a form for configuring field inheritance settings.

Namespace

Drupal\field_inheritance\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $config = $this
    ->config('field_inheritance.config');
  $entity_types = $this->entityTypeManager
    ->getDefinitions();
  $entity_types = array_keys(array_filter($entity_types, function ($type) {
    return $type
      ->entityClassImplements(FieldableEntityInterface::CLASS);
  }));
  $entity_types = array_combine($entity_types, $entity_types);
  $form['included_entities'] = [
    '#type' => 'checkboxes',
    '#title' => $this
      ->t('Included Entity Types'),
    '#description' => $this
      ->t('Select the entity types that should be able to inherit data'),
    '#options' => $entity_types,
    '#default_value' => explode(',', $config
      ->get('included_entities')),
  ];
  $entity_bundles = [];
  foreach ($entity_types as $entity_type) {
    $bundles = $this->entityTypeBundleInfo
      ->getBundleInfo($entity_type);
    foreach (array_keys($bundles) as $bundle) {
      $entity_bundles[] = $entity_type . ':' . $bundle;
    }
  }
  $entity_bundles = array_combine($entity_bundles, $entity_bundles);
  $form['included_bundles'] = [
    '#type' => 'checkboxes',
    '#title' => $this
      ->t('Included Entity Bundles'),
    '#description' => $this
      ->t('Select the entity bundles that should be able to inherit data'),
    '#options' => $entity_bundles,
    '#default_value' => explode(',', $config
      ->get('included_bundles')),
  ];
  return parent::buildForm($form, $form_state);
}