[3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

In diesem Forum können Extension-Autoren ihre Extensions vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Benutzeravatar
chris1278
Mitglied
Beiträge: 4136
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

Beitrag von chris1278 »

Für youtu.be ist doch schon ein bbcode vorhanden.

Aber imc wenn du einen bastelst mit java dann werd ich den gern in die extension aufnehmen.
Benutzeravatar
IMC
Mitglied
Beiträge: 917
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

Beitrag von IMC »

chris1278 hat geschrieben: 14.01.2026 18:33 werde ich den gern in die extension aufnehmen.
Dafür würde ich ihn dann erstellen. Der sollte mit wenigen Zeilen zu erstellen sein. Es sei den es tun sich Untiefen und Klippen auf die ich jetzt noch nicht sehen kann.
Gruß, Thorsten

Meine Extensions
Benutzeravatar
chris1278
Mitglied
Beiträge: 4136
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

Beitrag von chris1278 »

Kein Problem. Bin dafür auch dankbar für deine Hilfe.
Benutzeravatar
IMC
Mitglied
Beiträge: 917
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

Beitrag von IMC »

Ich konnte mich nicht bremsen.

BBCode-Benutzung;

Code: Alles auswählen

[youtube]{URL}[/youtube]
HTML Ersetzung für deine Erweiterung:

Code: Alles auswählen

<!-- IF YOUTUBE_BBCODE_SWITCH --><div class="yt_video_layer"></div><!-- ELSE --><div class="yt_video_switch_false">{L_YOUTUBE_ADMIN}</div><!-- ELSE --><div class="yt_video_switch_false">{L_YOUTUBE_ADMIN}</div><!-- ENDIF -->
<script>
	var youtubeURL = '{URL}';
	var ytVideoAry = document.getElementsByClassName('yt_video_layer');
	var ytVideo	   = ytVideoAry[ytVideoAry.length-1];
	var strIdentifier, newYtURL;

	if (youtubeURL.includes('watch')) {
		const url = new URL(youtubeURL);
		const searchParams = new URLSearchParams(url.search);		
		strIdentifier = searchParams.get('v');
	}
	else if (youtubeURL.includes('shorts') || youtubeURL.includes('youtu.be')) {
		const url = new URL(youtubeURL);
		strIdentifier = url.pathname.substring(url.pathname.lastIndexOf('/'));
	}
	
	newYtURL  = 'https://www.youtube.com/embed/' + strIdentifier;
	ytVideo.innerHTML = '<iframe src="' + newYtURL + '" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>';
</script>
HTML Ersetzung mit der ich geteste habe:

Code: Alles auswählen

<div class="yt_video_layer"></div>
<script>
	var youtubeURL = '{URL}';
	var ytVideoAry = document.getElementsByClassName('yt_video_layer');
	var ytVideo	   = ytVideoAry[ytVideoAry.length-1];
	var strIdentifier, newYtURL;

	if (youtubeURL.includes('watch')) {
		const url = new URL(youtubeURL);
		const searchParams = new URLSearchParams(url.search);		
		strIdentifier = searchParams.get('v');
	}
	else if (youtubeURL.includes('shorts') || youtubeURL.includes('youtu.be')) {
		const url = new URL(youtubeURL);
		strIdentifier = url.pathname.substring(url.pathname.lastIndexOf('/'));
	}
	
	newYtURL  = 'https://www.youtube.com/embed/' + strIdentifier;
	ytVideo.innerHTML = '<iframe src="' + newYtURL + '" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>';
</script>
Mit diesen drei URL's funktioniert der BBCode. Wenn es noch weitere geben sollte bräuchte ich eine Info.

Code: Alles auswählen

[youtube]https://youtu.be/j90x1Be0bTY[/youtube]
[youtube]https://www.youtube.com/watch?v=k4121ownglU[/youtube]
[youtube]https://www.youtube.com/shorts/ebSFjN1POow[/youtube]
Vielleicht müsste man die Variablen noch besser isolieren. Für heute sollte das aber reichen.

Edit:
@Paul
Startzeiten funktionieren mit dem eingebetten Video nicht. Die werden ignoriert.

@Chris
Wahrscheinlich müss deine if/else Strucktur anders gesetzt werden. Teste mal ob es Fehler gibt wenn die Videos nicht erlaubt sind. Dann müsste dein erstes else hinter das letzte </script>
Gruß, Thorsten

Meine Extensions
Benutzeravatar
chris1278
Mitglied
Beiträge: 4136
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

Beitrag von chris1278 »

Ich teste das aus und melde mich.

Aber erstmal dafür schon mal danke.
Benutzeravatar
chris1278
Mitglied
Beiträge: 4136
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

Beitrag von chris1278 »

Okay, also @imc, dass funktioniert nur, hast du in einer Zeile was doppelt, was zu viel war:

Für das HTML für meine Erweiterung hattest du das so

Code: Alles auswählen

<!-- IF YOUTUBE_BBCODE_SWITCH --><div class="yt_video_layer"></div><!-- ELSE --><div class="yt_video_switch_false">{L_YOUTUBE_ADMIN}</div><!-- ELSE --><div class="yt_video_switch_false">{L_YOUTUBE_ADMIN}</div><!-- ENDIF -->
Korrekt geschrieben so:

Code: Alles auswählen

<!-- IF YOUTUBE_BBCODE_SWITCH -->
	<div class="yt_video_layer"></div>
<!-- ELSE -->
	<div class="yt_video_switch_false">{L_YOUTUBE_ADMIN}</div>
<!-- ELSE -->
	<div class="yt_video_switch_false">{L_YOUTUBE_ADMIN}</div>
<!-- ENDIF -->
Da war einmal Else zu viel, aber kein Problem.

Ich habe dann das Ganze noch angepasst an den Cookie-Manager, weil man in dem Frame aus src data-src machen muss und dann den data-name einfügen muss.

BBCode-Benutzung:

Code: Alles auswählen

[youtube]{URL}[/youtube]
HTML Ersetzung:

Code: Alles auswählen

<!-- IF YOUTUBE_BBCODE_SWITCH -->
	<div class="yt_video_layer"></div>
<!-- ELSE -->
	<div class="yt_video_switch_false">{L_YOUTUBE_ADMIN}</div>
<!-- ENDIF -->
<script>
	var youtubeURL = '{URL}';
	var ytVideoAry = document.getElementsByClassName('yt_video_layer');
	var ytVideo	   = ytVideoAry[ytVideoAry.length-1];
	var strIdentifier, newYtURL;

	if (youtubeURL.includes('watch')) {
		const url = new URL(youtubeURL);
		const searchParams = new URLSearchParams(url.search);
		strIdentifier = searchParams.get('v');
	}
	else if (youtubeURL.includes('shorts') || youtubeURL.includes('youtu.be')) {
		const url = new URL(youtubeURL);
		strIdentifier = url.pathname.substring(url.pathname.lastIndexOf('/'));
	}

	newYtURL  = 'https://www.youtube.com/embed/' + strIdentifier;
	ytVideo.innerHTML = '<iframe data-name="youtube" data-src="' + newYtURL + '" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>';
</script>
Tipp-Anzeige:

Code: Alles auswählen

YTBE_VIDEOLINK_HELP
Jetzt gibt es zwei Möglichkeiten.

Man kann hingehen und bei beiden YouTube-BBCodes die HTML‑Ersetzung tauschen, was am einfachsten ist. Dann spielt es keine Rolle, welchen bbcode der Benutzer benutzt.

Eventuell muss man die Foren/Beiträge im ACP resynchronisieren, aber das wäre die unkomplizierteste Lösung.

Alternativ könnte man den youtu.be bbcode löschen, müsste dann aber in der Datenbank die Beiträge mit nachfolgendem Befehl aktualisieren:

Code: Alles auswählen

UPDATE phpbb_posts
SET post_text = REPLACE(post_text, 'youtube_be', 'youtube')
WHERE post_text LIKE '%youtube_be%'

Natürlich, bevor ihr das macht, solltet ihr in jedem Fall ein Backup der Datenbank machen.

Und vielen Dank @imc
Benutzeravatar
SeewolfPK
Mitglied
Beiträge: 458
Registriert: 11.05.2010 21:45
Kontaktdaten:

Re: [3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

Beitrag von SeewolfPK »

Ich habe mir mal die Mühe gemacht aus dem Forum alle bisher vorgekommenen Youtube-Video Link Formen aufzulisten.

Code: Alles auswählen

Unterschiedliche Links für Youtube Videos in Foren

https://www.youtube.com/watch?v=9vAgwfUuaLQ
https://youtube.com/@womo-adventure
https://www.youtube.com/watch?v=b0kMkMSFE0I&list=LL&index=5&t=32s
https://www.youtube.com/watch?v=MZvlCbMGtbg&list=LL
https://www.youtube.com/watch?v=5rSw9Z0ZegU&amp;t=1344s\
https://www.youtube.com/watch?v=dc455XOLGxk&amp;list=RDdc455XOLGxk&amp;start_radio=1&amp;t=12\"><
https://www.youtube.com/watch?v=PinBVYKQGeM&list=PLcspTFH0j1yEMb09XUxn8XiIaSMsiXvyP
https://www.youtube.com/results?search_query=omnia+backofen
https://m.youtube.com/watch?v=CskuAh6Y-nU\
https://m.youtube.com/watch?feature=youtu.be&amp;v=Ws9JxRTxhRo\
https://www.youtube.com/c/Womoversum\
https://youtu.be/-dQ75USmQZo?si=NkM0n6UcO_TtTH4n
https://youtube.com/shorts/jJB-rJL2BQA?si=Pocug9KVSm1lD24F


manchmal kommen User auch auf die Idee nur: _9TtYfJmKrs zu posten



Habe jetzt noch nicht verglichen, welche Link-Formen mit den inzwischen neu geposteten BBCodes schon vorhanden sind.

--
Den am Ende des Beitrages vom 15.01.2026 07:33 geposteten BBCode habe ich mal eingebaut.
Vorhandene Postings bringen den Fehler
Es ist ein Fehler aufgetreten. Bitte versuche es später noch einmal. (Wiedergabe-ID: SQtZbUmZaVe20efX)
Weitere Informationen
Gepostet wurde mit
[youtube]https://www.youtube.com/watch?v=bZ_XcL20nxk[/youtube]

Den Beitrag 1x im Editor geöffnet und unverändert gespeichert und es funktioniert.
Es erscheint mir aber fast unmöglich alle Beiträge so zu bearbeiten.
Gibt es eine andere Möglichkeit, das neue BBCodes auf alle vorhandenen Postings angewendet werden?
Zuletzt geändert von SeewolfPK am 15.01.2026 13:20, insgesamt 2-mal geändert.
Gruß Paul (Freunde nennen mich auch Paulchen Panther) https://www.reisemobiltreff.de https://www.seewolfpk.de
Joe Kolade
Mitglied
Beiträge: 274
Registriert: 27.02.2023 19:59

Re: [3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

Beitrag von Joe Kolade »

SeewolfPK hat geschrieben: 15.01.2026 12:07 manchmal kommen User auch auf die Idee nur: _9TtYfJmKrs zu posten
Diese Video-ID ist der eindeutige, (in der Regel) 11-stellige Code bzw. eine Zeichenfolge aus Buchstaben und Zahlen, teilweise auch mit Binde- oder Unterstrichen.
Die ID ist der Teil der URL nach watch?v=, youtu.be/ oder shorts/, also am Ende der Video-URL.
Entsprechend wäre es gut, auch die Video-ID (also ohne URL) zu berücksichtigen.

Gruß Joe
Benutzeravatar
SeewolfPK
Mitglied
Beiträge: 458
Registriert: 11.05.2010 21:45
Kontaktdaten:

Re: [3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

Beitrag von SeewolfPK »

Wenn Beiträge z.B. nur

Code: Alles auswählen

https://www.youtube.com/watch?v=mBtpsrSP4RU
enthalten, wird nur der Link angezeigt.
Gibt es eine Möglichkeit, das automatisch [youtube] und [/youtube] angewendet wird?

Auch hier ist Beitragseditieren mühevoll.

-----

Etwas kurios:
Im Gesamten Beitrag wird trotz unterschiedlicher Links immer das erste eingebettete Video angezeigt.

Auch hier ist editieren und unverändert speichern angesagt.

+
Alles mit dem Test BBCode aus Beitrag 07.33 Uhr
Gruß Paul (Freunde nennen mich auch Paulchen Panther) https://www.reisemobiltreff.de https://www.seewolfpk.de
Benutzeravatar
chris1278
Mitglied
Beiträge: 4136
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] [CDB][3.3] Opt-In Cookie Manager by klaro Script

Beitrag von chris1278 »

Man kann im acp auch das forum resynchronisieren. Poste später anleitung.
Antworten

Zurück zu „Extensions in Entwicklung“