You are here

function bat_booking_add_start_date_field in Booking and Availability Management Tools for Drupal 8

Same name and namespace in other branches
  1. 7 modules/bat_booking/bat_booking.module \bat_booking_add_start_date_field()

Add "Start Date" field.

1 call to bat_booking_add_start_date_field()
bat_booking_entity_insert in modules/bat_booking/bat_booking.module
Implements hook_entity_insert().

File

modules/bat_booking/bat_booking.module, line 208

Code

function bat_booking_add_start_date_field($bundle) {
  $field_name = 'booking_start_date';
  $field_storage = FieldStorageConfig::loadByName('bat_booking', $field_name);
  $field = FieldConfig::loadByName('bat_booking', $bundle, $field_name);
  if (empty($field_storage)) {
    $field_storage = FieldStorageConfig::create([
      'field_name' => $field_name,
      'entity_type' => 'bat_booking',
      'type' => 'datetime',
      'cardinality' => 1,
      'locked' => 1,
      'settings' => [
        'cache_count' => 4,
        'cache_enabled' => 0,
        'granularity' => [
          'day' => 'day',
          'hour' => 'hour',
          'minute' => 'minute',
          'month' => 'month',
          'second' => 0,
          'year' => 'year',
        ],
        'timezone_db' => '',
        'todate' => '',
        'tz_handling' => 'none',
      ],
    ]);
    $field_storage
      ->save();
  }
  if (empty($field)) {
    $field = FieldConfig::create([
      'field_name' => $field_name,
      'entity_type' => 'bat_booking',
      'label' => 'Start Date',
      'bundle' => $bundle,
      'required' => FALSE,
      'settings' => [
        'default_value' => 'blank',
        'default_value2' => 'same',
        'default_value_code' => '',
        'default_value_code2' => '',
        'user_register_form' => FALSE,
      ],
    ]);
    $field
      ->save();
  }
}