Skip to content

Commit aa9d84c

Browse files
committed
youtube iframe fix
1 parent ad32e3c commit aa9d84c

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

lib/InlineConsent.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,12 @@ private static function extractVimeoId(string $input): ?string
129129
*/
130130
private static function renderYouTubePlaceholder(string $serviceKey, string $videoId, array $options, string $consentId, array $service): string
131131
{
132+
// Wenn bereits ein kompletter iframe übergeben wurde (z.B. von scanAndReplaceConsentElements),
133+
// diesen direkt als generischen Placeholder verwenden
134+
if (str_starts_with(trim($videoId), '<iframe')) {
135+
return self::renderGenericPlaceholder($serviceKey, $videoId, $options, $consentId, $service);
136+
}
137+
132138
// Video ID extrahieren falls komplette URL übergeben wurde
133139
$extractedId = self::extractYouTubeId($videoId);
134140
if (null !== $extractedId) {
@@ -180,6 +186,12 @@ private static function renderYouTubePlaceholder(string $serviceKey, string $vid
180186
*/
181187
private static function renderVimeoPlaceholder(string $serviceKey, string $videoId, array $options, string $consentId, array $service): string
182188
{
189+
// Wenn bereits ein kompletter iframe übergeben wurde (z.B. von scanAndReplaceConsentElements),
190+
// diesen direkt als generischen Placeholder verwenden
191+
if (str_starts_with(trim($videoId), '<iframe')) {
192+
return self::renderGenericPlaceholder($serviceKey, $videoId, $options, $consentId, $service);
193+
}
194+
183195
// Video ID extrahieren
184196
$extractedId = self::extractVimeoId($videoId);
185197
if (null !== $extractedId) {
@@ -234,6 +246,12 @@ private static function renderVimeoPlaceholder(string $serviceKey, string $video
234246
*/
235247
private static function renderGoogleMapsPlaceholder(string $serviceKey, string $embedUrl, array $options, string $consentId, array $service): string
236248
{
249+
// Wenn bereits ein kompletter iframe übergeben wurde (z.B. von scanAndReplaceConsentElements),
250+
// diesen direkt als generischen Placeholder verwenden
251+
if (str_starts_with(trim($embedUrl), '<iframe')) {
252+
return self::renderGenericPlaceholder($serviceKey, $embedUrl, $options, $consentId, $service);
253+
}
254+
237255
$iframe = '<iframe src="' . rex_escape($embedUrl) . '"
238256
width="' . ($options['width'] ?? '100%') . '" height="' . ($options['height'] ?? '450') . '"
239257
style="border:0;" allowfullscreen="" loading="lazy"></iframe>';

0 commit comments

Comments
 (0)