Einführung
ConsentFriend verwendet das Open-Source-Skript von Klaro! als Skript zur Verwaltung von Einwilligungen auf dem Frontend. Das Klaro!-Skript aktiviert automatisch interne und externe Dienste auf der Webseite. ConsentFriend bereitet den HTML-Code der Seite vor, so dass die automatische Ausführung oder das Laden von externen Diensten per Klaro!-Script gesteuert werden kann.
Die folgenden Schritte werden von ConsentFriend automatisch vorbereitet
Um sicherzustellen, dass keine Tracking-Skripte und Dienste Dritter ohne Zustimmung geladen werden, muss der HTML-Code der Seite geändert werden: Bei Skripten muss das type-Attribut auf
type="text/plain"
gesetzt oder durchtype="text/plain"
ersetzt werden (dies verhindert, dass der Browser das Skript ausführt) und ein data-Attribut mit dem ursprünglichen Typ hinzugefügt werden, d.h.data-type="application/javascript"
. Außerdem muss ein data-name-Attribut hinzugefügt werden, das mit dem Namen des [Dienstes in der Managerseite] (../03_Custom_Manager_Page/01_Services.md#service-name) übereinstimmen muss, d.h.data-name="matomo"
.
Wenn man den Code des externen Dienstes in der ConsentFriend-Dienstkonfiguration eingegeben wird, dann wird der Code für die automatische Aktivierung vorbereitet. ConsentFriend fügt anschließend den vorbereiteten Code am Ende des HEAD- oder BODY-Abschnitts in den HTML-Code ein.
Kommerzielle Version von Klaro!
ConsentFriend nutzt die kommerzielle serverseitige Version von Klaro! nicht. Es ist nicht erforderlich und derzeit auch nicht möglich, die kommerzielle Version von Klaro! mit ConsentFriend zu verwenden.
Benutzerdefinierte externe Dienste
Wenn externe Dienste inline auf der Seite platzieren werden, dann muss die
Vorbereitung des Codes selbst vorgenommen werden. Externe Dienste können z.B.
durch script
, img
, link
oder iframe
Tags aufgerufen werden. Alle diese
Tags müssen ein data-name
-Attribut enthalten, das mit dem Namen eines
Dienst von
ConsentFriend übereinstimmt, z.B. data-name="matomo"
. Enthält der
ursprüngliche Tag ein type Attribut, muss es in type="text/plain"
geändert
werden.
Skript-Tags
Dienste mit einem Skript-Tag benötigen ein zusätzliches Attribut data-type
mit
dem ursprünglichen Typ, d.h. data-type="application/javascript"
. Wenn der
Dienst ein externes Skript über das Attribut src
referenziert, muss dieses
Attribut mit data-src
umbenannt werden.
iframe und img Tags
Dienste mit einem iframe- oder img-Tag benötigen ein zusätzliches
data-src
-Attribut mit dem ursprünglichen src, z.B.
data-src="https://www.youtube.com/embed/M7lc1UVf-VE"
. Das ursprüngliche
src-Attribut muss entfernt werden. Da das type-Attribut für iframe-Tags nicht
gültig ist, kann es dort entfernt werden.
ConsentFriend blendet einen iframe-basierten Dienst aus und zeigt einen Platzhalter mit mit einer Aktivierungsschaltfläche an. Diese Funktion nennt sich Contextual Consent und wird seit ConsentFriend 1.2.0 verwendet.
Link-Tags
Dienste mit einem Link-Tag benötigen ein zusätzliches data-href
-Attribut mit
dem ursprünglichen href, z.B.
data-href="https://fonts.googleapis.com/css2?family=Open+Sans"
. Das
ursprüngliche href-Attribut muss entfernt werden.
Standard-Dienste
ConsentFriend installiert verschiedene Standard-Dienste. Einige von ihnen verwenden System-/Kontext Einstellungen, die Sie selbst anlegen müssen.
Beispiele
Beispielcode für externe Dienste:
Link zum Öffnen des Einverständnisverwaltungsfensters
Um einen Link zum Zustimmungsmanagement-Fenster auf einer Seite hinzuzufügen, ist der folgende Code notwendig:
<a onclick="klaro.show();return false;">[[%consentfriend.services.change_setting? &namespace=`consentfriend`]]</a>