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';
}