cibc : bannière d’avertissement pour les cookies

L’objectif de ce plugin est d’informer l’utilisateur et de recueillir son consentement (ou son refus) sur l’utilisation par le site de cookies de mesure d’audience.

Les objectifs de ce plugin

Le premier objectif de ce plugin est d’informer l’utilisateur et de recueillir son consentement (ou son refus) sur l’utilisation par le site de cookies de mesure d’audience (par exemple Google Analytics, Xiti, etc.).

Pour en savoir plus : délibération de la CNIL n° 2013-378 et des contrôles à partir du mois d’octobre.

ATTENTION : CIBC concerne uniquement les cookies de mesure d’audience.
Remarque : Pour gérer les différentes fonctionnalités déposant des cookies (vidéos de youtube, vidéos de Dailymotion, publicités, boutons sociaux, autres modules insérés sur les pages de votre site) il est possible d’utiliser une solution de gestion de tag. Pour en savoir plus : solutions de gestion de tag.

Le second objectif de ce plugin est d’offrir des solutions pour désactiver, le cas échéant, les cookies en question.

Le troisième objectif de ce plugin est d’offrir une bannière totalement configurable en termes de comportement, de contenu et d’apparence, avec en particulier le choix entre plusieurs feuilles de style (et la possibilité d’ajouter des feuilles de style).

Le quatrième objectif est d’offrir une compatibilité avec :

  • les différentes versions de SPIP
  • le responsive web design
  • les sites qui n’utilisent pas la balise #INSERT_HEAD sur le site public
  • le multilinguisme

Compatibilité

CIBC version 1.8 est compatible avec SPIP 3.0, 3.1, 3.2, 4.0, 4.1, 4.2.
CIBC version 1.8 est compatible avec PHP 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1.

Pourquoi un plugin supplémentaire sur ce sujet ?

Les principales différences avec les autres plugins sur ce sujet sont les suivantes :

  • Le mode de désactivation des cookies est configurable.
  • Le comportement de la bannière est configurable.
  • Le plugin offre le choix entre 10 feuilles de style (et la possibilité d’en ajouter).
  • Le plugin est compatible avec SPIP 2.1 (sans devoir ajouter d’autres plugins), avec SPIP 3.0 et avec SPIP 3.2.
  • Etc.

Remarque : le plugin CIBC a été élaboré avant la publication des autres plugins sur ce sujet.

Fonctionnalités

Les fonctionnalités sont détaillées dans la document PDF ci-joint.

Un choix entre 10 feuilles de style

Le plugin offre le choix entre 10 feuilles de style, via une liste déroulante dans la page de configuration du plugin (et il est possible d’ajouter des feuilles de style).

En bas fond noir (ou bien en haut) :

En bas fond clair (ou bien en haut) :

En bas au centre :

En bas à droite :

En bas fond bleu (ou bien en haut) :

En bas fond blanc (ou bien en haut) :

Remarque : si la largeur de l’écran est réduite (par exemple à environ 300 pixels), la bannière s’adapte automatiquement.

Le contenu de la bannière est configurable

On peut renseigner le texte, avec les mêmes possibilités de mise en forme que le texte d’un article. Le texte peut contenir de liens, etc. Le texte peut utiliser les blocs multilingues de SPIP.

On peut afficher ou non, les boutons suivants :
-  En savoir plus
-  Accepter
-  Refuser

L’adresse de la page qui devra s’afficher lorsque l’on cliquera sur le bouton « En savoir plus » est configurable.

Par exemple, on peut choisir de n’afficher aucun bouton et de mettre un lien dans le texte :

Le comportement de la bannière est configurable

On peut choisir le comportement de la bannière :

  • La poursuite de la navigation vaut acceptation.
  • Ou bien la poursuite de la navigation ne vaut pas acceptation.
  • Ou bien la bannière disparaît après 10 secondes et la poursuite de la navigation vaut acceptation.

On peut choisir le mode de désactivation des cookies :

  • La page « En savoir plus » ou « Refuser » indique comment désactiver les cookies.
  • Désactiver la pose de cookies dans l’attente de l’acceptation (1).
  • Désactiver la pose de cookies lors du refus (1).

(1) Nécessite une adaptation légère de certains squelettes, qui est décrite à l’annexe 4.4 de la documentation.

Le plugin permet de choisir la durée (en jours) du cookie qui enregistre le refus ou l’acceptation du visiteur (au plus 395 jours soit 13 mois).

Le plugin permet de choisir si on souhaite ou non afficher l’avertissement pour les cookies aux auteurs authentifiés.

Exemple d’adaptation de squelette si on utilise Google Analytics

Dans le ou les squelettes qui contiennent le code javascript de Google Analytics (seul un extrait du code figure) :

<script>
 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;…
 (…)
 })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 ga('create', 'UA-…', '…');
 ga('send', '…');
</script>

Il convient de conditionner ce script javascript avec le test suivant :

if (typeof cibcOptOut != 'function' || cibcOptOut()!="oui"){
… le script tiers …
}

C’est-à-dire pour Google Analytics (seul un extrait du code figure) :

<script>
if (typeof cibcOptOut != 'function' || cibcOptOut()!="oui"){

 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;…
 (…)
 })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 ga('create', 'UA-…', '…');
 ga('send', '…');

}
</script>

Attention :
a) Dans le cas où le code javascript de Google Analytics figure entre les balises <head> et </head>, il convient d’ajouter, avant le code javascript de Google Analytics, la ligne suivante :
[(#PLUGIN{cibc}|oui) #CIBC_AVERTISSEMENT ]
En effet, il faut que le code de Google Analytics figure après celui du plugin CIBC.
Si le plugin « Google Analytics » est utilisé, la ligne précitée doit figurer avant #INSERT_HEAD.

b) Dans le cas où l’on adapte les squelettes (cf. exemple ci-dessus), il est inutile de mettre des liens de désactivation dans la page « En savoir plus ».

En cas de problème

a) Vérifier la configuration du plugin (cf. documentation)

b) Adapter certains squelettes du site (cf. annexe 4.4 de la documentation).
Exemples :
cibc : bannière d’avertissement pour les cookies
cibc : bannière d’avertissement pour les cookies

c) S’assurer que le site charge une seule fois la librairie jquery
Exemples :
cibc : bannière d’avertissement pour les cookies
cibc : bannière d’avertissement pour les cookies

d) Si le style de la bannière ne convient pas, recopier dans le dossier "squelettes", du site, le fichier de style (sélectionné dans la configuration du plugin) cibc/_css/cibc...css et modifier cette copie.

Dernière version du plugin

Version 1.1 du plugin :
Ajout de la fonctionnalité suivante, qui concerne uniquement le cas où l’on a sélectionné le mode de désactivation des cookies "La page ’En savoir plus’ ou ’Refuser’ indique comment désactiver les cookies" et que l’on met des liens de désactivation dans l’article « En savoir plus » :
Si le texte de l’article « En savoir plus » contient <div id="cibcSavoirPlus"></div> alors même si l’URL de l’article « En savoir plus » évolue, le plugin pourra quand même l’identifier grâce au div précité.

La version du 08/12/14 de la documentation ajoute des exemples de configurations (au chapitre 3.7) et un tableau des avantages et inconvénients des différents modes de désactivation des cookies (au chapitre 3.5).

La version du 22/06/2021 apporte la compatibilité avec PHP 7.2, 7.3 et 7.4.

La version 1.6 apporte la compatibilité avec SPIP 4.0.

La version 1.7 apporte la compatibilité avec PHP 8.0 et 8.1, ainsi que la compatibilité avec SPIP 4.1.

La version 1.8 apporte la compatibilité avec SPIP 4.2.

Discussion

27 discussions

  • 1

    Bonjour Équipement,

    J’ai vaguement l’impression d’un problème avec ce plugin dès que le site a des URLs arborescentes.
    Effectivement, il semble créer un cookie de consentement pour chaque path (chemin /rubrique/sous_rubrique/).

    Si l’option (étonnante par ailleurs) « la navigation vaut acceptation », est activée, et qu’on avait refusé les cookies sur une page, qu’on visite une autre page, il crée un nouveau cookie cibcConsent avec un autre path, de valeur oui.

    Je ne rêve pas ?

    • Bonjour,
      Le plugin CIBC n’a pas été testé avec des URLs arborescentes.
      Il est donc possible qu’il ne soit pas compatible avec des URLs arborescentes.
      Remarque : Il existe des alternatives, par exemple la librairie tarteaucitron.

    Répondre à ce message

  • 1
    les Sab

    Bonjour,

    Pour info, sous Spip 4.0.5, le plugin affiche l’erreur suivante :

    Notice : Undefined variable : script in /www/plugins/auto/cibc/inc/cibc_commun.php on line 131

    Répondre à ce message

  • 2

    Bonjour,

    en PHP 7.2 et 7.3 sur SPIP 3.3, l’enregistrement après modifs de la page /ecrire/?exec=cibc_config renvoie des erreurs :

    Warning: count(): Parameter must be an array or an object that implements Countable in xxx\ecrire\public\aiguiller.php on line 228
    Warning: count(): Parameter must be an array or an object that implements Countable in xxx\ecrire\public\aiguiller.php on line 242
    • Bonjour. La version 1.4.2 de CIBC, jointe à la présente page, devrait éviter ce message dans les logs sous PHP 7.2 et PHP 7.3.

    • merci pour la correction rapide. Le plugin est donc compatible SPIP 3.3.

    Répondre à ce message

  • 2

    En regardant les logs, je vois un message récurrent :

    Got error 'PHP message: PHP Notice: Undefined variable: script in /var/monsite/plugins/auto/cibc_141118/inc/cibc_commun.php on line 125\n'

    Je suis en PHP 7.1.29 et SPIP 3.2.5 [24404].

    Une piste ?

    • La version 1.4.1 de CIBC, jointe à la présente page, devrait éviter cette notice dans les logs sous PHP 7.1.

    • Merci pour la réactivité.
      J’ai installé la nouvelle version et je regarderai les logs un peu plus tard.
      Merci

    Répondre à ce message

  • Je suis l’auteur du plugin CIBC et j’attire l’attention sur le fait que CIBC concerne uniquement les cookies de mesure d’audience (par exemple Google Analytics, Xiti, etc.).

    Remarque : Pour gérer les différentes fonctionnalités déposant des cookies (vidéos de youtube, vidéos de Dailymotion, publicités, boutons sociaux, autres modules insérés sur les pages de votre site) il est possible d’utiliser une solution de gestion de tag. Pour en savoir plus : solutions de gestion de tag.

    Répondre à ce message

  • 2
    HirisBen

    Bonjour,
    Merci pour ce Plugin. Je suis en train de le tester, RGBD oblige... J’ai une question un peu bête et je m’en excuse par avance : Comment sait-on que ça marche et que les cookies sont effectivement refusés ?
    Pour moi, c’est surtout Google analytics et les réseaux sociaux (FB, Tweeter...) qui m’inquiètent.
    Merci de votre aide.

    • Pour vérifier qu’il n’y a pas d’envoi d’information au serveur de statistiques, une solution consiste à utiliser :
      -  sous Chrome : touche F12 et onglet « network »
      -  sous Firefox : touche F12 et onglet « network »

    • HirisBen

      Merci beaucoup Equipement ! C’est parfait ! ça fonctionne très bien. MERCI.

    Répondre à ce message

  • 8

    Bravo pour ce plugin plus que jamais d’actu et le plus complet de ceux que j’ai trouvé ;-)
    Je le teste depuis quelques temps, j’ai 2 difficultés (incompréhension peut-être) :
    -  1- Je n’ai jamais réussi à afficher sur la page « en savoir plus » le bandeau, les cookies se déposaient quelques soient les réglages du plugin sur cette seconde page de navigation. je pense avoir tout essayé 3 fois et lu fois la doc... bon j’ai contourné en ajoutant un javascript sur la page « en savoir plus », mais dommage que ça ne marche pas par défaut ou que je n’ai pas trouvé, c’est le fonctionnement demandé par la CNIL en effet : ne pas déposer dans ce cas.
    -  2- Surtout, lorsque le consentement est acté (l’internaute clique sur J’accepte" ou poursuit la navigation, le cookie cibcConsent est marqué à oui, normal... puis si on le supprime manuellement (ou avec un gestionnaire de cookies), et si on ne quitte pas le navigateur immédiatement avant de revoir une page du même site, le même cookie se recrée avec un paramètre à oui... Selon les directives de la CNIL il faudrait redemander le consentement. Là apparemment il y a une info persistante qui recrée le cookie sans autorisation... ?

    • Ah je ne suis pas fou... je constate la même chose !
      En plus de ces aspects les boutons se superposent chez moi et s’affichent hors du cadre.

      Pourrais-je savoir comment avez vous contourné les points évoqués ?

      Enfin si je choisis de refuser, eh bien le cookie est là en mode « non » et les autres cookies sont toujours là.... lol

    • sur le point 2 :
      j’ai fini par trouver qu’en fait c’est le comportement normal du plugin. dommage :-(

    • Je viens de rajouter le chapitre « En cas de problème » dans la présente page.

    • L’objectif du plugin est d’empêcher, le cas échéant, la collecte des statistiques. Pour cela, il convient de conditionner le script du marqueur de statistiques avec le test indiqué dans la documentation.
      Le rôle du plugin n’est pas de supprimer les cookies du marqueur de statistiques, mais d’empêcher l’envoi d’information au serveur de statistiques.

    • Tout à fait d’accord et compris.
      Mais si l’internaute consent, puis supprime ses cookies et poursuit la navigation (curieux peut-être, mais la CNIL fait ce genre de choses pour vérification), le plugin recrée le cookie, sans reposer la question.
      J’ai cru comprendre que c’était dans le cas où « la poursuite de la navigation valait consentement », et comme le plugin regarde l’historique de navigation pour vérifier cela sans chercher la présence d’un cookie... il suppose qu’il y a consentement et redépose le cookie à tort (à mon avis).

    • La documentation indique, au chapitre 3.5, que la configuration du plugin offre le choix entre plusieurs comportements :
      1) La poursuite de la navigation sur le site vaut acceptation.
      2) La poursuite de la navigation sur le site NE vaut PAS acceptation.
      3) L’avertissement disparaît après 10 secondes et la poursuite de la navigation vaut acceptation.

      Si l’on sélectionne « La poursuite de la navigation sur le site vaut acceptation », il est normal que la poursuite de la navigation soit considérée comme une acceptation.

      Si l’on sélectionne « La poursuite de la navigation sur le site NE vaut PAS acceptation », l’internaute pourra poursuivre sa navigation sur le site sans qu’elle soit considérée comme une acceptation.

    • Flute, on ne se comprend pas... :-(
      Ça n’a rien à voir avec la configuration, mais avec la conception.

      Dans le cas « 1) La poursuite de la navigation sur le site vaut acceptation », le javascript du plugin recrée un cookie s’il n’en trouve pas ET que l’on est sur la seconde page de navigation du site (ou plus, recherche page-1 dans l’historique de navigation).
      Il considère que le consentement est recueilli. Ce n’est pas toujours le cas, j’ai déjà expliqué plus haut que le problème arrive quand l’internaute supprime les cookies et poursuit sa navigation sur le même site ensuite.

      C’est un comportement erroné selon la CNIL que de considérer que si on est sur la seconde page on accepte le consentement lorsque que le cookie a été supprimé (dans ce cas il faudrait considérer que l’on recommence à 0 et reproposer le consentement) ; cette configuration « 1 » n’est donc pas conforme à 100%.

      Il faudrait trouver un autre moyen que de déposer un cookie d’office si on trouve le site dans l’historique de navigation en page-1, comme le fait le plugin. Une variable de session avec le consentement ? pas trouvé mais je ne suis pas fort en javascript.

      (Du coup je me suis tourné à regret vers la configuration « 2 », la n° « 3 » étant très limite à mon avis).

    • Je viens de joindre, à la présente page, la version 1.4 de CIBC (fichier cibc_180531.zip) afin, que lorsque CIBC est configuré avec « La poursuite de la navigation sur le site vaut acceptation », le test curieux en question soit satisfait.

    Répondre à ce message

  • Bonjour,
    très pratique, bravo, enfin une gestion vraiment légale des cookies ;-)

    juste une question : il est prévu un affichage différent sur la page "en savoir plus" des liens d’action accepter/refuser, si on a fait le choix « désactiver la pose du cookie dans l’attente de l’acceptation »...
    mais ça serait utile aussi dans les autres cas, pour rappeler aux visiteurs leurs choix ultérieurement. on peut faire ça en css ou autrement ?

    merci

    Répondre à ce message

  • 2
    Mia&Coline

    Bonjour,

    j’ai chargé le plugin sur notre site (http://www.ethnozootechnie.org/), mais la bannière ne s’affiche pas.
    Le site est sous spip 2.1.10 avec les squelettes giseh. Le plugin est paramétré comme dans le cas c) de la notice.

    Voyez-vous d’où vient le problème ?
    Merci d’avance.

    • Il convient de vérifier que le squelette noisettes/head.html contient bien :
      [(#PLUGIN{cibc}|oui) #CIBC_AVERTISSEMENT ]

      (sauf s’il contient déjà #INSERT_HEAD).

    • Mia&Coline

      Bonjour,
      merci. Après avoir rajouter cette ligne dans noisettes/head.html ça fonctionne.

      Si nous voulions utiliser les autres paramétrages est-ce dans ce même fichier qu’il faut rejouter #INSERT_HEAD ?

    Répondre à ce message

  • 2
    spipheure

    Bonjour

    J’utilise ce plugin sur les versions de SPIP 3.0 et il fonctionne très bien

    Pourriez vous le mettre à jour afin qu’il fonctionne avec SPIP 3.1

    Cordialement

    • Bonjour,
      Quels sont les problèmes constatés avec ce plugin CIBC sous SPIP 3.1 ?

    • spipheure

      Merci pour votre réponse.

      Finallement en modifiant dans le fichier paquet.xml
      la ligne compatibilite=« [3.1.0 ;] »

      cela fonctionne.

      Merci pour votre retour

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom