ldc-web-cookie-notice/examples/wordpress/cn-cookies.php
Vincent BRIDIER 878f458980 Merge branch 'ts-1713' into 'main'
fix: 🆎 replace space by html symbol

See merge request ldc-web/projets/ldc-web-cookie-notice!12
2024-09-17 15:27:45 +00:00

237 lines
8.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
$site_name = get_bloginfo('name');
$logo_picture_url = get_stylesheet_directory_uri() . '/assets/images/logo-mr.png';
$logo_alt_text = "Logo " . $site_name;
$logo_title_text = "Logo " . $site_name;
$strings = (object)[
'modal_title' => 'Fenêtre de gestion de cookies',
'button_customize_cookies' => 'Personnaliser les cookies',
'button_close_cookies' => 'Fermer la fenêtre des cookies',
'button_title_open_new_tab' => 'Ouvrir le lien dans un nouvel onglet',
'button_toggle_cookie' => 'Autoriser ou refuser',
'button_forbid_all' => strtoupper('Tout refuser'),
'button_allow_all' => strtoupper('Tout accepter'),
'button_customize' => strtoupper('Personnaliser'),
'button_forbid_all_title' => 'Refuser tous les cookies et fermer le panneau des cookies',
'button_allow_all_title' => 'Accepter tous les cookies et fermer le panneau des cookies',
'button_validate_and_close' => strtoupper('Autoriser ou refuser'),
'banner_title' => 'Le site internet ' . $site_name . ' utilise des cookies' . html_entity_decode('&nbsp;') . '!',
'banner_text' => 'Nous utilisons des cookies pour nous assurer du bon fonctionnement de notre site et à des fins analytiques.
Vous pouvez changer d\'avis à tout moment en cliquant sur l\'icône présente sur chaque page de notre site.
En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l\'utilisation de technologies de suivi nécessaires à leur bon fonctionnement.',
'panel_content' => 'Contenu du panneau des cookies',
'picture_cookie_title' => 'Image d\'un bon gros cookie',
'navigation_title' => 'Navigation du panneau des cookie'
];
$cookies = [];
// YOUTUBE
$cookies['youtube'] = [
'name' => 'VIDEOS - Youtube',
'description' => 'Les cookies déposés via les services de partage de vidéo ont pour finalité de permettre à
l’utilisateur de visionner directement sur le site le contenu multimédia.',
'link' => 'https://policies.google.com/technologies/cookies?hl=fr&utm_source=ucb',
'labelLink' => 'En savoir +',
'cookies' => ['NID', 'VISITOR_INFO1_LIVE', 'YSC']
];
$cookies['youtube']['script'] = <<<SCRIPT
function () {
let youtubeVids = document.getElementsByClassName('cn-youtube');
for (let item of youtubeVids) {
let id = item.dataset.id;
let e = document.createElement('iframe');
e.src = "https://www.youtube.com/embed/" + id;
e.width = "640";
e.height = "360";
e.frameBorder = "0";
e.allow = "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture";
e.allowFullscreen = true;
item.innerHTML = "";
item.appendChild(e);
}
}
SCRIPT;
$cookies['youtube']['fallback'] = <<<FALLBACK
function () {
let youtubeVids = document.getElementsByClassName('cn-youtube');
for (let item of youtubeVids) {
let a = document.createElement('a');
a.innerText = 'Autoriser';
a.classList.add('cn-cookie-link');
a.setAttribute('role', 'button');
a.onclick = function () {
WebCookieNotice.openCookieModalToCookiePage();
};
let e = document.createElement('p');
e.innerHTML = 'Youtube est désactivé. ';
item.innerHTML = "";
e.appendChild(a);
item.appendChild(e);
}
}
FALLBACK;
// VIMEO
$cookies['vimeo'] = [
'name' => 'VIDEOS - Vimeo',
'description' => 'Les cookies déposés via les services de partage de vidéo ont pour finalité de permettre à
l’utilisateur de visionner directement sur le site le contenu multimédia.',
'link' => 'https://vimeo.com/cookie_policy',
'labelLink' => 'En savoir +',
'cookies' => ['NID', 'VISITOR_INFO1_LIVE', 'YSC']
];
$cookies['vimeo']['script'] = <<<SCRIPT
function () {
let vimeoVids = document.getElementsByClassName('cn-vimeo');
for (let item of vimeoVids) {
let id = item.dataset.id;
let e = document.createElement('iframe');
e.src = "https://player.vimeo.com/video/" + id;
e.width = "640";
e.height = "360";
e.frameBorder = "0";
e.allow = "autoplay; fullscreen; picture-in-picture";
e.allowFullscreen = true;
item.innerHTML = "";
item.appendChild(e);
}
}
SCRIPT;
$cookies['vimeo']['fallback'] = <<<FALLBACK
function () {
let vimeoVids = document.getElementsByClassName('cn-vimeo');
for (let item of vimeoVids) {
let a = document.createElement('a');
a.innerText = 'Autoriser';
a.classList.add('cn-cookie-link');
a.setAttribute('role', 'button');
a.onclick = function () {
WebCookieNotice.openCookieModalToCookiePage();
};
let e = document.createElement('p');
e.innerHTML = 'Vimeo est désactivé. ';
item.innerHTML = "";
e.appendChild(a);
item.appendChild(e);
}
}
FALLBACK;
// RECAPTCHA
$cookies['recaptcha'] = [
'name' => 'API - reCAPTCHA',
'description' => 'Les cookies qui sont déposés via le recaptcha sur les formulaires ont pour
finalité d\'empêcher que ceux-ci ne soient soumis par des robots.',
'link' => 'https://policies.google.com/privacy',
'labelLink' => 'En savoir +',
'cookies' => ['NID', '__Secure-3PAPISID', '__Secure-3PSID', '__Secure-3PSIDCC']
];
$cookies['recaptcha']['script'] = <<<SCRIPT
function () {
if (window.__CN_Recaptcha) {
window.__CN_Recaptcha();
}
}
SCRIPT;
// ANALYCTICS
$cookies['analytics'] = [
'name' => 'MESURES D’AUDIENCE' . ' - Google Analytics',
'description' => 'Les cookies qui sont déposés via le recaptcha sur les formulaires ont pour finalité
d’empêcher que ceux-ci ne soient soumis par des robots.',
'link' => 'https://policies.google.com/privacy',
'labelLink' => 'En savoir +',
'cookies' => [
'_ga',
'_gat_gtag_G_GVRHBCHE09',
'_gid'
]
];
$cookies['analytics']['script'] = <<<SCRIPT
function () {
(function (d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
g.src = 'https://www.googletagmanager.com/gtag/js?id=G-GVRHBCHE09';
g.id = 'analytics';
s.parentNode.insertBefore(g, s)
}(document, 'script'));
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-GVRHBCHE09');
}
SCRIPT;
// MATOMO
$cookies['matomo'] = [
'name' => 'Matomo',
'description' => 'Les services de mesure d\'audience permettent de générer des statistiques de fréquentation utiles à l\'amélioration du site.',
'link' => 'https://fr.matomo.org/gdpr-analytics/',
'labelLink' => 'En savoir +',
'cookies' => ['_pk']
];
$cookies['matomo']['script'] = <<<SCRIPT
function () {
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//yl.s-web.fr/";
_paq.push(['setTrackerUrl', u+'rainbow']);
_paq.push(['setSiteId', '
SCRIPT;
$cookies['matomo']['script'] .= MATOMO_SITE_ID;
$cookies['matomo']['script'] .= <<<SCRIPT
']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'unicorn'; s.parentNode.insertBefore(g,s);
})();
}
SCRIPT;
?>
<?php include('cookie-notice-templates/standard.php'); ?>
<script nonce="{{ $nonce ?? '' }}">
document.addEventListener('DOMContentLoaded', function() {
window.WebCookieNotice = {};
<?php foreach ($cookies as $index_name => $cookie) { ?>
window.WebCookieNotice['<?= $index_name; ?>'] = {};
window.WebCookieNotice['<?= $index_name; ?>'].tmp = {};
// SCRIPT
window.WebCookieNotice['<?= $index_name; ?>'].tmp.script =
<?= strip_tags($cookie['script']); ?>;
<?php unset($cookie['script']); ?>
// FALLBACK
<?php if (isset($cookie['fallback'])) { ?>
window.WebCookieNotice['<?= $index_name; ?>'].tmp.fallback =
<?= strip_tags($cookie['fallback']); ?>;
<?php unset($cookie['fallback']); ?>
<?php } ?>
window.WebCookieNotice['<?= $index_name; ?>'].conf = <?= json_encode($cookie); ?>;
window.WebCookieNotice['<?= $index_name; ?>'].conf.script =
window.WebCookieNotice['<?= $index_name; ?>'].tmp.script;
window.WebCookieNotice['<?= $index_name; ?>'].conf.fallback =
window.WebCookieNotice['<?= $index_name; ?>'].tmp.fallback;
window.WebCookieNotice['<?= $index_name; ?>'] =
window.WebCookieNotice['<?= $index_name; ?>'].conf;
<?php } ?>
window.WebCookieNotice = new CookieNotice(window.WebCookieNotice);
});
</script>