Browse Source

Merge branch '3241175-fileurl-filter-does' into '3.x'

Issue#3241175: Resolve translation issue.

See merge request project/twig_tweak!35
merge-requests/35/merge
Sakthi Shanmuga Sundaram M 2 years ago
parent
commit
ccd669afb7
  1. 14
      src/UrlExtractor.php
  2. 2
      twig_tweak.services.yml

14
src/UrlExtractor.php

@ -8,6 +8,7 @@ use Drupal\Core\Field\EntityReferenceFieldItemListInterface;
use Drupal\Core\Field\FieldItemList; use Drupal\Core\Field\FieldItemList;
use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem; use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem;
use Drupal\Core\File\FileUrlGeneratorInterface; use Drupal\Core\File\FileUrlGeneratorInterface;
use Drupal\Core\Language\LanguageManagerInterface;
use Drupal\file\FileInterface; use Drupal\file\FileInterface;
use Drupal\link\LinkItemInterface; use Drupal\link\LinkItemInterface;
use Drupal\media\MediaInterface; use Drupal\media\MediaInterface;
@ -32,12 +33,20 @@ class UrlExtractor {
*/ */
protected $fileUrlGenerator; protected $fileUrlGenerator;
/**
* The language manager.
*
* @var \Drupal\Core\Language\LanguageManagerInterface
*/
protected $languageManager;
/** /**
* Constructs a UrlExtractor object. * 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->entityTypeManager = $entity_type_manager;
$this->fileUrlGenerator = $file_url_generator; $this->fileUrlGenerator = $file_url_generator;
$this->languageManager = $languageManager;
} }
/** /**
@ -75,8 +84,9 @@ class UrlExtractor {
// Drupal does not clean up references to deleted entities. So that the // Drupal does not clean up references to deleted entities. So that the
// entity property might be empty while the field item might not. // entity property might be empty while the field item might not.
// @see https://www.drupal.org/project/drupal/issues/2723323 // @see https://www.drupal.org/project/drupal/issues/2723323
$langcode = $this->languageManager->getCurrentLanguage()->getId();
return $entity instanceof ContentEntityInterface ? return $entity instanceof ContentEntityInterface ?
$this->getUrlFromEntity($entity, $relative) : NULL; $this->getUrlFromEntity($entity->hasTranslation($langcode) ? $entity->getTranslation($langcode) : $entity , $relative) : NULL;
} }
/** /**

2
twig_tweak.services.yml

@ -35,7 +35,7 @@ services:
twig_tweak.url_extractor: twig_tweak.url_extractor:
class: Drupal\twig_tweak\UrlExtractor class: Drupal\twig_tweak\UrlExtractor
arguments: ['@entity_type.manager', '@file_url_generator'] arguments: ['@entity_type.manager', '@file_url_generator', '@language_manager']
twig_tweak.uri_extractor: twig_tweak.uri_extractor:
class: Drupal\twig_tweak\UriExtractor class: Drupal\twig_tweak\UriExtractor

Loading…
Cancel
Save