Hier stellen wir Ihnen ein Beispiel-Layer für die Einwilligung zur Datenverarbeitung zur Verfügung. Das Designbeispiel berücksichtigt das aktuelle EuGH-Urteil vom 01.10.2019.
Es umfasst die Anpassungen in der Shopkonfiguration shop.config, den HTML-Quellcode für den Layer, einen Link zum erneuten Öffnen des Layers und ein Beispiel für zusätzliche CSS-Styles.
Sie können Layer und Konfiguration im Mustershop v8s-demoshop.websale.biz "live in action" erleben.
Wegweiser: Einwilligung zur Datenverarbeitung (Cookies)
Anpassungen der Shopkonfiguration shop.config
################################################################################### ### Einwilligung zur Datenverarbeitung ### ################################################################################### <AgreementCookies> Allow = yes <+Entry> ID = cookiebasket Type = OptIn Preselection = unchecked Name = Warenkorb für nächsten Besuch speichern Descr = ConsentGroupID = comfort +WEBSALEService = CookieBasket </+Entry> <+Entry> ID = welcomecookie Type = OptIn Preselection = unchecked Name = Persönliche Begrüßung Descr = ConsentGroupID = comfort +WEBSALEService = WelcomeCookie </+Entry> <+Entry> ID = googleMaps Type = OptIn Preselection = unchecked Name = Anfahrtsplanung mit Google Maps Descr = ConsentGroupID = comfort </+Entry> <+Entry> ID = youtube Type = OptIn Preselection = unchecked Name = Produktvideos über YouTube Descr = ConsentGroupID = comfort </+Entry> <+Entry> ID = google Type = OptIn Preselection = unchecked Name = Google Analytics Descr = ConsentGroupID = optimize </+Entry> <+Entry> ID = econda Type = OptIn Preselection = unchecked Name = Econda Descr = ConsentGroupID = optimize </+Entry> <+Entry> ID = googleTagManager Type = OptIn Preselection = unchecked Name = Google Tag Manager Descr = ConsentGroupID = marketing </+Entry> <+Entry> ID = instagram Type = OptIn Preselection = unchecked Name = Instagram Descr = ConsentGroupID = marketing </+Entry> <+Entry> ID = pinterest Type = OptIn Preselection = unchecked Name = Pinterest Descr = ConsentGroupID = marketing </+Entry> <+Entry> ID = twitter Type = OptIn Preselection = unchecked Name = Twitter Descr = ConsentGroupID = marketing </+Entry> <+ConsentGroupInfo> ConsentGroupID = comfort Name = Komfortfunktionen Descr = Wir möchten die Bedienung dieses Shops für Sie möglichst komfortabel gestalten. </+ConsentGroupInfo> <+ConsentGroupInfo> ConsentGroupID = optimize Name = Shop-Optimierungen Descr = Um den Shop zu optimieren möchten wir Dienste nutzen die Daten erheben und aggregieren und uns diese als statistische Übersicht zur Verfügung stellen. </+ConsentGroupInfo> <+ConsentGroupInfo> ConsentGroupID = marketing Name = Social Media / Marketing Funktionen Descr = Zu Werbezwecken dürfen Nutzungsdaten erhoben und mit statistischen Methoden zu einem Nutzerprofil zusammengefasst werden. Dies wird Interessengruppen zugeordnet, an die webseitenübergreifend Werbung ausgespielt wird. </+ConsentGroupInfo> </AgreementCookies>
HTML-Quellcode auf Basis von Bootstrap ver. 4.1.3 und jQuery 3.4.1
<body> ... <div id="agreementPrivacy" class="py-3 px-sm-3"{!AC-AgreementNotMadeOrNeedsUpdate} style="display: none;"{/!AC-AgreementNotMadeOrNeedsUpdate}> <div class="container-fluid"> <div class="row"> <div class="col"> <p class="lead mb-1">Einwilligung zur Datenverarbeitung</p> <p class="small">Wir möchten Dienste von Drittanbietern nutzen, um den Shop und unsere Dienste zu verbessern und optimal zu gestalten (Komfortfunktionen, Shop-Optimierung). Weiter wollen wir unsere Produkte bewerben (Social Media/Marketing).<br> Dafür können Sie hier Ihre Einwilligung erteilen und jederzeit widerrufen. Weitere Informationen dazu finden Sie in unserer <a href="~WS-LoadTpl(tpl_datenschutz.htm,Datenschutz)~" class="text-body"><u>Datenschutzerklärung</u></a>.</p> </div> <div class="col-12 mt-2"> <div class="row"> <div class="col-12 col-sm-6"> <input type="checkbox" value="" onclick="ws_agreement_updatecheckboxes();" class="~AC-ConsentAll_CheckboxClass~" ~AC-ConsentAll_CheckboxIsChecked~> <b>Alle Dienste erlauben</b> </div> <div class="col-12 col-sm-6"> <input type="button" onclick="ws_agreementcookies_set(); $('#agreementPrivacy').hide(); $('#agreementPrivacy').removeClass('isFixed'); $('#cookieDetails').addClass('d-none'); $('#cookieDetailToggler').removeClass('open');" value="Einstellungen speichern" class="btn btn-block btn-success"> </div> </div> <div class="cursorPointer clearfix mt-2"> <span id="cookieDetailToggler" onclick="$('#cookieDetails').toggleClass('d-none'); $('#agreementPrivacy').toggleClass('isFixed'); $(this).toggleClass('open');"> Details<i class="fa fa-angle-down ml-1" aria-hidden="true"></i> </span> </div> </div> </div> <div id="cookieDetails" class="d-none"> ~DC-DynamicLoop1_set($AC-ConsentGroupList$)~ {@DC-DynamicLoop1} {AC-ConsentGroup($DC-DynamicLoop1_data$)} <div class="mb-3"> <div class="mt-3 p-3 border border-secondary"> <div class="font-weight-bold mb-1"> <input type="checkbox" value="" onclick="ws_agreement_updatecheckboxes();" class="~AC-ConsentGroup_CheckboxClass~" ~AC-ConsentGroup_CheckboxIsChecked~> <b>Alle ~AC-ConsentGroup_Name~ erlauben</b> </div> <div class="small">~AC-ConsentGroup_Descr~</div> {AC-Entry} <div class="row mt-2 ml-2"> {@AC-Entry($DC-DynamicLoop1_data$)} <div class="col-6 mb-2"> <input type="checkbox" value="" onclick="ws_agreement_updatecheckboxes();" class="~AC-Entry_CheckboxClass~" ~AC-Entry_CheckboxIsChecked~> ~AC-Entry_Name~ </div> {/@AC-Entry($DC-DynamicLoop1_data$)} </div> {/AC-Entry} </div> </div> {/AC-ConsentGroup($DC-DynamicLoop1_data$)} {/@DC-DynamicLoop1} </div> </div> </div> ... </body>
Hinweis: |
|
Sie können den Layer auch mit Bootstrap 3 verwenden. Beachten Sie, dass Sie bei Verwendung von Bootstrap 3 die CSS-Klassen des oben wiedergegebenen Beispielcodes anpassen müssen. |
Link zum erneuten Öffnen des Layers, z. B. auf der Datenschutzseite
<body>
...
<div class="btn btn-primary mb-5" onclick="$('#agreementPrivacy').show();">Einwilligung zur Datenverarbeitung ändern</div>
...
</body>
Individuelles CSS
/* Zusätzlich zu den Standard-CSS-Anweisungen von Bootstrap v4.1.3 */
#agreementPrivacy {
position: fixed;
background: #dde5ee;
z-index: 9999999;
right: 0;
bottom: 0;
left: 0;
box-shadow: 0 0 10px rgba(0,0,0,.1);
}
@media (min-width:576px) {
#agreementPrivacy {
right: auto;
width: 500px;
/*height: 313px;*/
}
}
#agreementPrivacy.isFixed {
height: 100%;
overflow-y: auto;
}
#cookieDetailToggler.open > i.fa {
transform: rotate(180deg);
}