You are here

function lightning_scheduler_entity_base_field_info in Lightning Workflow 8.2

Same name and namespace in other branches
  1. 8.3 modules/lightning_scheduler/lightning_scheduler.module \lightning_scheduler_entity_base_field_info()
  2. 8 modules/lightning_scheduler/lightning_scheduler.module \lightning_scheduler_entity_base_field_info()

Implements hook_entity_base_field_info().

1 call to lightning_scheduler_entity_base_field_info()
lightning_scheduler_update_8001 in modules/lightning_scheduler/lightning_scheduler.install
Installs new base fields.

File

modules/lightning_scheduler/lightning_scheduler.module, line 90

Code

function lightning_scheduler_entity_base_field_info(EntityTypeInterface $entity_type) {
  $fields = [];
  $moderation_info = Drupal::service('content_moderation.moderation_information');
  $migrations = Drupal::service('lightning_scheduler.migrator')
    ->getMigrations();
  if ($moderation_info
    ->canModerateEntitiesOfEntityType($entity_type)) {
    $fields['scheduled_transition_date'] = BaseFieldDefinition::create('datetime')
      ->setDisplayConfigurable('view', FALSE)
      ->setDisplayConfigurable('form', FALSE)
      ->setTranslatable(TRUE)
      ->setRevisionable(TRUE)
      ->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED);
    $fields['scheduled_transition_state'] = BaseFieldDefinition::create('string')
      ->setDisplayConfigurable('view', FALSE)
      ->setDisplayConfigurable('form', FALSE)
      ->setTranslatable(TRUE)
      ->setRevisionable(TRUE)
      ->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED);

    // If the entity type has not yet been migrated, we need to continue to
    // define the base fields from the 1.x version.
    if (in_array($entity_type
      ->id(), $migrations, TRUE)) {
      $fields['scheduled_publication'] = BaseFieldDefinition::create('datetime')
        ->setDisplayConfigurable('view', FALSE)
        ->setDisplayConfigurable('form', FALSE)
        ->setTranslatable(TRUE)
        ->setRevisionable(TRUE);
      $fields['scheduled_moderation_state'] = BaseFieldDefinition::create('string')
        ->setDisplayConfigurable('view', FALSE)
        ->setDisplayConfigurable('form', FALSE)
        ->setTranslatable(TRUE)
        ->setRevisionable(TRUE);
    }
  }
  return $fields;
}