From 12e94d3b8763872333a8b7d82735c250b541f8a3 Mon Sep 17 00:00:00 2001
From: "Javi H. Gil"
Date: Thu, 16 Jul 2026 10:09:34 +0200
Subject: [PATCH] Add version public url filter
---
src/Render/MediaRenderer.php | 5 +++++
src/Twig/Extension/RenderMediaExtension.php | 2 ++
templates/admin/media/_macros.html.twig | 7 ++++---
templates/forms/media_type_theme.html.twig | 9 +++++----
4 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/src/Render/MediaRenderer.php b/src/Render/MediaRenderer.php
index 0e0071d..8a98cc7 100644
--- a/src/Render/MediaRenderer.php
+++ b/src/Render/MediaRenderer.php
@@ -41,6 +41,11 @@ public function imageUrl(MediaInterface|string $media, $version, array $attr = [
}
}
+ public function mediaVersionUrl(?MediaVersionInterface $version): ?string
+ {
+ return $this->getFinalUrl($version);
+ }
+
/**
* @throws Exception
*/
diff --git a/src/Twig/Extension/RenderMediaExtension.php b/src/Twig/Extension/RenderMediaExtension.php
index d6059af..71c77ae 100644
--- a/src/Twig/Extension/RenderMediaExtension.php
+++ b/src/Twig/Extension/RenderMediaExtension.php
@@ -31,6 +31,7 @@ public function getFilters(): array
new TwigFilter('sfs_media_render_picture', [$this->mediaRenderer, 'renderPicture'], ['is_safe' => ['html']]),
new TwigFilter('sfs_media_render', [$this->mediaRenderer, 'renderMediaOrArray'], ['is_safe' => ['html']]),
new TwigFilter('sfs_media_image_url', [$this->mediaRenderer, 'imageUrl']),
+ new TwigFilter('sfs_media_version_url', [$this->mediaRenderer, 'mediaVersionUrl']),
new TwigFilter('sfs_media_type_config', [$this, 'getMediaTypeConfig']),
];
}
@@ -44,6 +45,7 @@ public function getFunctions(): array
new TwigFunction('sfs_media_render_picture', [$this->mediaRenderer, 'renderPicture'], ['is_safe' => ['html']]),
new TwigFunction('sfs_media_render', [$this->mediaRenderer, 'renderMediaOrArray'], ['is_safe' => ['html']]),
new TwigFunction('sfs_media_image_url', [$this->mediaRenderer, 'imageUrl']),
+ new TwigFunction('sfs_media_version_url', [$this->mediaRenderer, 'mediaVersionUrl']),
new TwigFunction('sfs_media_type_config', [$this, 'getMediaTypeConfig']),
];
}
diff --git a/templates/admin/media/_macros.html.twig b/templates/admin/media/_macros.html.twig
index dfb9b38..cabe989 100644
--- a/templates/admin/media/_macros.html.twig
+++ b/templates/admin/media/_macros.html.twig
@@ -23,6 +23,7 @@
{%- endmacro -%}
{%- macro renderVersion(media, version, media_types) -%}
+ {% set versionUrl = version|sfs_media_version_url %}
{% if media_types[media.type].name|default(null) %}
{{ media_types[media.type].name }}
@@ -46,10 +47,10 @@
{% endfor %}">Automatically generated at: {{ version.generatedAt|date_span('H:i:s d-m-Y') }}
{% endif %}
- {#
+ {#
#}
-
+
@@ -111,7 +112,7 @@
Directly using the URL
- {{ version.publicUrl }}
+ {{ versionUrl }}
diff --git a/templates/forms/media_type_theme.html.twig b/templates/forms/media_type_theme.html.twig
index 78d3c56..504139e 100644
--- a/templates/forms/media_type_theme.html.twig
+++ b/templates/forms/media_type_theme.html.twig
@@ -1,15 +1,16 @@
{% trans_default_domain 'sfs_media_admin' %}
{% block media_version_upload_row %}
+ {% set mediaVersionPublicUrl = form.vars.value|sfs_media_version_url|default('') %}
{{ form_label(form) }}
-
-
 }})
-