function ContentTranslationHooks::entityExtraFieldInfo

Same name and namespace in other branches
  1. 11.x core/modules/content_translation/src/Hook/ContentTranslationHooks.php \Drupal\content_translation\Hook\ContentTranslationHooks::entityExtraFieldInfo()

Implements hook_entity_extra_field_info().

Attributes

#[Hook('entity_extra_field_info')]

File

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

Class

ContentTranslationHooks
Hook implementations for content_translation.

Namespace

Drupal\content_translation\Hook

Code

public function entityExtraFieldInfo() : array {
  // Inline the logic from ContentTranslationManager::isEnabled() to avoid
  // having to load configuration entities one by one.
  $extra = [];
  $content_translation_manager = \Drupal::service('content_translation.manager');
  $entity_type_manager = \Drupal::entityTypeManager();
  $ids = [];
  foreach (\Drupal::entityTypeManager()->getDefinitions() as $entity_type => $info) {
    if ($content_translation_manager->isSupported($entity_type)) {
      foreach ($info as $bundle => $bundle_info) {
        $ids[] = $entity_type . '.' . $bundle;
      }
    }
  }
  $settings = $entity_type_manager->getStorage('language_content_settings')
    ->loadMultiple($ids);
  foreach ($settings as $config) {
    if ($config->getThirdPartySetting('content_translation', 'enabled', FALSE)) {
      $extra[$config->get('target_entity_type_id')][$config->get('target_bundle')]['form']['translation'] = [
        'label' => $this->t('Translation'),
        'description' => $this->t('Translation settings'),
        'weight' => 10,
      ];
    }
  }
  return $extra;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.