Comment ajouter un bandeau cookies à un site Joomla
Dans Joomla, créez un modèle enfant de Cassiopeia sous Système (System), puis Modèles de site (Site Templates), donnez-lui son propre index.php copié depuis le parent et collez la balise sur la ligne qui suit la balise head ouvrante. Définissez le style enfant par défaut, videz le cache, marquez les balises que vous collez avec type="text/plain" et un data-cq-category, et retirez toute autre extension de cookies.Étapes
Où coller la balise dans Joomla
Joomla n’a pas de champ global pour le code du head : la balise va donc dans le modèle. Cassiopeia, le modèle de site par défaut de Joomla 4, 5 et 6, imprime le head de chaque page depuis index.php :
html<head><script src="https://cookiequiet.com/cq.js" data-site="YOUR_SITE_KEY" data-consent-mode="1" data-auto-block="1" defer></script><jdoc:include type="metas" /><jdoc:include type="styles" /><jdoc:include type="scripts" /></head>
Placée au-dessus des balises jdoc:include, la balise se charge avant tous les scripts que Joomla et vos extensions enregistrent via le gestionnaire de ressources web.
Ne modifiez pas l’index.php de Cassiopeia lui-même : une mise à jour de Joomla remplace les fichiers des modèles du cœur. Utilisez plutôt un modèle enfant :
- Allez dans Système, puis Modèles de site, ouvrez Cassiopeia - Détails et fichiers et cliquez sur Créer un modèle enfant. Donnez-lui un nom et laissez vides les styles supplémentaires.
- Toujours dans le parent, ouvrez
index.phpet copiez tout son contenu. - Ouvrez le modèle enfant, cliquez sur Nouveau fichier, créez
index.phpdans le dossier racine et collez la copie. Joomla documente qu’un enfant utilise les fichiers de son parent, sauf ceux qui portent le même nom dans l’enfant. - Ajoutez la balise sur la ligne qui suit
<head>et enregistrez. - Allez dans Système, puis Styles de modèles de site, et cliquez sur l’étoile à côté du style de l’enfant pour le définir par défaut.
- Videz le cache sous Système, puis Vider le cache, et purgez tout cache de pages ou CDN placé devant le site.
Joomla 6 fournit aussi un enfant prêt à l’emploi, Cassiopeia Extended, qui a son propre index.php ; ajoutez-y la balise si vous l’utilisez. Les frameworks de modèles commerciaux ont souvent, dans les options du modèle, un champ pour du code dans le head ; il convient s’il imprime la balise avant les autres balises, ce que vous pouvez vérifier dans le code source de la page.
Quels cookies Joomla dépose-t-il lui-même ?
Joomla dépose pour chaque visiteur, invités compris, un cookie de session au nom haché. Il porte la session (connexion, jetons de formulaire, panier dans les extensions de boutique) et il est strictement nécessaire : il n’exige donc aucun consentement. Les outils de confidentialité de Joomla (le composant Vie privée et le plugin de consentement à la vie privée) gèrent les demandes relatives aux données et les cases de consentement des formulaires, pas les cookies : le cœur n’a aucun bandeau cookies à désactiver. Les extensions ajoutent le reste ; c’est pourquoi le scanner de cookies gratuit est le moyen le plus rapide de lister ce que votre site dépose réellement.
Comment gérer les balises ajoutées par vos extensions
- Balises que vous collez dans le modèle. Placez-les sous la balise Cookiequiet et marquez-les. Pour la balise Google, les deux balises script changent :
html<script type="text/plain" data-cq-category="analytics" src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX"></script><script type="text/plain" data-cq-category="analytics">window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'G-XXXXXXX');</script>
Le pixel Meta reçoit data-cq-category="marketing". Le guide pour bloquer les scripts jusqu’au consentement couvre les autres balises courantes.
- Extensions de mesure d’audience. Une extension qui imprime sa propre balise Google ne peut pas être marquée de l’extérieur. Remplacez-la par la balise marquée ci-dessus, ou chargez Google via Google Tag Manager avec Consent Mode.
- Widgets injectés en JavaScript. Avec
data-auto-block="1", Cookiequiet retient les scripts et iframes d’environ 80 traceurs connus (Hotjar, Clarity, widgets de chat, pixels) jusqu’à ce que leur catégorie soit accordée. - Vidéos dans les articles. L’éditeur enregistre les vidéos YouTube comme des iframes ordinaires qui se chargent tout de suite. Remplacez
srcpardata-cq-srcdans la vue code de l’article ; le lecteur se charge après le consentement. Certaines configurations de l’éditeur suppriment les attributs inconnus : vérifiez le HTML enregistré.
Désactivez ou désinstallez toute autre extension de consentement aux cookies après la bascule, pour n’avoir qu’un bandeau et qu’un registre des consentements.
Comment ajouter le lien Préférences de cookies
Allez dans Menus, ouvrez le menu affiché dans votre pied de page, cliquez sur Nouveau (New), choisissez le type d’élément de menu Liens système (System Links), puis URL, saisissez #cq-preferences comme lien et « Préférences de cookies » comme titre, et enregistrez. Cookiequiet ouvre le centre de préférences depuis tout lien qui a cette adresse. Dans un module Personnalisé (Custom), une ancre avec le même href fait le même travail.
Comment tester
- Ouvrez le site dans une fenêtre de navigation privée. Le bandeau s’affiche avec « Tout accepter » et « Tout refuser » de la même taille.
- Cliquez sur Tout refuser et vérifiez les cookies dans les outils de développement :
cq_consent, le cookie de session de Joomla, et rien de Google, de Meta ni de Hotjar. - Effacez les cookies, rechargez, cliquez sur Tout accepter : les balises marquées s’exécutent et leurs cookies apparaissent.
- Consultez le registre des consentements dans le tableau de bord Cookiequiet.
Si le bandeau manque, cherchez cq.js dans le code source de la page. En général, le style enfant n’est pas défini par défaut, un élément de menu est affecté à un autre style de modèle, ou le cache n’a pas été vidé.
Ce qui est propre à Joomla
- Styles de modèle par élément de menu. Un élément de menu peut être affecté à un autre style de modèle. Les pages qui utilisent un autre modèle ont besoin de la balise dans ce modèle aussi.
- Sites multilingues. Une seule balise couvre toutes les langues : le bandeau choisit sa langue d’après le navigateur du visiteur, et chaque texte est modifiable par langue dans le tableau de bord.
- Prix. Cookiequiet est gratuit pour un site, ciblage géographique compris ; Starter coûte 3 € par site et par mois sans limite de pages vues, voir les tarifs.