Opt-In Cookie Extension

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: DSGVO - phpBB Extensions

Beitrag von chris1278 »

Also Hackepeter würdest du mir zwecks der Einstellung der Scripte auf phpbb helfen. Da ich mit Skriptsprache an sich etwas überfordert bin. Das in der Overall_footer kann ich dann auch über Extension einfügen das ist kein Problem.

Dann wäre es, wenn das funktioniert Sinnvoll hier aufzulisten, was für Funktionen im Forum benötigt, werden damit wir das Script dafür schon vorfertigen.

Ich denke das wir einen Punkt machen wie du mit den Essenziellen und den anderen unter dem Punkt zusätzliche Cookies wo wir alles auflisten was evtl. drin sein könnte, um ein breites Spektrum an Cookies abzudecken.

Was haltet ihr von der Idee?

Meine Erste Idee war es noch die Optionen in die Scripts einzufügen und im ACP mit einem Ein und Ausschalter zu versehen für einzelne Funktionen. Dies scheint aber leider nicht möglich zu sein da man anscheinend keine IF Variablen von phpbb in eine JS einbinden kann. Daher wäre nur die Möglichkeit das man die Optionen in der Config.js schon vordefiniert mit Eintragungen in den entsprechenden Dateien.

Der Vorteil, wenn man das über Extension macht ist das man nicht für jeden Style manuell die Scripte einfügen muss, sondern diese allgemein von vorne rein schon in die overall_header und overall_footer geladen werden via Event System von phpbb.

@edit an die Moderatoren:

Eventuell könnte man dieses Thema bitte teilen ab hier:

viewtopic.php?p=1407481#p1407481 und in die Extension Bastelstube mit anderem Thema Beispiel opt-In Cookie extension oder so verschieben da sich die Thematik hier eigentlich vom eigentlichen Thema doch etwas entfernt hat.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: DSGVO - phpBB Extensions

Beitrag von chris1278 »

@hackepeter13

Habe das jetzt in die Overall_footer eingetragen aber das funktioniert immer noch nicht. Die Änderung des bbcodes so wie du ihn gepostet hast kann ich nicht vornehmen da man diese div Container nicht in bbcodes verwenden kann. Ich bin ja schon am Basteln für phpbb 3.3.2.

Also mit deiner Variante geht es nicht. Aber ich hätte da eine Idee. Ist es möglich mittels script einen css Befehl auszusenden.

Dann würde ich vorschlagen das script hier:

Code: Alles auswählen

<script type="opt-in" data-type="application/javascript" data-name="youtube">
	$( document ).ready( function() {
      if( $( '.videoCConsentContainer' ).length > 0 ) {
        $( '.videoCConsentContainer' ).each( function() {
          _wrapper = $( this );
          _wrapper.children(".ccMessageContainer").hide();
          _wrapper.children(".videoLayer").show().html( '<iframe src="https://www.youtube-nocookie.com/embed/' + _wrapper.attr( 'data-source' ) + '?rel=0&controls=0&showinfo=0&autoplay=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>');
         });
      }
    });
</script>
<script>
	function showAllYoutubeContainer() {
	  if( $( '.videoCConsentContainer' ).length > 0 ) {
        $( '.videoCConsentContainer' ).each( function() {
          _wrapper = $( this );
          _wrapper.children(".ccMessageContainer").hide();
          _wrapper.children(".videoLayer").show().html( '<iframe src="https://www.youtube-nocookie.com/embed/' + _wrapper.attr( 'data-source' ) + '?rel=0&controls=0&showinfo=0&autoplay=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>');
         });
      }
	}
	function hideAllYoutubeContainer() {
	  if( $( '.videoCConsentContainer' ).length > 0 ) {
        $( '.videoCConsentContainer' ).each( function() {
          _wrapper = $( this );
          _wrapper.children(".ccMessageContainer").show();
          _wrapper.children(".videoLayer").hide().html("");
         });
      }	  
	}
</script>

<script type="opt-in" data-type="application/javascript" data-name="youtube">
	$( document ).ready( function() {
      if( $( '.bbvideo' ).length > 0 ) {
        $( '.bbvideo' ).each( function() {
          _wrapper = $( this );
          _wrapper.children(".bbvideotitle").hide();
          _wrapper.children(".bbvideocontent").show().html( '<iframe src="https://www.youtube-nocookie.com/embed/' + _wrapper.attr( 'data-source' ) + '?rel=0&controls=0&showinfo=0&autoplay=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>');
         });
      }
    });
</script>
zu modifizieren. Ich dachte da an folgendes. Das für die ID player #player der css Code display: none; verwendet wird. Weil die Videos laufen egal, ob du diese mit dem bbcode für Videos der Eingabebox machst oder ob du den Link von Youtube direkt benutzt, beide über die id #player.

Wenn man dieser ID den css Befehl display: none; zuweisen würde, würden zwar die Videoboxen plaziert aber die Bleiben Schwarz und liesen sich nicht abspielen. Ich denke das so das dieser css Befehl aktiv bzw. Inaktiv ist je nachdem welcher Option gewählt wird.

Automatisch dem Beitrag hinzugefügt nach 22 Minuten 17 Sekunden. Bitte Regel für „Topic-Bumping“ beachten. Danke.

Re: Opt-In Cookie Extension
Danke an die Moderatoren bezüglich abtrennung und umbenennung des Themas.
hackepeter13
Valued Contributor
Beiträge: 3545
Registriert: 21.04.2004 12:22
Wohnort: Berlin
Kontaktdaten:

Re: DSGVO - phpBB Extensions

Beitrag von hackepeter13 »

chris1278 hat geschrieben: 28.11.2020 17:49Die Änderung des bbcodes so wie du ihn gepostet hast kann ich nicht vornehmen da man diese div Container nicht in bbcodes verwenden kann. Ich bin ja schon am Basteln für phpbb 3.3.2.
Das Verstehe ich jetzt nicht.

Ich habe mir jetzt mal testweise das aktuelle phpBB 3.3.2 installiert und das ganze wie folgt eingebaut:

In der overall_footer.html vor </body> eingefügt:

Code: Alles auswählen

<script type="opt-in" data-type="application/javascript" data-name="youtube">
	function showAllYoutubeContainer() {
	  if( $( '.videoCConsentContainer' ).length > 0 ) {
        $( '.videoCConsentContainer' ).each( function() {
          _wrapper = $( this );
          _wrapper.children(".ccMessageContainer").hide();
          _wrapper.children(".videoLayer").show().html( '<iframe src="https://www.youtube-nocookie.com/embed/' + _wrapper.attr( 'data-source' ) + '?rel=0&controls=0&showinfo=0&autoplay=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>');
         });
      }
	}
	function hideAllYoutubeContainer() {
	  if( $( '.videoCConsentContainer' ).length > 0 ) {
        $( '.videoCConsentContainer' ).each( function() {
          _wrapper = $( this );
          _wrapper.children(".ccMessageContainer").show();
          _wrapper.children(".videoLayer").hide().html("");
         });
      }	  
	}
</script>
(Script ist etwas angepasst und kürzer als zuletzt beschrieben!)

Im ACP neuen BBCode hinzugefügt:

Code: Alles auswählen

[youtube]https://{IDENTIFIER2}.youtube.com/watch?v={IDENTIFIER}[/youtube]
HTML-Ersetzung:

Code: Alles auswählen

<div class="videoCConsentContainer" data-source="{IDENTIFIER}">
 <div class="ccMessageContainer embed-responsive embed-responsive-16by9">
  <div class="msgMedienContent">
  <p>Video: https://{IDENTIFIER2}.youtube.com/watch?v={IDENTIFIER}<br>Sie müssen die Cookie-Consent-Einstellung für Medien zulassen, damit Youtube-Videos in Beiträgen angezeigt und abgespielt werden können!</p>
  <a class="btn btn-primary" onclick="return klaro.show();">Cookie-Consent-Einstellungen anpassen</a>
  </div>
 </div>
 <div class="videoLayer embed-responsive embed-responsive-16by9 vimvid"></div>
</div>
Wichtig: class=videoCConsentContainer, ccMessageContainer und videoLayer muss in HTML-Code, sowie im Javascript-Code (in der overall_footer.html) identisch sein.

Mit class=msgMedienContent kann man dann bspw. auch per CSS-Datei das Hinweisfeld (Cookie sind deaktiviert) gestalten.
z.B. so:

Code: Alles auswählen

.msgMedienContent {
	border: 1px #000 solid;
	background-color: #fff;
	width: 400px;
	padding: 5px;
	font-size: 11px;
}
Hier mein 3.3.2 Testforum mit Youtube-Video im Beitrag.
Wenn Youtube im Cookie-Consent deaktiviert ist (im Footer ist der Einstell-Button), dann wird im Beitrag ein Feld mit dem Hinweis angezeigt.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Opt-In Cookie Extension

Beitrag von chris1278 »

Ok also das würde so funktionieren mit dem Neuen bbcode.

Aber wie kann man das auf den bbcode in der Eingabe Box von vse anwenden! Dort steht Folgendes:

BBcode Benutzung:

Code: Alles auswählen

[BBvideo={NUMBER1},{NUMBER2}]{URL}[/BBvideo]
html-Ersetzung:

Code: Alles auswählen

<a href="{URL}" class="bbvideo" data-bbvideo="{NUMBER1},{NUMBER2}" target="_blank">{URL}</a>
Ich würde den gern als BBvideo mittels Cookie ausblenden wie bei YouTube. Hast du da auch eine Idee. Weil der ja außer YouTube noch andere Videos abspielen kann. (zumindest wenn man der Liste, die man auswählen kann dort trauen kann das alles so wie bei YouTube Videos funktioniert)

Auf jedenfall kann man den Satz hier:

Sie müssen die Cookie-Content-Einstellung für Medien zulassen, damit Youtube-Videos in Beiträgen angezeigt und abgespielt werden können! auch via sprachvariabel integrieren weil ich das ja auf englisch und auf deutsch mache.

Ich hab das eben mal getestet. Speziell youtube funktioniert das auch so. Aber wenn ich z .B. ein Facebook video verline wird das dennoch geladen. Kann man das so einrichten das man das cookie nicht speziell für youtube sondern generell für video dateien aller art setzen und wählen kann. Nur falls das geht.

@ergänzung

Hackepeter13

Folgende Frage ich möchte in einer HTML einen div Container schalten mittels Cookie Script. Also etwa so:

Der Inhalt in einer HTML-Datei ist z.B. so eingebunden:

Code: Alles auswählen

<div class="klasse">
inhalt 
</div
Und jetzt meine Frage ich möchte das z.B. jetzt so handhaben, dass ich einen Schalter in das Script einbaue (nennen wir ihn mal testklasse) und das, wenn der auf nein gestellt ist den Div Container "klasse" Einblendet also lädt und wenn das Cookie Testklasse auf Aktiv gesetzt wird diesen Div Container übergeht.

Also Hier sollte es ja auch egal sein ob es sich dabei um eine class= angabe (.klasse) oder im eine id= (#klasse) handelt. Weil zwischen id und class soweit ich die html Kodierung richtig verstehe nur der ist das die ID zum einmaligen verwenden ist und die class für mehrere Container gelten kann.

Wie müsste ich das bezüglich der class angabe "klasse" umsetzen.

@codeprogramierer von phpbb.de

Ich habe da mal eine Frage. Unabhängig ob über bbcode oder video link direkt. Welche Class oder id haben alle Videos gemeinsam. ALso wenn ich z.B. in meinem Testforum einen Videolink von youtube poste der facebook dann erscheint nach erstellen des beitrages ein vorschaubild. Welches id oder css haben die alle gemeinsam.

Meine Frage bezieht sich auf die Vorherige frage an hackepeter13. Weil mit dem script will ich mit extension ein css code laden mit dem Befehl display: none; Ich würde nur gern wissen mit welcher klasse oder id ich die Videos generell ansprechen.
hackepeter13
Valued Contributor
Beiträge: 3545
Registriert: 21.04.2004 12:22
Wohnort: Berlin
Kontaktdaten:

Re: Opt-In Cookie Extension

Beitrag von hackepeter13 »

chris1278 hat geschrieben: 28.11.2020 21:03 Aber wie kann man das auf den bbcode in der Eingabe Box von vse anwenden! Dort steht Folgendes:

BBcode Benutzung:

Code: Alles auswählen

[BBvideo={NUMBER1},{NUMBER2}]{URL}[/BBvideo]
html-Ersetzung:

Code: Alles auswählen

<a href="{URL}" class="bbvideo" data-bbvideo="{NUMBER1},{NUMBER2}" target="_blank">{URL}</a>
Ich würde den gern als BBvideo mittels Cookie ausblenden wie bei YouTube. Hast du da auch eine Idee. Weil der ja außer YouTube noch andere Videos abspielen kann. (zumindest wenn man der Liste, die man auswählen kann dort trauen kann das alles so wie bei YouTube Videos funktioniert)
Ich habe mir die "vse Advanced BBCode Box" installiert und angeschaut und es erscheint mir irgendwie komplex.

Selbst wenn ich eine reine Youtube-URL (ohne [url][/url] und ohne [bbvideo][/bbvideo]) in den Beitrag schreibe, wird automatisch ein Video erkannt und angezeigt.

Die Ausgabe im Browser sieht immer so aus:

Code: Alles auswählen

<span data-s9e-mediaembed="youtube" style="display:inline-block;width:100%;max-width:640px">
<span style="display:block;overflow:hidden;position:relative;padding-bottom:56.25%">
<iframe allowfullscreen="" loading="lazy" scrolling="no" style="background:url(https://i.ytimg.com/vi/bAHAoewsKDU/hqdefault.jpg) 50% 50% / cover;border:0;height:100%;left:0;position:absolute;width:100%" src="https://www.youtube.com/embed/bAHAoewsKDU">
</iframe></span></span>
Ich habe mir daraufhin alle Dateien zu der Extension angeschaut und weiß nicht woher diese Codezeilen erstellt/holt werden.

Selbst die HTML-Ergänzung im ACP:

Code: Alles auswählen

<a href="{URL}" class="bbvideo" data-bbvideo="{NUMBER1},{NUMBER2}" target="_blank">{URL}</a>
hat keinerlei Ähnlichkeiten mit dem, was im Browser ausgegeben wird.
Ich konnte auch die ganze HTML-Ergänzung ändern wie ich wollte, es hat an der endgültigen Ausgabe im Beitrag absolut nichts geändert, als wäre die HTML-Ergänzung völlig nutzlos/ohne Funktion.

Ich finde in der Extension nicht einmal eine Einstellmöglichkeit, welche Video-Plattformen erkannt/erlaubt werden sollen und welche nicht.
Die "Advanced BBCode Box für" phpBB 3.0.x war da irgendwie einfacher zu verstehen.

chris1278 hat geschrieben: 28.11.2020 21:03 Ich hab das eben mal getestet. Speziell youtube funktioniert das auch so. Aber wenn ich z .B. ein Facebook video verline wird das dennoch geladen. Kann man das so einrichten das man das cookie nicht speziell für youtube sondern generell für video dateien aller art setzen und wählen kann. Nur falls das geht.
Im HMTL-Teil ist ja schon die class="ccMessageContainer" für das Anzeigen oder nicht Anzeigen des Videos zuständig.
Der Javascript-Teil, der in der overll_footer.html greift auf diese class="ccMessageContainer".
Und für Facebook-Videos oder andere Video-Seiten muss ein weiterer Javascript-Teil hinzugefügt werden, bspw.:

Code: Alles auswählen

<script type="opt-in" data-type="application/javascript" data-name="facebook">
	function showAllFacebookContainer() {
	  if( $( '.videoCConsentContainer' ).length > 0 ) {
        $( '.videoCConsentContainer' ).each( function() {
          _wrapper = $( this );
          _wrapper.children(".ccMessageContainer").hide();
          _wrapper.children(".videoLayer").show().html( '<iframe src="https://www.facebook.com/plugins/video.php?height=476&href=https%3A%2F%2Fwww.facebook.com%2Fitsdlai%2Fvideos%2F' + _wrapper.attr( 'data-source' ) + '%2F&show_text=false&width=476" width="476" height="476" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share" allowFullScreen="true"></iframe>');
         });
      }
	}
	function hideAllFacebookContainer() {
	  if( $( '.videoCConsentContainer' ).length > 0 ) {
        $( '.videoCConsentContainer' ).each( function() {
          _wrapper = $( this );
          _wrapper.children(".ccMessageContainer").show();
          _wrapper.children(".videoLayer").hide().html("");
         });
      }	  
	}
</script>
Dazu muss dann aber auch in der config.js der Facebook-Service hinzugefügt werden:

Code: Alles auswählen

        {
            name: 'facebook',
            default: false,
            title: 'Facebook',
            purposes: ['media'],
            callback : function(consent, app){
              if (typeof hideAllFacebookContainer === "function") {
                if (!consent) {
                  hideAllFacebookContainer();
                } else {
                  showAllFacebookContainer();
                }
              }
            },
            required: false,
            optOut: false,
            onlyOnce: true,
        },
(Das ist jetzt nur Grob und ungetestet erstellt)

Du kannst auch nicht einen generellen Verstecken/Anzeigen Code für alle Videos machen, da der User/Webseitenbesucher schon die Auswahl (erlauben/nicht erlauben) der einzelnen Videoplattformen haben sollte.
Es bringt nichts wenn im Cookie-Consent einfach nur "Videos" erlaubt wird, der User dann aber nicht weiß welche Plattformen genau nun Daten übermittelt bekommen.
Oder wenn jemand sagt, Youtube-Videos will ich erlauben, aber Facebook-Videos nicht, daher sollte schon jeder Plattform separat auswählbar sein.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Opt-In Cookie Extension

Beitrag von chris1278 »

Ok das mit dem Vieoplatform auswählen verstehe ich schon aber dann müsste man extrem viele cookie optionen haben. Da es unzählige videoplatformen gibt. daher dachte ich an diese variante mit ausblenden video platformen generel und dann hinweis das man den cookie dazu akzeptieren mus oder man keine videos anschauen. Aber unabhängig vom Video würde ich dennoch gern wissen wie man sowas hier umsetzen kann:

Code: Alles auswählen

<div class="klasse">
inhalt 
</div
nicht nur wegen videos. Ich denke da an andere sachen. Daher die Frage wie ich das umsetzen kann im script. so wie vorher beschrieben.

Im Übrigen ist das so mit dem YouTube Videos, wenn ich deine Script so anwende wie du es sagst funktioniert das, wenn ich alles so mache, wie du das geschrieben hast aber den YouTube bbcode nicht erstelle nutzt das Script nichts. Wenn der youtube bbcode erstellt ist blendet der youtube videos aus egal ob mit oder ohne vse advanced bbcodebox extension.
Benutzeravatar
Cowboy of Bottrop
Mitglied
Beiträge: 320
Registriert: 01.02.2017 21:11
Wohnort: Bottrop anne Emscher
Kontaktdaten:

Re: Opt-In Cookie Extension

Beitrag von Cowboy of Bottrop »

chris1278 hat geschrieben: 30.11.2020 19:35 Ok das mit dem Vieoplatform auswählen verstehe ich schon aber dann müsste man extrem viele cookie optionen haben. Da es unzählige videoplatformen gibt.
Es sollte doch reichen, wenn man nur die Cookies der Videoplattformen ausschließen lässt, die man auch einbinden lässt. YouTube, Vimeo und Facebook sollten da reichen.
Keep it County,
Markus aka Cowboy
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Opt-In Cookie Extension

Beitrag von chris1278 »

Cowboy of Bottrop hat geschrieben: 30.11.2020 21:35 Es sollte doch reichen, wenn man nur die Cookies der Videoplattformen ausschließen lässt, die man auch einbinden lässt. YouTube, Vimeo und Facebook sollten da reichen.
Das ist ja das Problem. Selbst wenn ich jetzt z.b. die Cookies nehme, wie du vorschlägst YouTube, Facebook und Vimeo. Was hält den andere Nutzer davon ab andere Plattformen zu posten wie z.B. veoh oder was weiß ich! Da gibt es so viele und immer neue. Daher fände ich es besser dies für das Forum etwas zu verallgemeinern. So nach dem Motto entweder du akzeptierst die Cookies oder du kannst leider keine Videos sehen. (Die Sache mit dem Urheberrecht lasse ich jetzt mal da außen vor. Es geht lediglich um das Abspielen von Videos selber) dann halt auch so gelöst das eine Informationsbox unten im Forum angezeigt wird, das keine Videoinhalte gezeigt werden, da die Cookies nicht erlaubt sind. So in der Art. Wie gesagt ist nur meine Meinung.
Benutzeravatar
Cowboy of Bottrop
Mitglied
Beiträge: 320
Registriert: 01.02.2017 21:11
Wohnort: Bottrop anne Emscher
Kontaktdaten:

Re: Opt-In Cookie Extension

Beitrag von Cowboy of Bottrop »

Über die Ext "phpBB Media Embed PlugIn" (https://www.phpbb.com/customise/db/extension/mediaembed) kann ich doch festlegen, welche Plattformen sich einbetten lassen. Alles andere wird dann als Link angezeigt, auf dessen Klick das Board verlassen wird.
Keep it County,
Markus aka Cowboy
Benutzeravatar
chris1278
Mitglied
Beiträge: 3532
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Opt-In Cookie Extension

Beitrag von chris1278 »

Ok das wäre eine Möglichkeit. Werd mir das Ding demnächst mal anschauen.
Antworten

Zurück zu „Extension Bastelstube“