content_translation_language_fallback_candidates_entity_view_alter(&$candidates, $context)
Implements hook_language_fallback_candidates_OPERATION_alter().
Performs language fallback for inaccessible translations.
File
- core/modules/content_translation/content_translation.module, line 328
- Allows entities to be translated into different languages.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function content_translation_language_fallback_candidates_entity_view_alter(& $candidates , $context ) { /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */ $entity = $context [ 'data' ]; $entity_type_id = $entity ->getEntityTypeId(); /** @var \Drupal\content_translation\ContentTranslationManagerInterface $manager */ $manager = \Drupal::service( 'content_translation.manager' ); if ( $manager ->isEnabled( $entity_type_id , $entity ->bundle())) { $entity_type = $entity ->getEntityType(); $permission = $entity_type ->getPermissionGranularity() == 'bundle' ? $permission = "translate {$entity->bundle()} $entity_type_id" : "translate $entity_type_id" ; $current_user = \Drupal::currentuser(); if (! $current_user ->hasPermission( 'translate any entity' ) && ! $current_user ->hasPermission( $permission )) { foreach ( $entity ->getTranslationLanguages() as $langcode => $language ) { $metadata = $manager ->getTranslationMetadata( $entity ->getTranslation( $langcode )); if (! $metadata ->isPublished()) { unset( $candidates [ $langcode ]); } } } } } |
Please login to continue.