Skip to content
Snippets Groups Projects

Make sure we always pass a URL object to the link render array.

Closed Christopher Lewis requested to merge issue/svg_image-3486745:3486745-fatal-error-when into 3.x
1 file
+ 7
2
Compare changes
  • Side-by-side
  • Inline
@@ -67,6 +67,7 @@ class SvgResponsiveImageFormatter extends ResponsiveImageFormatter {
/** @var \Drupal\file\Entity\File[] $files */
$files = $this->getEntitiesToView($items, $langcode);
$imageLinkSetting = $this->getSetting('image_link');
$responsiveImageStyle = $this->responsiveImageStyleStorage->load($this->getSetting('responsive_image_style'));
$imageStylesToLoad = [];
if ($responsiveImageStyle) {
@@ -108,10 +109,14 @@ class SvgResponsiveImageFormatter extends ResponsiveImageFormatter {
$svgRaw = str_replace('<?xml version="1.0" encoding="UTF-8"?>', '', $svgRaw);
$svgRaw = trim($svgRaw);
if ($elements[$delta]['#url']) {
if ($imageLinkSetting) {
$url = $elements[$delta]['#url'];
if ($imageLinkSetting === 'file') {
$url = $this->fileUrlGenerator->generate($file->getFileUri());
}
$elements[$delta] = [
'#type' => 'link',
'#url' => $elements[$delta]['#url'],
'#url' => $url,
'#title' => Markup::create($svgRaw),
'#cache' => [
'tags' => $elements[$delta]['#cache']['tags'],
Loading