function bat_event_type_add_event_dates_field in Booking and Availability Management Tools for Drupal 8
Create "Event Dates" field.
1 call to bat_event_type_add_event_dates_field()
- EventType::save in modules/
bat_event/ src/ Entity/ EventType.php - Saves an entity permanently.
File
- modules/
bat_event/ bat_event.module, line 91 - Manage Events - Events store the EventValue of a Unit over a period of time.
Code
function bat_event_type_add_event_dates_field($entity) {
// Prevent interruption of config sync.
if (Drupal::isConfigSyncing()) {
return;
}
$field_name = 'event_dates';
$field_storage = FieldStorageConfig::loadByName('bat_event', $field_name);
$field = FieldConfig::loadByName('bat_event', $entity
->id(), $field_name);
if (empty($field_storage)) {
$field_storage = FieldStorageConfig::create([
'field_name' => $field_name,
'entity_type' => 'bat_event',
'type' => 'daterange',
'cardinality' => 1,
'locked' => 1,
'settings' => [
'datetime_type' => 'datetime',
],
]);
$field_storage
->save();
}
if (empty($field)) {
$field = FieldConfig::create([
'field_storage' => $field_storage,
'entity_type' => 'bat_event',
'label' => 'Event Dates',
'bundle' => $entity
->id(),
'required' => TRUE,
'settings' => [
'datetime_type' => 'datetime',
],
]);
$field
->save();
$form_display = \Drupal::entityTypeManager()
->getStorage('entity_form_display')
->load('bat_event.' . $entity
->id() . '.default');
if (!$form_display) {
$form_display = EntityFormDisplay::create([
'targetEntityType' => 'bat_event',
'bundle' => $entity
->id(),
'mode' => 'default',
'status' => TRUE,
]);
}
$form_display
->setComponent($field_name, [
'type' => 'daterange_default',
'weight' => 1,
]);
$form_display
->save();
}
}