From 9485c2ba5a4ce3302a9cf76e3d0d0c98763c7243 Mon Sep 17 00:00:00 2001 From: SylvainLelievre Date: Thu, 18 Nov 2021 11:34:19 +0100 Subject: [PATCH] Gestion des cookies --- core/core.js.php | 63 ++++++++++++++++-------------------------- core/core.php | 53 ++++++++++++++++++++++++++--------- core/layout/common.css | 15 ++++++++-- core/layout/main.php | 23 +++++++-------- 4 files changed, 89 insertions(+), 65 deletions(-) diff --git a/core/core.js.php b/core/core.js.php index 0e082c80..289bb363 100644 --- a/core/core.js.php +++ b/core/core.js.php @@ -219,46 +219,31 @@ core.start = function() { } }); - /** - * Message sur l'utilisation des cookies + /** + * Traitement du formulaire cookies */ - var analytics = ""; - if (getData(['config', 'seo', 'analyticsId'])); ?>) { - analytics = ' grâce au cookie Google Analytics' - } - if(getData(['config', 'cookieConsent'])); ?>) { - if(document.cookie.indexOf("ZWII_COOKIE_CONSENT") === -1) { - $("body").append( - $("
").attr("id", "cookieConsent").append( - $("").html("

Ce site utilise des cookies pour assurer l'authentification, améliorer l'expérience utilisateur"+analytics+".
En cliquant sur ”J’accepte”, vous acceptez l’utilisation de ces cookies.

"), - $("") - .attr("id", "cookieConsentConfirm") - .text("Accepter") - .on("click", function() { - // Créé le cookie d'acceptation - var expires = new Date(); - expires.setFullYear(expires.getFullYear() + 1); - expires = "expires=" + expires.toUTCString(); - document.cookie = "ZWII_COOKIE_CONSENT=true;" + expires; - // Ferme le message - $(this).parents("#cookieConsent").fadeOut(); - }), - $("") - .attr("id", "cookieConsentRefuse") - .text("Refuser") - .on("click", function() { - // Créé le cookie d'acceptation - var expires = new Date(); - expires.setFullYear(expires.getFullYear() + 1); - expires = "expires=" + expires.toUTCString(); - document.cookie = "ZWII_COOKIE_CONSENT=false;" + expires; - // Ferme le message - $(this).parents("#cookieConsent").fadeOut(); - }), - ) - ); - } - } + $("#cookieForm").submit(function(event){ + const ga = document.getElementById('googleAnalytics'); + var samesite = "samesite=lax"; + var expires = new Date(); + expires.setFullYear(expires.getFullYear() + 1); + expires = "expires=" + expires.toUTCString(); + // Crée le cookie d'acceptation Google Analytics si nécessaire + getData(['config', 'seo', 'analyticsId']);?> + + if(ga.checked){ + document.cookie = "ZWII_COOKIE_GA_CONSENT=true;" + expires +";"+ samesite; + } + else{ + document.cookie = "ZWII_COOKIE_GA_CONSENT=false;" + expires +";"+ samesite; + } + + document.cookie = "ZWII_COOKIE_CONSENT=true;" + expires +";"+ samesite; + }); + $(".cookieBox .cookieClose").on("click", function() { + $(this).parents("#cookieConsent").fadeOut(); + }); + /** * Choix de page dans la barre de membre */ diff --git a/core/core.php b/core/core.php index d8aa6352..b89645b5 100644 --- a/core/core.php +++ b/core/core.php @@ -473,7 +473,7 @@ class common { */ public function getPage($page, $lang) { - // Le nom de la ressource et le fichier de contenu sont définis : + // Le nom de la ressource et le fichier de contenu sont définis : if ( $this->getData(['page', $page, 'content']) !== '' && file_exists(self::DATA_DIR . $lang . '/content/' . $this->getData(['page', $page, 'content'])) @@ -482,14 +482,14 @@ class common { return file_get_contents(self::DATA_DIR . $lang . '/content/' . $this->getData(['page', $page, 'content'])); } else { return 'Aucun contenu trouvé.'; - } + } } /** * Ecrire les données de la page * @param string pageId - * @param string contenu de la page + * @param string contenu de la page * @param return nombre d'octets écrits ou erreur */ public function setPage($page, $value, $lang) { @@ -953,7 +953,7 @@ class common { } else { file_put_contents('robots.txt','User-agent: *' . PHP_EOL . 'Disallow: /'); } - + // Submit your sitemaps to Google, Yahoo, Bing and Ask.com if (empty ($this->getData(['config','proxyType']) . $this->getData(['config','proxyUrl']) . ':' . $this->getData(['config','proxyPort'])) ) { $sitemap->submitSitemap(); @@ -1173,7 +1173,7 @@ class common { */ public function showAnalytics() { if( !empty($code = $this->getData(['config', 'seo', 'analyticsId'])) && - $this->getInput('ZWII_COOKIE_CONSENT') === 'true') { + $this->getInput('ZWII_COOKIE_GA_CONSENT') === 'true') { echo '