Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ContentTranslationHooks.php

function ContentTranslationHooks::entityBaseFieldInfo

Implements hook_entity_base_field_info().

File

core/modules/content_translation/src/Hook/ContentTranslationHooks.php, line 240

Class

ContentTranslationHooks
Hook implementations for content_translation.

Namespace

Drupal\content_translation\Hook

Code

public function entityBaseFieldInfo(EntityTypeInterface $entity_type) {
    
    /** @var \Drupal\content_translation\ContentTranslationManagerInterface $manager */
    $manager = \Drupal::service('content_translation.manager');
    $entity_type_id = $entity_type->id();
    if ($manager->isSupported($entity_type_id)) {
        $definitions = $manager->getTranslationHandler($entity_type_id)
            ->getFieldDefinitions();
        $installed_storage_definitions = \Drupal::service('entity.last_installed_schema.repository')->getLastInstalledFieldStorageDefinitions($entity_type_id);
        // We return metadata storage fields whenever content translation is enabled
        // or it was enabled before, so that we keep translation metadata around
        // when translation is disabled.
        // @todo Re-evaluate this approach and consider removing field storage
        //   definitions and the related field data if the entity type has no bundle
        //   enabled for translation.
        // @see https://www.drupal.org/node/2907777
        if ($manager->isEnabled($entity_type_id) || array_intersect_key($definitions, $installed_storage_definitions)) {
            return $definitions;
        }
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal