function bat_event_series_type_add_event_dates_field in Booking and Availability Management Tools for Drupal 8
Create "Event Dates" field.
1 call to bat_event_series_type_add_event_dates_field()
- EventSeriesType::save in modules/
bat_event_series/ src/ Entity/ EventSeriesType.php - Saves an entity permanently.
File
- modules/
bat_event_series/ bat_event_series.module, line 75
Code
function bat_event_series_type_add_event_dates_field($bundle) {
$field_name = 'event_dates';
$field_storage = FieldStorageConfig::loadByName('bat_event_series', $field_name);
$field = FieldConfig::loadByName('bat_event_series', $bundle, $field_name);
if (empty($field_storage)) {
$field_storage = FieldStorageConfig::create([
'field_name' => $field_name,
'entity_type' => 'bat_event_series',
'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_series',
'label' => 'Event Dates',
'bundle' => $bundle,
'required' => TRUE,
'settings' => [
'datetime_type' => 'datetime',
],
]);
$field
->save();
$form_display = \Drupal::entityTypeManager()
->getStorage('entity_form_display')
->load('bat_event_series.' . $bundle . '.default');
if (!$form_display) {
$form_display = EntityFormDisplay::create([
'targetEntityType' => 'bat_event_series',
'bundle' => $bundle,
'mode' => 'default',
'status' => TRUE,
]);
}
$form_display
->setComponent($field_name, [
'type' => 'daterange_default',
'weight' => 1,
]);
$form_display
->save();
}
}