GCM

Gentics Consent Management

Sie wollen GCM testen? Besuchen Sie einfach gentics.com und klicken Sie im Cookie-Banner auf Cookie-Präferenzen.

Bitte beachten Sie: In der folgenden Dokumentation wurden Beispieldaten (z.B. Konfigurationen, Cookie-Listen, Beschreibungen, Übersetzungen, usw... ) verwendet. Bitte verwenden Sie diese nicht für den Produktiveinsatz. Wir übernehmen keine Haftung.

Einbau

Domain Handling

Wenn GCM auf einer Domain eingebunden wird, kann GCM auch für alle Subdomains verwendet werden. Außerdem werden die Einstellungen Subdomain übergreifend gespeichert.

Beispiel: Wenn GCM für example.com ausgestellt wird:

Sollten Sie eine eigene Konfiguration für eine Subdomain haben, muss eine weitere Version von GCM ausgesetllt werden. Diese läuft dann auf dieser Subdomain und allen Sub-Subdomains.

Beispiel: Wenn GCM für new.example.com ausgestellt wird:

Es ist dann allerdings nicht möglich von einer anderen Subdomain oder von der Haupt-Domain Einstellungen aus dem Cookie der gewählten Subdomain auszulesen, weil die Subdomain wie eine Haupt-Domain gehandhabt wird. Außerdem wird dem Settings-Cookie ein Prefix hinzugefügt, welcher die Domain bestimmt. Somit ist es möglich auf Hauptdomain und Subdomain andere Einstellungen zu speicherm.

Einbindung von GCM

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>GCM</title> <!-- Load GCM File here --> <script src="/path/to/GCM.js"></script> <!-- Init GCM with Config-File and other settings --> <script>window.GCM.init('GCMC.js', 'de', 1, true);</script> </head> <body> <p>GCM FTW</p> </body> </html>

Laden eines Scripts

Beispiel zum laden einer Script File im Head

Weitere Infos: LoadScript

<script> window.GCM.apps.loadScript('google', 'https://www.google.com/recaptcha/api.js'); </script>
<script> window.GCM.apps.loadScript('google', 'https://www.google.com/recaptcha/api.js', function() { console.log('recaptcha loaded successfuly'); }); </script>

Überprüfung einer Applikation

Mit Funktion Get

Weitere Infos: get

<script> (function() { // if google app is not allowed, init of analytics will be aborted if (!window.GCM.apps.get("google")) return; window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag("js", new Date()); gtag("config", "XX-XXXXX-X", { anonymize_ip: true }); })(); </script>

Mit Funktion WhenAllowed

Weitere Infos: whenAllowed

<script> window.GCM.apps.whenAllowed('google', function() { (function() { window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag("js", new Date()); gtag("config", "XX-XXXXX-X", { anonymize_ip: true }); })(); }); </script>

Beispiel Click-to-Load Youtube

Wir legen über den <iframe> ein Overlay. In das data-src Attribut geben wir den Inhalt des src Attributs. Das src Attribut wird mit about:blank befüllt. Damit wird ein leerer <iframe> gerendert. Außerdem brauchen wir noch eine Button zum akzeptieren der Cookies.

<div> <div class="yt-overlay"> <h2>Zum laden des Videos, bitte YouTube Cookies akzeptieren.</h2> <a class="btnAcceptYT">Akzeptieren</a> </div> <iframe frameborder="0" width="100%" height="350" src="about:blank" data-src="//www.youtube.com/embed/w_oXaW5Rrpc" allowfullscreen="" kwframeid="1"></iframe> </div>

Wird der Button gedrückt, wird das whenAllowed Event ausgeführt. In diesem Event wird das Overlay entfernt und der Inhalt von data-src in src eingefügt. Somit wird das Video geladen.

$( document ).ready(function() { $(document).on('click', '.btnAcceptYT', function() { window.GCM.apps.set('youtube', true); }); window.GCM.apps.whenAllowed('youtube', function() { var overlay = $(this).parent('.yt-overlay'); var iframe = overlay.next('iframe'); iframe.attr('src', iframe.data('src')); overlya.css('display', 'none'); }); });

Das Event hat noch einen weiteren Vorteil: Sind auf der Startseite YouTube Videos vorhanden und die Cookies werden über den Cookie Banner akzeptiert, werden die YouTube Videos direkt nach dem akzeptieren geladen.

Laden der Applikationen zur Ausgabe

Weitere Infos: get

// Method 1 window.GCM.apps.getListAllData(function (apps) { for(var i in apps) { //do something } }); // Method 2 var apps = window.GCM.apps.getListAllData(); for(var i in apps) { //do something }

Allgemein

GCM funktioniert immer nur für eine Doamin. Dies bedeutet, dass für jede Domain, für die Sie GCM verwenden wollen, eine angepasste Version von Gentics anfordern müssen.

Funktionsweise

GCM erleichtert das managen von Webframeworks. Da diese oft Cookies verwenden, müssen diese für den Nutzer deaktivierbar sein.

Wir gehen davon aus, dass GCM bereits auf einer Seite eingebunden und eine Config hinterlegt wurde.

Der Nutzer besucht das aller erste mal die Website. Zu diesem Zeitpunkt wurden vom Nutzer noch keine Einstellungen vorgenommen. Bei der Abfrage einer Applikation wird also null zurückgegeben. (bei z.b apps.get())

Wie geht man als Entwickler nun am besten vor den Nutzer die Applikationen zu zeigen?

Mit z.B. apps.getListAllData() oder groups.getList() können alle Informationen aus der Config-File geladen werden. Mit diesen Daten kann dann z.B. ein Modal oder eine Liste gebaut werden.

In diesem Modal befinden sich dann z.B. Toggles mit jenen Applikation aktiviert oder deaktiviert werdebn können. Wenn der Nutzer dann z.B. eine Applikation deaktiviert, können wir einen apps.set() ausführen um die Änderung in den RAM zu schreiben. Diese sind dann allerdings nur im RAM. Wird die Seite neu geladen, gehen die vorgenommenen Einstellungen verloren. Wir nehmen an, der Nutzer deaktiviert 2 von 4 Applikationen. Im RAM steht nun für diese 2 Applikationen ein false. Damit wir diesen Einstellungen speichern können, müssen wir ein settings.save() ausführen. Wird settings.save() ausgeführt, überprüft GCM die vorgenommenen Einstellungen im RAM und gleicht sie mit den Einstellungen im Config-File ab. Dies hat zu bedeuten, dass für Applikation, für die der Nutzer aktiv keinen Wert zugewiesn hat, die Presets aus der Config-File übernommen werden.

Wird ohne Interaktion des Nutzers (also mit apps.set()) ein settings.save() ausgeführt, so werden für alle Applikationen die Preset aus der Config-File in die Einstellungen gespeichert.

Bitte beachten Sie allerdings, dass Sie nie ein apps.set() (oder ähnlich) ohne Nutzerinteraktion ausführen sollten. Sie sollten immer die Werte von GCM auslesen, darstellen, und bei User interaktion mit GCM abgleichen. Ansonsten könnte es zu Problemen kommen.

Zur wiederholung:

Initialisierung

Beim Initialisieren werden die wichtigsten Informationen übergeben.

Grundsätzlich werden bei der Initialisierung nur die angegebenen Werte übergeben und in der Klasse gespeichert. Es werden noch keine Operationen ausgeführt. Eine Ausnahme gibt es: Bei aktiviertem AutoErease werden gewisse Daten im Hintergrund geladen.

Speicherung der Daten

Wird eine Funktion von GCM das erste Mal aufgerufen, wird die Konfiguration aus der Konfigurationsdatei geladen und im Local Storage des Browsers gespeichert. Dadurch muss bei einem Neuladen der Konfiguration keine HTTP-Anfrage mehr ausgeführt werden.

GCM speichert Daten an 3 Orten:

AutoReload

Beim Initialisieren von GCM kann ein Intervall angegeben werden, in welchem die Config-File neu geladen wird. Dieser Wert wird in Stunden angegeben und im Config-Cookie des GCM gespeichert. Bei jedem Auslesen des Config-Cookies wird überprüft, ob die Konfiguration neu geladen werden muss. Wenn der Fall eintritt, dass die Konfiguration neu geladen werden muss, können Sie dies über 2 Wege überprüfen.

Änderungen der Config-File können mit settings.save() übernommen werden.

AutoErease

Überprüft bei jeder Initialisierung und Änderung eines Werts einer Applikation von GCM, ob Applikationen auf false gesetzt sind. Sollte dies der Fall sein, versucht GCM die mit dieser Applikation verbundenen Cookies zu löschen.

Funktionen

In diesem Bereich werden die Funktionen der Library genauer erklärt.

Die Funktionen wurden in 3 Gruppen aufgeteilt:

GCM Klasse

init

Initialisiert GCM

/** * @param {string} configUrl * Must be a URL to a Config-File containing the JSON Object * @param {string} language * Defines the default language * @param {int} reloadHours * The hours between an automatic reload of the configuration file * @param {boolean} autoErease * Boolean to activate or deactivate AutoErease * @return {boolean} * Returns the value for given App ID (boolean) */ window.GCM.init(configUrl,language,reloadHours,autoErease);

Apps Klasse

get

Gibt die Einstellung der übergebenen App ID zurück. Sollte für die übergebene App ID noch kein Eintrag im Config-Cookie vorhanden sein, wird null zurückgegeben.

Hinweis: Sollte bei einer Applikation protected aktiviert sein, wird zu jeder Zeit der Wert der Konfigurationsdatei zurückgegeben, auch wenn kein Eintrag im Config-Cookie vorhanden ist.

/** * @param {string} name * App ID * @return {boolean} * Returns the value for given App ID (boolean) */ window.GCM.apps.get(name);

getList

Gibt die Einstellung der übergebenen App ID zurürck. Sollten für die Einträge noch keine Daten im Config-Cookie vorhanden sein, wird null zurückgegeben.

Hinweis: Sollte bei einer Applikation protected aktiviert sein, wird zu jeder Zeit das Value der Konfigurationsdatei zurückgegeben, auch wenn kein Eintrag im Config-Cookie vorhanden ist.

/** * @param {function} callback * Callback Function with 1 variable containing list * @return {object} * Returns a key value list of all Apps * Key: App ID, Value: Setting (boolean) */ // Method 1 var list = window.GCM.apps.getList(); // Method 2 window.GCM.apps.getList(function(list){});

getListAllData

Gibt alle Applikationen mit allen Informationen aus der Config-File aus. Die Werte werden nur dann aus dem Config-Cookie übernommen, wenn bereits ein Eintrag vorhanden ist. Ist das Config-Cookie leer oder es fehlen Applikationen darin, werden entweder für alle oder für die fehlenden die Presets aus der Konfigurationsdatei zurückgegeben.

Hinweis: Diese Funktion unterscheidet sich zu apps.get() und apps.getList(). apps.get() und apps.getList() geben null zurück wenn kein Eintrag im Config-Cookie vorhanden ist. apps.getListAllData() allerdings nicht.

/** * @param {function} callback * Callback Function with 1 variable containing list * @return {object} * Returns all data from Config-File as JSON Object */ // Method 1 var list = window.GCM.apps.getListAllData(); // Method 2 window.GCM.apps.getListAllData(function(list){});

Ein Beispiel, welche Daten zurückgegeben werden:

{ "gentics": { "label": "Gentics", "value": true, "protected": true, "description": "Others", "date": 1524747304135, "cookies": { "PHPSESSID": { "label": "PHP Session ID", "description": "Automatically created Cookie.", "catid": "essential", "appid": "gentics", "category": { "id": "essential", "label": "Essential" } }, "cookiesAllowed": { "label": "Cookie Hinweis", "description": "Will be set, when the cookie banner gto accepted.", "catid": "others", "appid": "gentics", "category": { "id": "others", "label": "Others" } } } } }

set

Funktion zum Setzen eines Werts für eine einzige App. Wird nur im RAM gespeichert, kann allerdings mit settings.save() gespeichert werden.

/** * @param {string} name * App ID * @param {boolean} value * New value as boolean * @return {boolean} * Returns true if successful, false if not */ window.GCM.apps.set(name,value);

setAndSave

Funktion zum Setzen eines Werts für eine einzige App. Der Wert wird sofort im Settings-Cookie gespeichert. Es wird allerdings nur ein Wert für diese Applikation gespeichert und nicht für alle.

/** * @param {string} name * App ID * @param {boolean} value * New value as boolean * @return {boolean} * Returns true if successful, false if not */ window.GCM.apps.setAndSave(name,value);

setAll

Funktion zum Setzen eines Werts für eine alle Apps. Wird nur im RAM gespeichert, kann allerdings mit settings.save() gespeichert werden.

/** * @param {boolean} value * New value as boolean * @return {boolean} * Returns true if successful, false if not */ window.GCM.apps.setAll(value);

setAllAndSave

Funktion zum Setzen eines Werts für eine alle Apps. Der Wert wird sofort im Settings-Cookie gespeichert. Es wird allerdings nur ein Wert für diese Applikation gespeichert und nicht für alle.

/** * @param {boolean} value * New value as boolean * @return {boolean} * Returns true if successful, false if not */ window.GCM.apps.setAllAndSave(value);

setList

Funktion zum Setzen eines Werts für eine Key Value Liste. Wenn eine App ID übergeben wird, welche nicht existiert. Wird nur im RAM gespeichert, kann allerdings mit settings.save() gespeichert werden.

/** * @param {object} list * Key Value List with new values * Key: App ID, Value: new value as boolean * @return {boolean} * Returns true if successful, false if not */ window.GCM.apps.setList(list);

setListAndSave

Funktion zum Setzen eines Werts für eine Key Value Liste. Wenn eine App ID übergeben wird, welche nicht existiert. Der Wert wird sofort im Settings-Cookie gespeichert. Es wird allerdings nur ein Wert für diese Applikation gespeichert und nicht für alle.

/** * @param {object} list * Key Value List with new values * Key: App ID, Value: new value as boolean * @return {boolean} * Returns true if successful, false if not */ window.GCM.apps.setListAndSave(list);

loadScript

LoadScript lädt eine Script File nach, wenn die übergebene App vom User freigegeben wurde.

Optional: Es kann eine Callback-Funktion übergeben werden, welche nach dem erfolgreichen Laden ausgeführt wird.

/** * @param {string} name * App ID * @param {string} url * URL to script file * @param {function} callback * Callback Function which, when provided, is called after sucessfully loading the script file * @return {boolean} * Returns true if successful, false if not */ window.GCM.apps.loadScript(name,url,callback);

whenAllowed

WhenAllowed wird sowohl beim ersten Aufruf, als auch beim Ändern einer Applikation auf true ausgfeührt. Dies bedeutet, dass WhenAllowed auch für Analytics Applikationen verwendet werden kann.

Anwendungsbeispiel: Ein neuer User kommt auf eine Seite. Google Analytics wurde deaktiviert. Der User bestätigt die Cookies mit einem klick auf "Alle bestätigen". Somit kann GA nachgeladen werden. Wird GA über WhenAllowed eingebunden, wird GA sobald der User den Button geklickt hat, nachgeladen.

Information: Die Callback Funktionen werden bei jeder Save Funktion überprüft und, wenn erlaubt, ausgeführt. So z.B. bei settings.save() oder apps.setAndSave() usw.

/** * @param {string} name * App ID * @param {function} callback * Callback Function which, will be executed when app is allowed * @return {boolean} * Returns true if allowed, false if not */ window.GCM.apps.whenAllowed(name,callback);

whenDeclined

WhenDeclined wird sowohl beim ersten Aufruf, als auch beim Ändern einer Applikation auf false ausgfeührt. Grundsätzlich das Gegenteil von WhenDeclined.

/** * @param {string} name * App ID * @param {function} callback * Callback Function which, will be executed when app is declined * @return {boolean} * Returns true if allowed, false if not */ window.GCM.apps.whenDeclined(name,callback);

Groups Klasse

Mit Groups können Applikationen gebündelt werden. Dadurch wird es ermöglicht, allen Applikationen in einer Group gleichzeitig einen Wert zuzuweisen.

Informationen zur Konfiguration von Groups finden Sie im Bereich Konfiguration.

Information:

protected: Protected wird auf true gesetzt, wenn eine der Applikationen in der Group protected auf true gesetzt hat.

value: Value ist true wenn nur eine Applikation in der Group den Wert true hat. Sind alle Applikationen in der Group auf false, hat auch die Group den Wert false.

get

Gibt das Group Object zur übergebenen Group ID zurück. Das Object enthält alle der Group zugewiesenen Applikationen.

/** * @param {function} name * ID of group * @param {function} callback * Callback Function with 1 variable containing list * @return {object} * Returns all data from Config-File as JSON Object */ // Method 1 var list = window.GCM.groups.get(name); // Method 2 window.GCM.groups.get(name, function(group){});

getList

GetList gibt eine Liste aller Groups zurück. Die einzelnen Groups beinhalten die ihnen zugewiesenen Apps.

Hinweis: Diese Funktion ist ähnlich wie apps.getListAllData(). Es werden die Werte, wenn noch nicht im COnfig-Cookie vorhanden, aus der Config File übernommen. Weiter Infos im Bereich apps.getListAllData() im Punkt Hinweis

/** * @param {function} callback * Callback Function with 1 variable containing list * @return {object} * Returns all data from Config-File as JSON Object */ // Method 1 var list = window.GCM.groups.getList(); // Method 2 window.GCM.groups.getList(function(list){});

Beispiel der zurückgegebenen Daten:

{ "essential": { "description": "Diese Cookies sind für die grundlegenden Funktionen der Website erforderlich und können nicht deaktiviert werden.", "label": "Essentielle Cookies", "apps": { "php": { "label": "PHP", "value": true, "protected": true, "description": "Andere", "groupid": "essential", "date": 1527021726227, "cookies": { "PHPSESSID": { "label": "Session Identifier", "description": "Behält während der Browsersession die Zustandsdaten des Benutzers für alle Seitenanfragen der Website hinweg.", "appid": "php" } } } }, "protected": true, "value": true }, "functional": { "description": "Diese Cookies dienen dazu die Funktionalität der Website für Sie zu verbessern bzw. zu erweitern.", "label": "Funktionelle Cookies", "apps": { "gcm": { "label": "Consent Management", "value": true, "protected": false, "description": "Andere", "groupid": "functional", "date": 1527022465265, "cookies": { "gcmdata": { "label": "Gentics Consent Manager Data", "description": "Speichert die eigenen Cookie-Präferenzen.", "appid": "gcm" } } } }, "protected": false, "value": true } }

set

Funktion zum Setzen eines Werts für eine ganze App-Group. Es werden also die Werte aller Apps in einer Group gesetzt. Wird nur im RAM gespeichert, kann allerdings mit settings.save() gespeichert werden.

/** * @param {string} name * App ID * @param {boolean} value * New value as boolean * @return {boolean} * Returns true if successful, false if not */ window.GCM.groups.set(name, value);

setAndSave

Funktion zum Setzen eines Werts für eine eine ganze App-Gruppe. Es werden also die Werte aller Apps in einer Groupgesetzt. Der Wert wird sofort im Settings-Cookie gespeichert.

/** * @param {string} name * App ID * @param {boolean} value * New value as boolean * @return {boolean} * Returns true if successful, false if not */ window.GCM.groups.setAndSave(name, value);

Categories Klasse

Die Categories Klasse ist veraltet. Bitte diese nicht mehr verwenden.

In der Konfigurations Datei müssen keine Categories mehr angegben werden.

Mit Categories wurden Cookies gebündelt. Um Applikationen zu Bündel, bitte wechseln Sie in den Groups Teil.

getList

GetList gibt eine Liste aller Kategorien zurück. Die einzelnen Kategorien beinhalten die ihnen zugewiesenen Cookies.

/** * @return {object} * Returns a JSON Object with all categories containing cookies */ window.GCM.categories.getList();

Ein Beispiel für die zurückgegebenen Daten der Funktion:

{ "essential": { "id": "essential", "label": "Notwendig", "cookies": { "PHPSESSID": { "label": "PHP Session ID", "description": "Automatisch angelegtes Cookie vom Web Server.", "catid": "essential", "appid": "gentics", "category": { "id": "essential", "label": "Notwendig" } } } }, "analytics": { "id": "analytics", "label": "Analyse und Marketing", "cookies": { "_ga": { "label": "Google Analytics User Cookie", "description": "Wird verwendet um den Nutzer zu bestimmen.", "catid": "analytics", "appid": "google", "category": { "id": "analytics", "label": "Analyse und Marketing" } }, "_gid": { "label": "Google Analytics User Cookie", "description": "Wird verwendet um den Nutzer zu bestimmen.", "catid": "analytics", "appid": "google", "category": { "id": "analytics", "label": "Analyse und Marketing" } } } } }

getAppsList

Gibt eine Liste von Kategorie-Objekten zruück. Darin enthalten das Label der Kategorie und eine Liste der Apps.

/** * @return {object} * Returns a JSON Object with all categories containing apps */ window.GCM.categories.getAppsList();

Ein Beispiel für die zurückgegebenen Daten der Funktion:

{ "essential": { "label": "Notwendig", "apps": { "gentics": { "label": "Gentics", "value": true, "protected": true, "description": "Andere", "date": 1524819225883, "cookies": { "cookiesAllowed": { "label": "Cookie Hinweis", "description": "Wird gesetzt wenn der Cookie Hinweis bestätigt wurde.", "catid": "others", "appid": "gentics", "category": { "id": "others", "label": "Andere" } } } } } }, "analytics": { "label": "Analyse und Marketing", "apps": { "google": { "label": "Google", "value": true, "protected": false, "description": "Andere", "date": 1524819225883, "cookies": { "_ga": { "label": "Google Analytics User Cookie", "description": "Wird verwendet um den Nutzer zu bestimmen.", "catid": "analytics", "appid": "google", "category": { "id": "analytics", "label": "Analyse und Marketing" } }, "_gid": { "label": "Google Analytics User Cookie", "description": "Wird verwendet um den Nutzer zu bestimmen.", "catid": "analytics", "appid": "google", "category": { "id": "analytics", "label": "Analyse und Marketing" } } } } } } }

Settings Klasse

remove

Löscht das Settings Cookie bzw. den Eintrag aus dem Local Storage

/** * @return {boolean} * Returns true if successful, false if not */ window.GCM.settings.remove();

active

Überprüft, ob für jede Applikation in der Konfiguration auch ein Eintrag im Config-Cookie vorhanden ist. Sollte dies nicht der Fall sein, wird false zurückgegeben.

Anwendungsbeispiel: Der Benutzer hat nur 1. Cookie (über apps.setAndSave()) gespeichert oder noch keine Interaktion getätigt. settings.active() gibt also false zurück. Damit kann es perfekt verwendet werden, um den Cookie Banner anzuzeigen.

Hinweis: Um die Presets der Konfigurationsdatei in das Config-Cookie zu übernehmen, muss settings.save() ausgeführt werden.

/** * @return {boolean} * Returns true if settings were set, false if not */ window.GCM.settings.active();

configChanged

Gibt true zurück, wenn sich die Konfiguration geändert hat.

Anwendungsfall: Eine neue Applikation wird in die Konfiguration aufgenommen. Für diese Applikation existiert noch kein Eintrag im Config-Cookie. Dadurch wird bei apps.get(), auch wenn im Preset true definiert wurde, false zurückgegeben. Sie können dies ändern, indem Sie den Cookie-Banner erneut anzeigen und den User die Cookies erneut bestätigen lassen.

Anwendungsfall 2: Ein neues Cookie wurde zu einer Applikation hinzugefügt. Der User sollte darüber informiert werden. ConfigChanged gibt also true zurück.

Hinweis: settings.save() ausführen um die Presets zu übernehmen.

/** * @return {boolean} * Returns true if config has changed, false if not */ window.GCM.settings.configChanged();

setLang

Setzt den Language Code. Damit wird beim nächsten Aufrufen einer Get Funktion die gewählte Sprache zurückgegeben.

Achtung: Wird ein Seitenwechsel durchgeführt, geht diese Einstellung verloren.

/** * @param {string} lang * Language code, de, en, ... * @return {boolean} * Returns true successful, false if not */ window.GCM.settings.setLang(lang);

save

Speichert alle Cookies mit den Preset-Werten in das Config-Cookie. Wurden davor schon Änderungen an einer Applikation z.B. durch apps.set() durchgeführt, werden diese zuvor geänderten Werte natürlich übernommen.

/** * @return {boolean} * Returns true if successful, false if not */ window.GCM.settings.save();

Konfiguration

In diesem Bereich können Sie eine Beispielkonfiguration sehen und mehr über die Verwendung der Attribute erfahren.

Beispiel einer Config-File:

{ "cookies": { "PHPSESSID": { "label": "PHP Session ID", "description": { "de": "Automatisch angelegtes Cookie vom Web Server.", "en": "Automatically created Cookie." }, "appid": "gentics" }, "cookiesAllowed": { "label": "Cookie Hinweis", "description": { "de": "Wird gesetzt wenn der Cookie Hinweis bestätigt wurde.", "en": "Will be set, when the cookie banner gto accepted." }, "appid": "gentics" }, "_testCookie": { "label": "Test Cookie", "description": { "de": "Dies is nur ein Test.", "en": "This is just a test." }, "appid": "others" } }, "apps": { "gentics": { "label": "Gentics", "value": true, "protected": true, "description": { "de": "Andere", "en": "Others" } }, "youtube": { "label": "YouTube", "value": true, "protected": false, "description": { "de": "Andere", "en": "Others" } } }, "groups": { "essential": { "label": { "de": "Wichtige Cookies", "en": "Important Cookies" }, "description": { "de": "Wichtige Cookies", "en": "Important Cookies" } }, "extra": { "label": "Extra Cookies", "description": { "de": "Extra Cookies", "en": "Extra Cookies" } } } }
{ "PHPSESSID": { "label": "PHP Session ID", "description": { "de": "Automatisch angelegtes Cookie vom Web Server.", "en": "Automatically created Cookie." }, "catid": "essential", "appid": "gentics" } }
{ "PHPSESSID": { "label": { "de": "PHP Sitzungs ID", "en": "PHP Session ID" }, "description": { "de": "Automatisch angelegtes Cookie vom Web Server.", "en": "Automatically created Cookie." }, "catid": "essential", "appid": "gentics" } }

Label: Der Key im Description Objekt wird für die Sprachauswahl verwendet. Dieser kann frei gewählt werden, sollte allerdings einem ISO 639-1 Code entsprechen. Alternativ kann auch ein Label ohne Code definiert werden, bei z.B. Eigennamen.

Description: Der Key im Description Objekt wird für die Sprachauswahl verwendet. Dieser kann frei gewählt werden, sollte allerdings einem ISO 639-1 Code entsprechen.

Applikation

{ "gentics": { "label": "Gentics", "value": true, "protected": true, "description": { "de": "Andere", "en": "Others" } } }
{ "gentics": { "label": { "de": "Gentics", "en": "Gentics" }, "value": true, "protected": true, "description": { "de": "Andere", "en": "Others" } } }

Label: Der Key im Description Objekt wird für die Sprachauswahl verwendet. Dieser kann frei gewählt werden, sollte allerdings einem ISO 639-1 Code entsprechen. Alternativ kann auch ein Label ohne Code definiert werden, bei z.B. Eigennamen.

Value: Mit Value kann der vordefinierte Wert definiert werden. Wird ohne vorherige Interaktion durch den Nutzer bei erstmaligem Aufrufen der Seite ein settings.save() ausgeführt, wird das Value der Applikation direkt für den Nutzer übernommen.

Protected: Wird protected auf true gesetzt, kann der Wert für die Applikation nicht geändert werden. Für Applikationen welche protected aktiviert haben, liefert GCM immer den im Value definierten Wert zurück, auch wenn der Nutzer noch keine Cookies akzeptiert hat. Wurde protected erst zu einem späteren Zeitpunkt aktiviert, und ein Neuladen der Konfiguration ist nötig, wird beim Neuladen der Konfiguration der momentan vom User definierte Wert durch das Value aus der Konfiguration überschrieben.

Description: Der Key im Description Objekt wird für die Sprachauswahl verwendet. Dieser kann frei gewählt werden, sollte allerdings dem ISO 639-1 Code entsprechen.

Gruppe

Applikationen können nun Groups zugewiesen werden. Weiter Informationen dazu unter groups.getList()

{ "essential": { "label": "Wichtige Cookies", "description": { "de": "Wichtige Cookies", "en": "Important Cookies" } } }
{ "essential": { "label": { "de": "Wichtige Cookies", "en": "Important Cookies" }, "description": { "de": "Wichtige Cookies", "en": "Important Cookies" } }, }

Label: Der Key im Description Objekt wird für die Sprachauswahl verwendet. Dieser kann frei gewählt werden, sollte allerdings einem ISO 639-1 Code entsprechen. Alternativ kann auch ein Label ohne Code definiert werden, bei z.B. Eigennamen.

Description: Der Key im Description Objekt wird für die Sprachauswahl verwendet. Dieser kann frei gewählt werden, sollte allerdings einem ISO 639-1 Code entsprechen.

Kategorie

Kategorien sind veraltet und sollten nicht mehr verwendet werden.

{ "essential": { "label": "Essential", "description": { "de": "Notwendige Cookies", "en": "Essential Cookies" } } }
{ "essential": { "label": { "de": "Notwendig", "en": "Essential" }, "description": { "de": "Notwendige Cookies", "en": "Essential Cookies" } } }

Label: Der Key im Description Objekt wird für die Sprachauswahl verwendet. Dieser kann frei gewählt werden, sollte allerdings einem ISO 639-1 Code entsprechen. Alternativ kann auch ein Label ohne Code definiert werden, bei z.B. Eigennamen.

Begriffserklärungen