add cookie stuff

This commit is contained in:
Frédéric Péters 2015-05-28 15:45:59 +02:00
parent e10debd018
commit f78d09ae3f
1 changed files with 93 additions and 1 deletions

View File

@ -241,8 +241,100 @@
</script>
<script>
gaProperty = '';
// Désactive le tracking si le cookie dOpt-out existe déjà.
var disableStr = 'ga-disable-' + gaProperty;
if (document.cookie.indexOf('hasConsent=false') > -1) {window[disableStr] = true;}
//Cette fonction retourne la date dexpiration du cookie de consentement
function getCookieExpireDate() {
var cookieTimeout = 34214400000;// Le nombre de millisecondes que font 13 mois
var date = new Date();
date.setTime(date.getTime()+cookieTimeout);
var expires = "; expires="+date.toGMTString();
return expires;
}
// Cette fonction est appelée pour afficher la demande de consentement
function askConsent(){
var bodytag = document.getElementsByTagName('body')[0];
var div = document.createElement('div');
div.setAttribute('id','cookie-banner');
div.setAttribute('width','70%');
// Le code HTML de la demande de consentement. Vous pouvez modifier le contenu ainsi que le style
div.innerHTML = '<div style="border-color:#f8c253;border-bottom:1px solid #ccc;background:#fefbc0;color:#C09853;padding:5px 0px 5px;font-size:13px;text-align:center">En poursuivant votre navigation sur ce site, vous acceptez lutilisation de cookies à des fins de mesure d\'audience. <a href="javascript:closeMessage()">Accepter le suivi</a> / <a href="javascript:gaOptout()">M\'opposer au suivi</a> <button type="button" style="float: right;font-size: 21px;font-weight: 700;line-height: 1;color: #000;text-shadow: 0 1px 0 #fff;opacity: .2;filter: alpha(opacity=20);padding: 0;cursor: pointer;background: 0;border: 0;-webkit-appearance: none;top: -2px;right: 10px;position: relative;" onclick="javascript:closeMessage()" title="Utiliser ce bouton signifie acceptation du suivi">×</button></div>';
//.
//<a href="javascript:gaOptout()">
// Ajoute la bannière juste au début de la page
bodytag.insertBefore(div,bodytag.firstChild);
document.getElementsByTagName('body')[0].className+=' cookiebanner';
}
function closeMessage(){
var div = document.getElementById('cookie-banner');
/* closing the message is accepting */
document.cookie = 'hasConsent=true; '+ getCookieExpireDate() +' ; path=/';
div.style.display = 'none';
}
// Retourne la chaine de caractère correspondant à nom=valeur
function getCookie(NomDuCookie) {
if (document.cookie.length > 0) {
begin = document.cookie.indexOf(NomDuCookie+"=");
if (begin != -1) {
begin += NomDuCookie.length+1;
end = document.cookie.indexOf(";", begin);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(begin, end));
}
}
return null;
}
// Fonction d'effacement des cookies
function delCookie(name ) {
path = ";path=" + "/";
domain = ";domain=" + "."+document.location.hostname;
var expiration = "Thu, 01-Jan-1970 00:00:01 GMT";
document.cookie = name + "=" + path + domain + ";expires=" + expiration;
}
// Efface tous les types de cookies utilisés par Google Analytics
function deleteAnalyticsCookies() {
var cookieNames = ["__utma","__utmb","__utmc","__utmz","_ga"]
for (var i=0; i<cookieNames.length; i++)
delCookie(cookieNames[i])
}
// La fonction d'opt-out
function gaOptout() {
document.cookie = disableStr + '=true;'+ getCookieExpireDate() +' ; path=/';
document.cookie = 'hasConsent=false;'+ getCookieExpireDate() +' ; path=/';
var div = document.getElementById('cookie-banner');
// Ci dessous le code de la bannière affichée une fois que l'utilisateur s'est opposé au dépôt
// Vous pouvez modifier le contenu et le style
if ( div!= null ) div.innerHTML = '<div id="cookie-refusal" style="border-color:#f8c253;border-bottom:1px solid #ccc;background:#fefbc0;color:#C09853;padding:5px 0px 5px;font-size:13px;text-align:center"> Vous vous êtes opposé \
au dépôt de cookies de mesures d\'audience dans votre navigateur. </div>'
window.setTimeout(function() { document.getElementById('cookie-refusal').style.display = 'none'; return true; }, 5000);
window[disableStr] = true;
deleteAnalyticsCookies();
}
//Ce bout de code vérifie que le consentement n'a pas déjà été obtenu avant d'afficher la baniére
var consentCookie = getCookie('hasConsent');
if (!consentCookie) {//L'utilisateur n'a pas encore de cookie de consentement
var referrer_host = document.referrer.split('/')[2];
if ( referrer_host != document.location.hostname ) { //si il vient d'un autre site
//on désactive le tracking et on affiche la demande de consentement
window[disableStr] = true;
window.onload = askConsent;
} else { //sinon on lui dépose un cookie
document.cookie = 'hasConsent=true; '+ getCookieExpireDate() +' ; path=/';
}
}
</script>
<!-- Piwik -->
<script type="text/javascript">
if (consentCookie) {
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
@ -253,8 +345,8 @@
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
}
</script>
<noscript><p><img src="//piwik.monitoring.entrouvert.org/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
</body>