Drupal 9 : ajouter des favicons à son thème
Drupal 9 : ajouter des favicons à son thèmeLaborouge
lun 03/10/2022 - 09:00
![Drupal 9 : ajouter des favicons à son thème raccourcis sur un écran de téléphone](https://www.laborouge.com/sites/default/files/styles/illustration/public/upload/img/pexels-brett-jordan-5444628.jpg?h=e157f0a4&itok=KmVvOmWQ)
Drupal 9 : ajouter des favicons à son thèmeLaborouge
lun 03/10/2022 - 09:00
Drupal 9 : supprimer le bloc de titre de page pour certains types de contenuLaborouge
lun 26/09/2022 - 09:00
$fields['related_content'] = BaseFieldDefinition::create('string_long')
->setLabel(t('Related content'))
->setSetting('text_processing', FALSE)
->setDisplayConfigurable('form', TRUE)
->setTranslatable(FALSE);
Drupal 9 : 10 modules non essentiels mais indispensables pour l'administration de vos sitesLaborouge
lun 19/09/2022 - 09:00
Drupal 9 : créer des liens de partage pour les réseaux sociauxLaborouge
lun 12/09/2022 - 09:00
La DrupalCon est un événement organisé par la communauté Drupal qui regroupe des présentations selon différents axes :
Agence et Business
Etudes de cas et expériences clients
Faiseurs et batisseurs
Internet ouvert et Communauté
Utilisateurs et éditeurs
C'est la reprise en présentiel pour cet événement après les quelques années contraintes aux événements numériques.
Twig : créer des suggestions de nom de templateLaborouge
lun 05/09/2022 - 09:00
Drupal 9 : rajouter une feuille de style personnalisée au thème d'administrationLaborouge
lun 29/08/2022 - 09:21
Interview client - BABYZEN
stephanie@happyculture.coop
ven 26/08/2022 - 16:09
Découvrez comment le site internet de BABYZEN est devenu accessible partout dans le monde avec Happyculture et la mise en place du CMS Drupal. Merci encore à toute l'équipe pour cet entretien et pour ce beau projet !
Depuis 2007, Babyzen propose des produits de puériculture innovants, durables et pratiques. Yoyo, sa célèbre poussette citadine ultra maniable, en a fait son succès.
Happyculture a été mandaté pour la refonte du site internet. Vous pouvez accéder ici à la présentation du projet et des principales fonctionnalités développées.
BABYZEN conçoit, fabrique et distribue les poussettes YOYO dans 85 pays.
Marina Sokolowsky : "Je suis Brand Communication Manager et j’étais chef de projet sur la construction du site babyzen.com avec Happyculture".
Edouard Villeneuve : "J’ai piloté ce projet d’un point de vue IT en tant que DSI de BABYZEN".
[Marina Sokolowsky et Edouard Villeneuve] La marque a connu une croissance rapide et notre site web originel ne correspondait plus à nos besoins. Notamment:
[Marina Sokolowsky] Le projet concernait la refonte totale de notre site vitrine avec deux enjeux :
[Marina Sokolowsky] Nous étions tous les deux uniquement. La direction était bien sur très impliquée dans le projet dans les arbitrages fonctionnels.
[Edouard Villeneuve] En tant que DSI, j’avais déjà travaillé avec Happyculture (et pas mal d’autres prestataires web) dans ma vie antérieure.
Je connaissais donc Happyculture en tant qu’experts, avec une réputation bien établie pour des assistances ponctuelles. Je les ai contactés pour avoir des recommandations d’agence qui puissent prendre en compte le projet dans son intégralité.
J’ai alors été surpris de voir qu’Happyculture savait se positionner pas seulement pour des expertises, mais également pour le projet entier de réalisation, avec des taux journaliers très compétitifs, en particulier quand on prend en compte la qualité de la réalisation et donc la productivité et l’absence de dette technique.
J’avais contacté deux autres sociétés qui nous ont moins convaincus, soit à cause de l’approche technique proposée qui était démesurée par rapport à notre typologie, soit à cause de la méthodologie projet pas assez agile et trop commerciale.
[Edouard Villeneuve] Une proposition a été rapidement établie par Happyculture, le projet lancé dans la foulée et ensuite une gestion agile des écarts nous a permis d’augmenter le périmètre tout en maitrisant l’impact budgétaire de ces changements. Nous avons ensuite mis en place une TMA pour assurer la maintenance corrective et évolutive.
[Edouard Villeneuve] Le cadrage était simple puisqu’il s’agissait uniquement de refaire le site à iso-fonctionnalités en termes de périmètre mais simplement avec des nouvelles fonctionnalités côté back office (CMS + CDN). Lorsque nous avons souhaité finalement inclure des évolutions significatives en termes de structure et contenus du site, Happyculture a organisé des ateliers de définition du besoin puis a chiffré ces évolutions individuellement, ce qui nous a permis de maîtriser finement ce changement d’approche.
[Edouard Villeneuve] Ayant participé à un certain nombre de projets Web en tant que DSI et dans ma vie antérieure, et bien que connaissant la réputation d’Happyculture, j’ai été impressionné par le faible taux de défauts identifiés. Les correctifs ont alors été livrés rapidement, soit par nos interlocuteurs projets, soit par le reste de l’équipe Happyculture lorsqu’un problème a été rencontré en période de congés.
[Edouard Villeneuve] L’utilisation de Drupal dans une expérience professionnelle antérieure mais récente me confortait sur le fait que c’était la bonne plateforme pour répondre à nos enjeux et difficultés. Les éléments particulièrement complexe (type traduction en 15 langues dont certaines lues de droite à gauche) ont été abordées lors de la consultation pour valider ce choix.
[Marina Sokolowsky et Edouard Villeneuve] Plusieurs éléments utiles ont été mis en oeuvre :
[Edouard Villeneuve] Très satisfaits, le sérieux et la disponibilité d’Edouard Cunibil chez Happyculture ont été clés dans le succès du projet. La qualité des développements ont aussi été un critère majeur pour nous assurer de la bonne vie du site et de la capacité d’intégrer des évolutions de manière agile et indolore. Enfin, lorsque plusieurs approches techniques étaient possibles, Edouard a été particulièrement pédagogue pour nos les présenter avec les avantages et inconvénients de chacune, afin de faire un choix éclairé.
[Marina Sokolowsky] Nos objectifs ont été atteints. Après 18 mois, ce site inclut 15 langues, ce qui a été fait très facilement et n’avons plus aucun problème d’accessibilité, partout dans le monde.
[Marina Sokolowsky] Tout à fait. Le fait d’avoir une seule personne en contact a été précieux tout au long du projet, Edouard connaissait parfaitement nos problématiques et pouvait y apporter des réponses rapides.
En savoir plus sur le projet Babyzen ? Accédez ici à la présentation du projet et des principales fonctionnalités développées.
Faut-il remplacer Google Analytics par Matomo ?
stephanie@happyculture.coop
jeu 25/08/2022 - 10:51
Matomo, une alternative éthique à Google Analytics, dans le respect des données personnelles et du RGPD.
- Google Analytics dans le viseur européen
- Quelle(s) alternative(s) à Google Analytics ?
- Matomo, qu’est ce que c’est ?
1 – Matomo en version auto-hébergée
2 – Matomo Cloud (SaaS)
- Pourquoi Matomo ? Ça fonctionne vraiment ?
- Comment installer Matomo sur mon site Drupal et récupérer mes anciennes données ?
- Pour conclure
Est-il encore possible d’avoir une vie privée sur le web ?
Vous êtes une personne soucieuse de la protection des données personnelles et du respect de l’activité de vos visiteurs sur votre site internet, et vous avez bien raison !
Et cela nous importe aussi chez Happyculture. Connaître le trafic sur notre site web c’est important pour mesurer ses performances et l’améliorer, mais pas au détriment de la vie privée. Utilisateurs de Matomo depuis plusieurs années, en voyant circuler les articles autour de la CNIL et Google Analytics ces dernières semaines, nous nous sommes dit qu’il serait intéressant de vous expliquer pourquoi nous l’avons choisi.
Mais avant de vous expliquer nos raisons, petit retour en arrière sur les faits.
C’est en 2020 que l’affaire commence. La Cour de Justice de l’Union Européenne (CJUE), considérant que le transfert des données à caractère personnel de l’Union Européenne (UE) vers les Etats-Unis n’est pas conforme aux exigences requises par l’UE, décide d’invalider le Privacy Shield (Bouclier de Protection à mettre en annotation).
Suite à cette décision, NOYB, organisation de la protection de la vie privée fondée par Max Schrems, affirme que le géant de l’analyse d’audience web autorise, et ce de manière illégale, un traitement des données personnelles et leur transfert vers Google, donc vers les États-Unis. En 2021 NOYB dépose alors 101 plaintes auprès de plusieurs autorités de contrôle européennes, dont la CNIL en France.
En février 2022, la CNIL se prononce et met en demeure des sites français utilisant Google Analytics de mettre en conformité leurs traitements avec le RGPD.
Comme le sujet est sensible et le positionnement de la CNIL nouveau, la décision de mise en demeure a donné lieu à une vague de questions/réponses que la CNIL a mis en ligne pour partager l’information. Des pistes de solutions y ont été évoquées, comme agir par exemple sur le paramétrage des conditions de traitement de l’adresse IP ou encore utiliser un serveur mandataire ou proxy. Mais pour le moment, ces solutions n’ont pas satisfait la CJUE.
En attendant que cette situation aboutisse et pour anticiper l’éventuelle illégalité de l’utilisation de Google Analytics, beaucoup ont pris les devants et cherché des remplaçants.
Google Analytics reste l’outil d’analyse de trafic web le plus utilisé dans le monde ; plus de 55 % des sites web l’utilisent ce qui représente près de 86 % du marché (source W3Techs).
Heureusement des alternatives existent, et il y a du choix !
Nous pouvons citer Matomo bien sûr, mais aussi AT Internet Analytics Suite, Plausible, Open Web Analytics, Content Square, Hotjar, Abla Analytics, Go Squared, Beyable Analytics, etc.
Certaines solutions, plus respectueuses de la vie privée de leurs utilisateurs et pouvant être exemptées au recueil de consentement, ont été identifiées comme conformes par la CNIL en suivant leurs guides de configuration. Et Matomo en fait partie.
Chez Happyculture, nous avons opté pour Matomo.
Il s’agit d’un outil Open Source gratuit de collecte de statistiques créé en 2007. Matomo vous permet de mesurer l’audience de votre site, comprendre le comportement de vos visiteurs et suivre des conversions. Anciennement connu sous le nom de Piwik, le projet a changé de nom en 2018 pour éviter tout conflit avec d’autres produits. La CNIL a approuvé cet outil au vue des critères RGPD (et sous réserve d’en faire la bonne configuration). Il est utilisé par plus d’un million de sites de toutes les tailles et se revendique comme respectueux de la vie privée de ses utilisateurs.
Matomo existe en 2 offres pour répondre à vos objectifs.
Avec l’auto-hébergement, vous choisissez comment sont gérées vos données et leur lieu de stockage puisque c’est vous qui en avez la propriété. Aucun serveur tiers ne voit arriver vos données.
Si vous ne pouvez pas ou ne voulez pas en faire l’installation sur l’un de vos serveurs. Vous pouvez opter pour la version hébergée de Matomo dans son cloud allemand pour que vos données restent en Europe.
Vous pouvez comparer les deux versions dans leur grille de fonctionnalités. Les tarifs débutent à 19 euros par mois pour 50 000 hits.
Attention, il peut y avoir des coûts cachés si vous souhaitez activer des fonctionnalités payantes de Matomo présentes dans leur place de marché, vous y découvrirez le coût des extensions associées
Vous nous connaissez, chez Happyculture nous défendons une vision du web respectueuse de ses utilisateurs et utilisatrices et donc de leur vie privée. Nous sommes aussi amoureux de l’open source, ce n’est pas pour rien que nous sommes experts Drupal !
Alors quitte à choisir entre Matomo et Google Analytics, la balance penche assez vite pour le premier lorsque nous devons choisir notre outil de mesure de statistiques.
Qui dit héberger ses propres données pour mesurer son audience dit critère acceptable pour ne pas afficher de bandeau de cookies ou de demande de consentement (car nos contenus ou le reste de vos intéractions ne déposent pas non plus de cookies hormis l’antispam).
Au-delà de la bonne idée, peut-on appliquer les mêmes usages si l’on doit changer d’outil ? Comme souvent, “ça dépend” est la réponse qui s’impose.
Si la majorité des usages de votre outil de statistiques consiste à mesurer le nombre de visites, étudier les pages les plus vues, comprendre le type de visites que vous recevez (périphérique, zone géographique…) et suivre quelques objectifs de conversion, vous pourrez basculer sans crainte et ne serez pas perdus.
Si en revanche vous utilisez des fonctionnalités avancées de Google Analytics de type cohorte, traçage inter périphérique, plan de taggage, analyse par machine learning de vos jeux de données, vous risquez de perdre quelques petites choses.
Cela peut être bloquant pour vous mais mérite de vous interroger sur le besoin de collecter certaines données.
D’un autre côté Google applique parfois de l’échantillonnage à partir des données qu’il collecte afin de générer vos rapports (sur des grandes masses de données, toutes ne sont pas comptabilisées mais des tendances sont calculées).
Si basculer sur Matomo vous intéresse, l’installation est aussi simple que pour Google Analytics, il vous suffit d’insérer leur code de tracking. Comme ils sont sympas chez Matomo, ils vous expliquent comment migrer vos anciennes données pour assurer une transition en douceur depuis Google Analytics 3. Vous avez aussi un autre exemple en FR si vous préférez.
Notez que pour respecter le RGPD, vous devrez faire quelques configurations documentées par la CNIL. Je vous glisse aussi le lien vers la documentation pour permettre à un utilisateur de couper à la source le suivi dans votre outil de statistiques si vous souhaitez lui en donner la possibilité.
Bonus amical qui vous fera peut être gagner du temps (je parle d’expérience…), lorsque vous faites vos tests, pensez à désactiver votre bloqueur de publicité qui peut considérer votre domaine comme source de publicité à tort. ;-)
Si vous utilisez Drupal 9, vous pouvez insérer Matomo via le module contribué ou comme suit :
Créer le fichier JS qui va insérer le script :
var _paq = window._paq = window._paq || [];
_paq.push(["setDomains", ["*.monsite.fr"]]);
_paq.push(["setDoNotTrack", true]);
_paq.push(['HeatmapSessionRecording::disable']);
_paq.push(["disableCookies"]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://stats.monsite.fr/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
Déclarer une librairie :
matomo:
js:
dist/js/matomo.min.js: { minified: true }
Insérer la librairie dans vos pages :
name: Thème de mon site
core_version_requirement: ^8 || ^9
type: theme
# Autres données
libraries:
- mon_theme/matomo
Vous l’aurez compris, en choisissant Matomo, vous optez pour une solution recommandée par la CNIL et respectueuse du RGPD, la grande contrainte des outils d’analyse d’audience.
Open source, simple et gratuit, il répondra parfaitement à vos besoins principaux d’analyse de votre trafic web si vos usages ne sont pas extrêmement pointus.
La tendance du web étant au respect de la vie privée des personnes, proposer toujours plus de suivi des utilisateurs n’est pas une direction susceptible d’offrir des débouchés satisfaisants.
Le ciblage des contenus semble en meilleure posture si vous devez proposer de la publicité sur vos contenus.
Le passage à Google Analytics 4 est peut être une piste de réponse mais on ne sait pas si la CNIL l’acceptera (à priori, non). Google restant dans le viseur du législateur, autant ne pas participer à une forme de loterie et anticiper une alternative au plus tôt.
La question de la toute puissance de Google mérite également d’être soulevée. Ce sont nos choix de gestionnaires et sociétés intégratrices de solutions qui lui confèrent sa puissance. Une fois en position de quasi monopole, le jeu de la concurrence ne porte plus ses fruits. Alors il nous incombe de défendre la diversité des choix. Matomo est une option intéressante mais comme indiqué plus tôt, les concurrents ne manquent pas.
Nous terminerons en vous posant cette question, avez-vous toujours une bonne raison de rester sur Google Analytics et de prendre le risque de jouer avec la loi ?
Drupal 9 : jouer avec les dates de publicationLaborouge
jeu 25/08/2022 - 07:15
CKEditor : personnaliser l'éditeur avec sa propre feuille de styleLaborouge
dim 21/08/2022 - 23:40
Depuis un controller :
// Variables à transmettre au formulaire
$data = ['lalala' => 'lilili'];
// Avec l'injection de dépendances
$this->formBuilder()->getForm(Drupal\mon_module\Form\TriggerForm::class, $data);
// Sinon, sans l'injection de dépendances
$form = \Drupal::formBuilder()->getForm('Drupal\mon_module\Form\TriggerForm', $data);
Récupération des données dans le formulaire
public function buildForm(array $form, FormStateInterface $form_state) {
// Récupération des données
$data = $form_state->getBuildInfo()['args'][0];
// Définition du formulaire
}
Il est possible de passer plusieurs variables
// Variables à transmettre au formulaire
$data = ['lalala' => 'lilili'];
$doto = ['lululu' => 'lelele'];
// Avec l'injection de dépendances
$this->formBuilder()->getForm(Drupal\mon_module\Form\TriggerForm::class, $data, $doto);
// Sinon, sans l'injection de dépendances
$form = \Drupal::formBuilder()->getForm('Drupal\mon_module\Form\TriggerForm', $data, $doto);
public function buildForm(array $form, FormStateInterface $form_state) {
// Récupération des données
$data = $form_state->getBuildInfo()['args'][0];
$doto = $form_state->getBuildInfo()['args'][1];
// Définition du formulaire
}
Drupal 7 est une des versions les plus anciennes de Drupal qui est encore supportée par la communauté. À l’occasion du report de sa fin de vie, prévue pour novembre 2023, notre agence Drupal revient sur les fonctionnalités apportées par cette version et sur les raisons de ce report.
Ce vendredi 29 juillet 2022 aura lieu le premier "Drupal 10 Global Porting Day", dédié au port de modules et thèmes de Drupal 9 à Drupal 10. Cet évènement, organisé par Kristen Pol et Surabhi Gokte, durera 30 heures pour couvrir tous les fuseaux horaires. Attention, un bug connu sur les pages d'évènements communautaire fausse les horaires en mode non-connecté, voici donc les bons créneaux validés par Kristen :
du 29 juillet 2022 à 00:00 CET au 30 juillet 2022 à 06:00 CET
NB : CET (Central European Time) = UTC+2 (soit l'heure de Paris)
Retrouvez toutes les informations sur la page de l'évènement : https://www.drupal.org/community/events/drupal-10-global-porting-day-july-2022-2022-07-28
Des membres de l'association Drupal France et francophonie comptent participer, n'hésitez pas à nous solliciter sur le Slack francophone si vous avez du mal avec l'anglais mais que vous voulez quand même aider, on pourra vous accompagner :)
Dans cet article, quelques pistes pour améliorer l'ergonomie du back-office de votre site Drupal vont vous être présentées.
Les différentes solutions techniques pour ajouter de la cartographie à vos sites Drupal 9.
6 mois après la mise en ligne de Drupal 9.3, le CMS bénéficie ce mois-ci de sa nouvelle mise à jour : Drupal 9.4. Une version qui apporte de nouveaux correctifs et de nouvelles améliorations, en vue de préparer la sortie de Drupal 10.
Voici comment depuis la soumission d'un formulaire déclencher le téléchargement d'un fichier via une BinaryFileResponse :
/** @var \Drupal\file\Entity\File $menuFile */
$menuFile = $menu->get('field_file_menu')->entity; // Ici récupération du fichier à télécharger
$headers = [
'Content-Type' => $menuFile->getMimeType(),
'Content-Disposition' => 'attachment;filename="' . $menuFile->getFilename() . '"',
];
$response = new BinaryFileResponse($menuFile->getFileUri(), 200, $headers, true);
$form_state->setResponse($response);
Voici comment rediriger un utilisateur après la création ou la modification d'un noeud
function mon_module_form_alter(&$form, FormStateInterface $form_state, $form_id) {
switch ($form_id) {
case 'node_menu_patient_form':
case 'node_menu_patient_edit_form':
$form['actions']['submit']['#submit'][] = 'mon_module_form_redirect';
break;
}
}
function mon_module_form_redirect($form, FormStateInterface $form_state) {
// ici renseignez la route vers laquelle vous voulez rediriger l'utilisateur
$form_state->setRedirect('view.menus_patients.page');
}