Grundsätzlich wird empfohlen, legalweb.io über ein bereits bestehendes Plugin zu nutzen. Alternativ ist ein Abruf aller Daten und Funktionen über die REST-API möglich.
Im Legalweb Dashboard können folgende Funktionen aktiviert und konfiguriert werden:
Nach der Aktivierung und der Konfiguration im Dashboard sind die erzeugten Daten in der Vorschau des Dashboard einsehbar und kopierbar.
Nach der Aktivierung und der Konfiguration im Dashboard sind die erzeugten Daten über die API abrufbar.
Die API ist unter der folgenden URL erreichbar:
https://legalweb.io/api
Bei jedem API Request müssen die GUID und die Callback URL im HEADER mitübergeben werden. Der Content-Type des Requests muss „application/x-www-form-urlencoded“ sein.
API Requests sind nur zum Zweck des Updates der lokal gespeicherten Daten zulässig. Zeitgesteuerte API Requests zum zweck des Updates sind maximal alle 24 Stunden zulässig.
Alle von der API bezogenen Daten sind lokal zu speichern.
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://legalweb.io/api',
CURLOPT_POST => 1,
CURLOPT_HTTPHEADER => array(
"content-type: application/x-www-form-urlencoded",
"Guid: 3c0e1033-3691-41d8-a758-fa3b1d402201",
"Callback: https://meine-webseite.com/?cb=legalwebxyz",
)
]);
$resp = curl_exec($curl);
curl_close($curl);
// var_dump($resp); // hier könnte der gesamte json string ausgegeben werden
$apiData = json_decode ($resp); // der komplette Response müsste nun zwischengespeichert werden (zB. in der Db, in einem File,...)
$css = $apiData->services->dppopupcss;
$js = $apiData->services->dppopupjs;
$popup_de = $apiData->services->dppopup->de;
$spDsgvoGeneralConfig = $apiData->services->dppopupconfig->spDsgvoGeneralConfig;
$spDsgvoIntegrationConfig = $apiData->services->dppopupconfig->spDsgvoIntegrationConfig;
?>
<!DOCTYPE html>
<html>
<head>
<style>
<?= $css ?>;
</style>
</head>
<body>
<h1>This is a test page</h1>
<script>
var spDsgvoGeneralConfig = JSON.parse('<?php echo json_encode($spDsgvoGeneralConfig); ?>');
var spDsgvoIntegrationConfig = JSON.parse('<?php echo json_encode($spDsgvoIntegrationConfig); ?>');
<?= $js; ?>
</script>
<?= $popup_de ?>;
</body>
</html>
Die Ausgabe der API erfolgt im JSON Format. Es wird immer der komplette Datensatz geliefert. Die Abfrage einzelner Services ist derzeit nicht geplant, da die gewünschten Services ohnehin im Backend konfiguriert wurden.
{
"lw_api": {
"mode": "",
"version": "",
"description": "API of legalweb.io",
"url": "https://legalweb.io/api",
"documentation": "https://legalweb.io/support/api",
"terms": "https://legalweb.io/shop/agb/"
},
"domain": {
"domain_id": "",
"domain_guid": "",
"domain_url": "",
"domain_callback": "",
"organisation": "",
"address": "",
"city": "",
"zip": "",
"country": "",
"phone": "",
"email": ""
},
"services": {
"imprint": {
"de": "",
"en": ""
},
"dpstatement": {
"de": "",
"en": ""
},
"dppopup": {
"de": "",
"en": ""
},
"dppopupcss": ""
,
"dppopupjs": ""
,
"dppopupconfig": {
"spDsgvoGeneralConfig": {},
"spDsgvoIntegrationConfig": {}
},
"contractterms": {
"de": "",
"en": ""
},
"contractcheckout": {
"de": "",
"en": ""
},
"contractwithdrawaldigital": {
"de": "",
"en": ""
},
"contractwithdrawalservice": {
"de": "",
"en": ""
},
"guetesiegel": {
"de": ""
},
"messages": [{
"id": "",
"msg": ""
}
]
}
}
legalWebApi
domain: enthält Daten zur Domain
services: Impressum, Datenschutz, Vertrag
Txt, html, js, css, … sind im JSON escaped gemäß RFC 7159 Punkt 7. https://tools.ietf.org/html/rfc7159 also z.B. \“Hallo!\“.
code | Fehlermeldung |
---|---|
10 | Keine gültige Domain |
20 | Kein gültiger Header |
30 | Keine Guid angegeben |
40 | Eine ungültige Guid |
50 | Keine Callback URL angegeben |
60 |
Bei einem Opt-In oder Opt-Out wird ein CustomEvent „lw-optinout“ dispatched. Dem Event wird Folgendes als Details übergeben:
Mit folgendem Code kann sich auf das Event gebunden werden:document.querySelector('.sp-dsgvo-privacy-popup').addEventListener('lw-optinout', function (e) {
console.log('optinout', e.detail);
});
Vorm Anzeigen des Popups bzw. der Notice, wird das entsprechende Event ausgelöst.
Mit folgendem Code kann sich auf das Event gebunden werden:document.querySelector('.sp-dsgvo-privacy-popup').addEventListener('lw-beforeshowpopup', function (e) {
console.log('lw-beforeshowpopup', e.detail);
});
Zusätzlich kann per JS eine Integration aktiviert oder deaktiviert werden und ihr Status eruiert werden. Folgende Methoden stehen dafür zur Verfügung
Popup und Notice können mit folgenden Methoden angezeigt werden
Falls Popup und Notice nicht via DOMContentLoaded Event geladen werden, steht eine Methode zum benutzerdefinierten Initialisieren zur Verfügung. Diese Methode initialisiert das „komplette“ Frontend, zeigt aber noch nichts an. Angezeigt muss das Popup auch manuell via der im vorigen Punkt genannten Methoden.
Eine Liste mit verfügbaren Clients und eine Auflistung der Anforderungen an Clients finden sich hier.