You are here

function opigno_calendar_event_entity_extra_field_info in Opigno calendar event 8

Same name and namespace in other branches
  1. 3.x opigno_calendar_event.module \opigno_calendar_event_entity_extra_field_info()

Implements hook_entity_extra_field_info().

File

./opigno_calendar_event.module, line 91
Main file for the "Calendar event" module.

Code

function opigno_calendar_event_entity_extra_field_info() {
  $extra = [];
  $calendar_event_manager = CalendarEventManager::get();
  $bundle_info_service = \Drupal::service('entity_type.bundle.info');
  foreach (\Drupal::entityTypeManager()
    ->getDefinitions() as $entity_type_id => $entity_type) {
    if (!$entity_type
      ->entityClassImplements(ContentEntityInterface::class)) {
      continue;
    }
    foreach ($bundle_info_service
      ->getBundleInfo($entity_type_id) as $bundle => $bundle_info) {
      $field_definition = $calendar_event_manager
        ->getReferencingFieldDefinition($entity_type_id, $bundle);
      if ($field_definition) {
        $extra[$entity_type_id][$bundle]['display'][CalendarEventEmbeddedDisplay::ELEMENT_NAME] = [
          'label' => t('Calendar event'),
          'description' => t('Embedded calendar event display'),
          'weight' => 0,
        ];
        $extra[$entity_type_id][$bundle]['form'][CalendarEventEmbeddedWidget::ELEMENT_NAME] = [
          'label' => t('Calendar event widget'),
          'description' => t('Embedded calendar event form'),
          'weight' => 0,
        ];
      }
    }
  }
  return $extra;
}