You are here

function bat_event_form_bat_type_bundle_edit_form_alter in Booking and Availability Management Tools for Drupal 8

Implements hook_form_FORM_ID_alter().

FORM_ID = bat_type_bundle_edit_form

File

modules/bat_event/bat_event.module, line 794
Manage Events - Events store the EventValue of a Unit over a period of time.

Code

function bat_event_form_bat_type_bundle_edit_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  $type_bundle = $form_state
    ->getFormObject()
    ->getEntity();
  $fields_options = [];
  $fields = \Drupal::service('entity_field.manager')
    ->getFieldDefinitions('bat_unit_type', $type_bundle
    ->id());
  foreach ($fields as $field) {
    if ($field instanceof FieldConfig) {
      $fields_options[$field
        ->getName()] = $field
        ->getLabel() . ' (' . $field
        ->getName() . ')';
    }
  }
  $form['events'] = [
    '#type' => 'details',
    '#group' => 'advanced',
    '#title' => t('Events'),
    '#tree' => TRUE,
    '#weight' => 80,
  ];
  $event_types = bat_event_get_types();
  foreach ($event_types as $event_type) {
    $form['events'][$event_type
      ->id()] = [
      '#type' => 'select',
      '#title' => t('Select your default @event field', [
        '@event' => $event_type
          ->label(),
      ]),
      '#options' => $fields_options,
      '#default_value' => isset($type_bundle->default_event_value_field_ids[$event_type
        ->id()]) ? $type_bundle->default_event_value_field_ids[$event_type
        ->id()] : NULL,
      '#empty_option' => t('- Select a field -'),
    ];
  }
  $form['actions']['submit']['#submit'][] = 'bat_event_form_bat_type_bundle_form_submit';
}