Tarteaucitron

Afin de mettre votre site en conformité au RGPD, si besoin, voici le portage pour SPIP de la solution de gestion de consentement aux cookies tarteaucitron.js.

Présentation du plugin

Tarteaucitron est un plugin permettant d’activer des services tiers qui eux mêmes nécessitent une demande de consentement auprès de vos internautes.

Les services tiers proposés par défaut sont :

  • Gtag (Global Site Tag, le ’nouveau’ script de suivi pour Google Analytics)
  • Google Maps
  • Facebook (pour activation des boutons de Like et Partage)
  • Facebook Pixel

Mais il est possible d’en proposer d’autres (Twitter, etc.). Voir à ce propos le paragraphe Ajouter de nouveaux services ci-dessous.

Un plugin deux en un

Pour chaque service activé, le plugin :

  1. insère le tag,
  2. gère le consentement des vos internautes à ce tag.
Note : ce plugin fait donc la même chose que Plugin Google analytics pour activer le tag Google Analytics, mais en plus il gère le consentement des vos internautes à ce service.

Affichage du bandeau de consentement

Il suffit d’activer un ou plusieurs services pour que automatiquement s’affiche le bandeau de consentement sur toutes les pages du site.

Bandeau de consentement

Une fois que l’internaute aura fait son choix de consentement, ce bandeau disparaîtra.

Si l’internaute clique sur le bouton “Personnaliser”, alors la fenêtre modale suivante s’ouvre.

Consentement : gestion des services au cas par cas

Prérequis et installation

Ce plugin a été écrit pour SPIP 3.2.

Il s’installe via le menu Configuration -> Gestion des plugins. (pour en savoir plus, voir Installer un plugin).

Configuration et activation

Certaines options de configuration sont disponibles quant à la façon dont s’affiche les demandes de consentements.

Configuration : options sur l’affichage du bandeau de consentement

Pour l’activation du ou des tags associé aux services, il faut en général fournir une clé ou un ID. Mais pas toujours, comme ici pour l’activation du Facebook Pixel.

Configuration : ajout des services

Dans le plupart des cas, l’activation depuis l’interface suffit. C’est par exemple le cas pour Google Analytics et Facebook Pixel.

Pour d’autres services, comme Facebook Like, il vous faudra également ajouter à vos squelettes le code idoine comme indiqué dans le documentation du service tiers.

Ajouter de nouveaux services

Comme il est dit plus haut, ce plugin intègre la libraire tarteaucitron.js. Cette librairie gère plusieurs dizaines de services.
Seuls 4 sont gérés ici, mais il est possible d’en ajouter de nouveaux.

Intégrer le code du service

Aller voir https://opt-out.ferank.eu/fr/install/ / Etape 3 : ajouter les services et intégrer le code proposé dans un fichier à placer dans le répertoire /services du plugin

Donner la possibilité d’activer ou non ce nouveau service

Il faut intégrer un nouveau champ de saisie correspondant à ce service et éventuellement à la clé correspondante dans le formulaire de déclaration des services.

Cette intégration se fait dans le fichier /formulaires/configurer_tarteaucitron_services.html du plugin.

Attention : il faut absolument faire correspondre l’attribut ‘name’ du nouveau champ et le nom du fichier placé dans /services.

N’hésitez pas à ajouter des services, les contributions sont les bienvenus !

Discussion

12 discussions

  • Une autre question.
    Les publicateurs de notre site web (les rédacteurs), utilisent parfois des iframe (par ex: youtube, GoogleMap, etc.). Or, TarteAuCitron souhaite qu’on remplace les iframe par des DIV dont la syntaxe st fournie dans leur documentation. Y’aurait-il un moyen d’automatiser la transformation ? J’ai quelques milliers d’articles et je n’ai pas envie de tous les parcourir à la recherche d’un iframe... Même avec une requête en BDD, ça pourrait retourner une grosse quantité d’articles à modifier à la main....

    Reply to this message

  • Super plugin ! TarteAuCitron a l’air d’être LA solution. Quelques remarques (ça pourrait être une contribution de ma part mais je ne sais pas comment contribuer sur git.spip.net) sur les options de configuration que j’aimerais ajouter :
    -  Possibilité de personnaliser le nom du cookie (au lieu de “cookieName”: “tarteaucitron”)
    -  Possibilité de mettre l’alerte au milieu (“orientation”: “middle” en plus de “top” et “bottom”)
    -  Possibilité de personnaliser le petit bandeau : “showAlertSmall” (boolean) et “cookieslist” (boolean) uniquement si showAlertSmall=true
    -  Éventuellement possibilité de personnaliser “adblocker” (boolean)
    -  Mettre “handleBrowserDNTRequest” sur true (si le visiteur a dit à son navigateur de refuser les cookies, c’est qu’il n’en veut pas. Donc pourquoi lui demander ?)
    -  Possibilité de personnaliser “removeCredit” (boolean)
    -  Possibilité de personnaliser le CSS (“useExternalCss” en booléen avec éventuellement un input pour mettre les règles CSS que l’on souhaite)
    -  Éventuellement possibilité de personnaliser “cookieDomain” pour les autres sous-domaines
    -  Possibilité de masquer les cookies obligatoires (“mandatory”, boolean)

    Reply to this message

  • 5

    Bonjour,

    On voit souvent “Continuer sans accepter”.
    Comment mettre cela dans le plugin qui semble ne prévoir que “OK, tout accepter”, “Interdire tous les cookies”, ou “Personnaliser” ?
    Ce “Continuer sans accepter” me parait plus simple…

    Par ailleurs, j’utilise “cookiebar”… dois-je le supprimer ou utiliser les deux ?

    J’utilise également “Google Analytics” avec un identifiant (UA-) mais j’ai aussi reçu un identifiant “G-”…

    J’ai du mal à faire le tri de tout ça :(

    Merci.

    Reply to this message

  • Bonjour, merci pour ce plugin.

    On utilise un mode de paiement par Amazon Pay, au cours duquel, on inscrit le client à notre site qui utilise le plugin spipthelia.

    Est-ce qu’il existerait un service Amazon Pay?

    Reply to this message

  • 10
    Sébastien

    Merci pour ce plugin. J’ai mis quelques minutes à comprendre : ce plugin nécessite Saisie. Une dépendance serait la bienvenue.

    • Normalement c’est intégré depuis la v1.2.1

    • Sébastien

      Merci ! Cela me permet de tester la mise à jour... et de me pencher sur un problème que je n’ai pas réussi à résoudre : où peut-on mettre les nouveaux services (/services) et (/formulaires/configurer_tarteaucitron_services.html) pour en ajouter sans risquer de les perdre à la prochaine mise à jour ? De même si on veut créer un service, le fichier est dans /lib/tarteaucitron/tarteaucitron.service.js, je n’ai pas réussi à le surcharger dans /squelettes... Merci, bonne fin de journée.

    • je ne suis pas l’auteur du plugin. Tu point eun problème que j’avais pointé : l’asbence de mecanisme de pipeline sur ce plugin.

      Du coup, le mieux si tu crée de nouveaux services serait carrément de proposer les modifications aux plugin, via une PR. Comme cela les autres pourrotn en profiter :)

    • Bonjour Sébastien

      Je suis entrain de voir pour faire des rajouts, tu cherches quel services ?
      D’ici début janvier je vais rajouter des services de vidéo dans le plugins comme youtube et dailymotion

    • Sébastien

      Bonjour. Merci. Effectivement, je cherchais à ajouter YouTube, DailyMotion et Viméo. Ainsi que Google Doc. Bonne fête de Noël.

    • Bonjour

      Peut-on savoir où ça en est pour l’intégration des services vidéos et de twitter ?

    • Bonjour,

      C’est en cour de validation sur mes projet, je le fais rapidement sur le plugins.

      A plus

    • Ah cool !
      Je suis impatient ;-)

    • Bonjour

      Toujours intéressé par l’inclusion de nouveaux services (twitter et vidéos) , je viens aux nouvelles.

    • Bonjour,

      pour les vidéos met le plugins oembed qui fait déjà pas mal le travail en passant par des no-cookies
      pour twitter c’est commit mais peetdu doit le validé.

      Cdt

    Reply to this message

  • 1

    Bonjour,

    la CNIL préconise un dépôt de cookies de 6 mois :
    https://www.cnil.fr/fr/cookies-et-traceurs-comment-mettre-mon-site-web-en-conformite

    La CNIL recommande que le choix exprimé par les utilisateurs, qu’il s’agisse d’un consentement ou d’un refus, soit enregistré de manière à ne pas les solliciter à nouveau pendant un certain laps de temps. Une durée de six mois, tant pour le consentement que le refus est en général appropriée.

    Serait-il possible de modifier cette valeur dans le plugin ?

    Reply to this message

  • 5

    Bonjour
    J’ai un site Spip en anglais (/ecrire/?exec=configurer_langue sur english) et mon compte est en anglais aussi. Mon squelettes contient bien <html lang="en"> et quand j’active le plugin, le bandeau sur le site public est en français. Alors que je trouve bien une traduction du bandeau d’alerte dans lib/tarteaucitron/lang/tarteaucitron.en.js.
    Comment faire pour activer le bandeau public en anglais ?

    Reply to this message

  • 3

    Bonjour,
    “Petit” soucis de mon côté. Le bandeau apparait de façon aléatoire et quand il apparait c’est vraiment très rarement (paramètres par défaut de tarteaucitron, plusieurs navigateurs et plateformes testés, navigation privée ON/OFF, etc), ce qui m’empêche de reproduire le comportement. Je suis en Spip 3.2.8 et je n’ai rien dans les logs apache.
    Est-ce que ça peut être lié au inc/config ? D’autre idées, au moins sur la méthode que je pourrais employer pour soir d’où vient le bug ?

    • Hello,

      Le plus simple est d’installer un SPIP tout neuf, sans /squelettes avec juste le plugin Tarteaucitron (et dépendances) et voir si tu reproduis le problème.

      En général pour traquer un bug PHP, il te faut ajouter les instructions suivantes dans ton fichier mes_options.php.

      error_reporting(E_ALL^E_NOTICE);
      ini_set ("display_errors", "On");
      define('SPIP_ERREUR_REPORT',E_ALL);

      (Voir à ce propos Les aides au débuggage et Le fichier mes_options.php)

      Pour les bugs JS, c’est dans la console de ton navigateur.

    • Merci Peetdu,
      Rien trouvé dans les erreurs php à part les habituels warnings de fonctions obsolètes.
      Par contre en faisant un diff du code source entre le cas où ça marche et celui où ça ne marche pas, j’ai ça :

      1814c1814
      <   <!-- SPIP-CRON --><script>setTimeout(function(){var xo = new XMLHttpRequest();xo.open('GET', 'https://www.monsite.fr/spip.php?action=cron', true);xo.send('');},100);</script><noscript><div style="background-image: url('https://www.monsite.fr/spip.php?action=cron');"></div></noscript><script type="text/javascript">tarteaucitron.user.gtagUa = '***-***-***';
      ---
      >   <script type="text/javascript">tarteaucitron.user.gtagUa = '***-***-***';
    • Du coup, j’ai trouvé d’où venait le “bug”. C’était un commentaire mal refermé dans mon squelette.
      Je passe à la suite : cookie de Twitter.

    Reply to this message

  • 3

    Bonjour,

    je ne vois plus apparaitre le bouton d’activation pour Google Analytics.

    L’UA est bien renseigné dans le paramétrage du plugin et le fichier “configurer_tarteaucitron_services” convenablement renseigné me semble-t-il :

                    <fieldset>
                            <legend>Services Google</legend>
                            [(#SAISIE{input, gtag, label=Google global site tag (gtag.js), explication=Replace GA_MEASUREMENT_ID with the ID of the Google Analytics property to which you want to send data, placeholder=GA_MEASUREMENT_ID})]
                    </fieldset>
                    
                    <fieldset>
                            <legend>Réseaux Sociaux</legend>
                            [(#SAISIE{checkbox, fb, label=Boutons de Like et Partage Facebook, datas=[(#ARRAY{fb,fb})]})]
                            [(#SAISIE{checkbox, twitter, label=Timeline Twitter, datas=[(#ARRAY{twitter,twitter})]})]
                    </fieldset>
    
                    <fieldset>
                            <legend>Services Vidéos</legend>
                            [(#SAISIE{checkbox, youtube, label=Lecteur Youtube, datas=[(#ARRAY{youtube,youtube})]})]
                            [(#SAISIE{checkbox, dailymotion, label=Lecteur Dailymotion, datas=[(#ARRAY{dailymotion,dailymotion})]})]                        
                    </fieldset>

    Suis je le seul ?

    • Hello,

      sur deux sites différents, avec tarteaucitron v1.2.4, aucun soucis de mon côté.

    • Étrange... je suis en SPIP 3.2.8 et Tarteaucitron 1.2.4... je vais supprimer l’extension pour revenir sur les fichiers d’origine en réinstallant et voir si c’est l’une des mes modifications qui génère ce soucis.
      Faut il désactiver l’extension Google Analytics 0.5.3 pour obtenir le fonctionnement voulu de Tarteaucitron ?

    • je me réponds à moi même, une erreur dans l’un de mes fichiers “services” cassé le comportement... du bruit pour rien, désolé... et merci

    Reply to this message

  • 7

    Bonjour, c’est un plugin très intéressant, mais j’ai été obligé de le supprimer : il provoquait l’affichage d’une erreur : Fatal error: Uncaught Error: Call to undefined function lire_config() in /homepages/..../www/plugins/auto/tarteaucitron/v1.2.3/inc/tarteaucitron.php:18

    • a oui, c’est moche. C’est corrigé avec la version 1.2.4 qui sera dispo tout prochainement.

    • Bonjour Gilles,

      peux-tu me dire quelle est la version de SPIP que tu utilises ?

    • peetdu : comme dit cela a été corrigé ce week-end...

    • 3.2.8. Et oui, cela fonctionne bien désormais

    • Merci pour cette info Gilles.
      J’avais testé le plugin sous cette version de SPIP sans rencontrer l’erreur que tu mentionnes.
      J’avoue que j’aimerais bien comprendre.

      @Maieul : merci pour la correction. Peut être peux-tu m’éclairer ?

    • @peetdu : la fonction “lire_config” est défini dans inc/config.

      Selon le chemin que tu emprunte pour charger inc/tarteaucitron.php, le ficheir inc/config a deja été chargé, ou pas. Je peux pas te dire exactement pourquoi le fichier n’était pas chargé dans le cas décrit par Gilles, mais avec mon correctif
      https://git.spip.net/spip-contrib-extensions/tarteaucitron/commit/09f8f0e9ecec756066e620cfcd56b1641a73b20a

      tu es sur qu’il est systématiquement chargé lorsqu’on en a besoin.

    • Yep Maieul,

      Oui, j’avais bien compris ton correctif,

      tu es sur qu’il est systématiquement chargé lorsqu’on en a besoin.

      C’est certainement ça la leçon à retenir. Voir aussi https://programmer.spip.net/ecrire-inc

      Cheers

    Reply to this message

Add a comment

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 / PostgreSQL
  • 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 apparait.

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom