From 0f65cc9fdaf1a28ca223b1914888217c1273769b Mon Sep 17 00:00:00 2001 From: Jose Perez Date: Mon, 24 Jul 2023 15:26:34 -0300 Subject: [PATCH] Rebasing code --- src/UrlExtractor.php | 18 +++++++++++------- twig_tweak.services.yml | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/UrlExtractor.php b/src/UrlExtractor.php index ef5feba..a1bc972 100644 --- a/src/UrlExtractor.php +++ b/src/UrlExtractor.php @@ -8,6 +8,7 @@ use Drupal\Core\Field\EntityReferenceFieldItemListInterface; use Drupal\Core\Field\FieldItemList; use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem; use Drupal\Core\File\FileUrlGeneratorInterface; +use Drupal\Core\Language\LanguageManagerInterface; use Drupal\file\FileInterface; use Drupal\link\LinkItemInterface; use Drupal\media\MediaInterface; @@ -32,12 +33,20 @@ class UrlExtractor { */ protected $fileUrlGenerator; + /** + * The language manager. + * + * @var \Drupal\Core\Language\LanguageManagerInterface + */ + protected $languageManager; + /** * Constructs a UrlExtractor object. */ - public function __construct(EntityTypeManagerInterface $entity_type_manager, FileUrlGeneratorInterface $file_url_generator) { + public function __construct(EntityTypeManagerInterface $entity_type_manager, FileUrlGeneratorInterface $file_url_generator, LanguageManagerInterface $languageManager) { $this->entityTypeManager = $entity_type_manager; $this->fileUrlGenerator = $file_url_generator; + $this->languageManager = $languageManager; } /** @@ -72,15 +81,10 @@ class UrlExtractor { elseif ($input instanceof EntityReferenceItem) { $entity = $input->entity; } - - // Get the current Language Code. - $languageManager = \Drupal::languageManager(); - $currentLanguage = $languageManager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT); - $languageCode = $currentLanguage->getId(); - // Drupal does not clean up references to deleted entities. So that the // entity property might be empty while the field item might not. // @see https://www.drupal.org/project/drupal/issues/2723323 + $langcode = $this->languageManager->getCurrentLanguage()->getId(); return $entity instanceof ContentEntityInterface ? $this->getUrlFromEntity($entity->hasTranslation($langcode) ? $entity->getTranslation($langcode) : $entity , $relative) : NULL; } diff --git a/twig_tweak.services.yml b/twig_tweak.services.yml index f5c6ef3..56d7b19 100644 --- a/twig_tweak.services.yml +++ b/twig_tweak.services.yml @@ -34,7 +34,7 @@ services: twig_tweak.url_extractor: class: Drupal\twig_tweak\UrlExtractor - arguments: ['@entity_type.manager', '@file_url_generator'] + arguments: ['@entity_type.manager', '@file_url_generator', '@language_converter'] twig_tweak.uri_extractor: class: Drupal\twig_tweak\UriExtractor