background preloader

Drupal

Facebook Twitter

Prévenir des soumissions non sollicitées en masse sur son site Drupal 9 (ou Drupal 8) Plusieurs solutions anti-spam existent sur Drupal pour prévenir les soumissions de formulaires (contact, abonnement newsletter, etc.) par des robots plus ou moins bien intentionnés.

Prévenir des soumissions non sollicitées en masse sur son site Drupal 9 (ou Drupal 8)

Sans vouloir être exhaustif, nous pouvons utiliser les modules Honeypot et Antibot qui fournissent des mécanismes de défense (différents) non intrusifs, ou encore les modules captcha ou recaptcha qui demandent au visiteur de répondre à différents challenges avant de lui permettre de soumettre le formulaire. Mais ces modules anti-spam ne sont pas infaillibles et certains robots peuvent parfois passer outre leur mécanisme de protection. Et peuvent alors transformer votre site en relais de courriel non sollicité, via votre formulaire de contact par exemple qui va envoyer un mail de confirmation au mail saisi sur le formulaire. Vous pouvez configurer les paramètres suivants : Protéger tous les formulaires Lorsque cette option est activée, tous les formulaires sont protégés. Fenêtre Seuil Paramétrages individuels. Créer un sous-thème avec Drupal 8. Créer un thème ou un sous-thème dédié à un projet Drupal 8 fait partie des actions de base lors du démarrage du projet.

Créer un sous-thème avec Drupal 8

Un thème dédié pour le front office, mais aussi un autre thème pour le back office. Ainsi toute personnalisation du rendu en sera facilité, par l'ajout de région, styles CSS ou encore librairies JS le cas échéant. Créer un sous-thème se fait en quelques minutes. Dans le répertoire themes/custom du projet, créer un nouveau répertoire, que nous appellerons ici front, qui sera le nom système de notre nouveau sous-thème.

Dans ce répertoire, nous déclarons notre nouveau thème avec le fichier front.info.yml name: Front theme type: theme base theme: bartik description: 'Front theme based on bartik.' Dans l'exemple ci-dessus notre nouveau thème sera un sous-thème du thème Bartik inclus dans le coeur de Drupal, nous chargerons la librairie front/global de façon permanente, et nous déclarons toutes les régions qui seront disponibles. Intégrer automatiquement un mail via les styles CSS avec Drupal 8. Comment mettre des couleurs dans vos mails émis depuis votre site Drupal 8 ?

Intégrer automatiquement un mail via les styles CSS avec Drupal 8

Bien souvent, intégrer les mails émis par un site Drupal 8, ou de n'importe quel site web, peut s'avérer (très) chronophage, avec des contraintes fortes au niveau du rendu du mail pour disposer d'un rendu correct sur tous les types de courrielleur ou webmail. Sans parler ici du comportement responsive de ces mails, ne serait-ce par exemple que pour respecter la charte graphique d'un projet web (les boutons Call to action aux couleurs primaires du site, etc.). Une des méthodes les plus efficaces consiste injecter dans le corps du mail, en HTML, les styles CSS à utiliser au niveau de chaque balise HTML, ce que nous appelons de l'inline CSS. Ainsi pour intégrer par exemple un lien bouton, au lieu d'utiliser ce type de balise <a class="btn btn-primary" href=" lien</a> Exporter en CSV les contenus d'un projet Drupal 8.

Le besoin d'exporter les contenus d'un projet Drupal 8 est un besoin récurrent, que ce soit à des fins d'analyse ou encore de mise à jour en masse avec un processus d'importation concomitant.

Exporter en CSV les contenus d'un projet Drupal 8

Nous disposons de plusieurs solutions avec Drupal 8 qui chacune présente des avantages et des inconvénients, que ce soit au niveau des types de contenu exportables, des options d'export des entêtes de colonnes et des valeurs, du niveau de droits d'accès requis et des options de configuration très variables. Nous allons ici vous présenter un nouveau module Entity Export CSV qui semble pouvoir répondre à de nombreux cas d'usage.

Encore un nouveau module d'export CSV ? Nous disposons de nombreuses solutions pour mettre en place un export CSV sur un projet. Essayons d'en lister quelque unes sans vouloir être exhaustif. Le module Views Data Export comme son nom l'indique se base sur le module Views du Core pour configurer et mettre en place des export CSV. Introduction du module Entity Export CSV. Réordonner facilement des paragraphes embarqués dans d'autres paragraphes avec Drupal 8. Le module Paragraph permet, entre autres usages, de proposer des mises en pages structurées diverses et variées selon les besoins d'un projet, directement accessibles et pouvant être gérés par un rédacteur de contenu, sans droits d'administration particuliers.

Réordonner facilement des paragraphes embarqués dans d'autres paragraphes avec Drupal 8

Un des inconvénients majeures que j'ai pu rencontré avec Paragraph, pour la conception de pages d'atterrissage complexes, est l'impossibilité de changer le parent d'un paragraphe dans le cas de paragraphes (de type picto ou image/texte, etc par exemple) embarqués dans d'autres paragraphes (de type conteneur par exemple permettant de contrôler l'agencement).

Et dans ce cas il était nécessaire de supprimer puis de refaire le paragraphe au niveau du bon parent pour faire des modifications structurelles de l'agencement de ce type de page (landing page, page d'accueil, etc.). Utilisateur du module Paragraph depuis de nombreuses années, j'avoue peut-être n'avoir pas lu toutes les releases notes du module. Ajouter une relation à une Vue de façon programmatique avec Drupal 8. Pour effectuer des requêtes et construire des pages de listing sur Drupal 8, ou tout autre contenu à collecter, nous disposons sur Drupal 8 des EntityQuery, de la Database API (cf.

Ajouter une relation à une Vue de façon programmatique avec Drupal 8

Faire une requête SQL sur plusieurs tables avec Drupal 8) ou encore du module Views qui nous fournit un requêteur et une interface graphique extrêmement puissant. Chacune de ces méthodes ont leur avantages et inconvénients et peuvent mieux convenir selon certaines situations (complexité de la requête, etc.). Un des avantages des EntityQuery est de pouvoir faire facilement des requêtes complexes selon de nombreuses conditions dynamiques. Néanmoins les requêtes de Views peuvent aussi être altérées de façon dynamique, même si ce type d'altération peut s'avérer légèrement plus complexe du fait de la puissance de Views. Invalider le cache des pages en fonction d'une durée avec Drupal 8. Pour certains besoins il peut être nécessaire de disposer de contenus, ou d'éléments de contenu, qui puissent varier selon une certaine durée de temps écoulée, et donc qui nécessitent une invalidation du cache en fonction d'une certaine durée.

Invalider le cache des pages en fonction d'une durée avec Drupal 8

C'est par exemple le cas typique d'une liste des événements futurs et/ou passés, liste qui doit varier invariablement avec le temps. Drupal 8 dispose de trois systèmes de cache : Convertir une entité de contenu pour la rendre traduisible avec Drupal 8. Jusque Drupal 8.7, nous disposions d'une commande drush fort bien utile pour le développement d'entités de contenu, et les mettre à jour au fur et à mesure de leur évolution avec le projet.

Convertir une entité de contenu pour la rendre traduisible avec Drupal 8

Cette commande, drush entup ou drush entity-updates, nous permettait de mettre à jour la définition des entités et/ou de leur champs. Mais pour des raisons d'intégrité de données, difficiles d'assumer pour une commande aussi utile et générique mais manipulant et modifiant le schéma de la base de données, il a été décidé de retirer cette commande du Coeur, pour redonner la responsabilité aux modules de mettre à jour en connaissance de cause leur structure de données. Bien que cette commande soit désormais disponible au travers d'un module contribué, devel entity upates, il est recommandé de l'utiliser à des fins de développements uniquement, et non sur un projet en production, et donc avec des données.

. * base_table = "my_entity", Il faut également déclarer les champs qui seront désormais traduisibles. Permettre aux visiteurs d'être notifié d'une nouvelle variation de produit avec Drupal commerce 2. Pour les sites e-commerce proposant des formations ou encore des événements, une fonction extrêmement intéressante est de proposer aux visiteurs de s'abonner sur la formation ou l'événement en question afin d'être notifié dès qu'une nouvelle session, une nouvelle date, est disponible.

Permettre aux visiteurs d'être notifié d'une nouvelle variation de produit avec Drupal commerce 2

L'intérêt est double : ceci permet à l'utilisateur de recevoir en temps réel une notification dès qu'une nouvelle session est disponible, et pour le site e-commerce cela lui permet de connaître l'intérêt que suscite ses différents événements ou formations, et peux l'inciter à renforcer certains produits plutôt que d'autres, en d'autres termes répondre à une demande qui s'exprime. C'est l'objectif principal du module Commerce Product Reminder, que nous allons découvrir ici. La configuration du module est assez simple. Configuration du module. Recevoir un journal d'activité par mail avec le module Drupal 8 Entity Activity. Dans un précédent billet j'ai eu l'occasion de présenter le module Entity Activity qui nous permet de mettre en place un système de notification sur tout type d'entité de contenu de Drupal 8, selon les 3 principales actions de leur cycle de vie : création, mise à jour et suppression.

Recevoir un journal d'activité par mail avec le module Drupal 8 Entity Activity

Depuis la version bêta 8, le module Entity Activity intègre un sous-module, Entity Activity Mail, qui nous permet désormais d'envoyer par mail un résumé des notifications générées pour chaque utilisateur, selon une fréquence qui est paramétrable par chaque utilisateur. Configuration générale Le module propose plusieurs options de configuration générale. Les principales options de configuration, outre la possibilité de stopper l'envoi des notifications par mail globalement, sont : Nous avons également la possibilité de personnaliser le mail du rapport des notifications. Configuration pour les utilisateurs Ce composant va permettre à chaque utilisateur de paramétrer son compte selon ses préférences.

Mettre en place un système de notifications sur Drupal 8. Pour bon nombre de projets Drupal 8 qui disposent d'un minimum d'interactions avec ses utilisateurs, le besoin de mettre en place un système de notifications arrive rapidement sur le devant de la scène. Etre notifié d'un nouveau commentaire, d'une réponse à un commentaire, d'une nouvelle publication sur tel ou tel sujet, ou de tel utilisateur, sont des besoins récurrents. Nous pouvons pour satisfaire ce type de besoin nous appuyer sur le module Message (et la stack liée à Message) qui peuvent nous permettre d'arriver à ce type de résultat avec l'aide du module Flag. Mais nous n'allons pas parler ici de ces deux modules somme toute génériques, et qui peuvent donc faire bien plus, mais d'un nouveau module Entity Activity dont l'unique vocation est de journaliser tout type d'action effectuée, par utilisateur selon ses abonnements, sur un projet.

Configuration globale La configuration initiale du module est assez rapide à mettre en place. Support multilingue. Générer un sommaire automatique avec Drupal 8. Fournir automatiquement les options à un champ de type Liste sur Drupal 8.

Security

Créer un pied de page pour un micro site avec Drupal 8. Le module Micro Site permet de mettre en place une usine à site Drupal, depuis une seule instance Drupal 8, pour propulser une multitude de sites, de nature différente si besoin. Micro Site fournit une nouvelle entité de contenu permettant de personnaliser à volonté, avec les API disponibles sur Drupal 8, ces différents types de site, et modifier leur comportement selon les besoins métier.

Détaillons comment nous pouvons procéder, au travers d'un exemple de base consistant à fournir un pied de page modulaire sur différents sites propulsés, et l'afficher sur toutes les pages pouvant constituer le site. Cette opération se résume au final à un peu de site building, par l'ajout et la configuration de quelques champs, et un zeste de theming en adaptant le template général des pages d'un site pour être en mesure d'afficher ce pied de page. Site building Par exemple, sur un type de site intitulé Generic nous pouvons créer un nouveau champ de type Paragraphs intitulé Site Footer. Basculer un projet Drupal 8 existant sous composer. Composer est devenu incontournable pour des projets Drupal 8 relativement ambitieux.

Même si il est encore possible d'initialiser un projet Drupal 8 avec drush ou encore tout simplement en téléchargeant une archive zip, ces deux méthodes peuvent devenir limitantes avec le temps. Ou tout du moins ne pas faciliter l'installation de nouveaux modules ayant des dépendances sur des librairies tierces. Une autre des raisons que j'ai pu rencontrées, pour lesquels certains projets Drupal 8 n'ont pas été initiés par Composer, est l'absence de support de Composer sur certains hébergements mutualisés, même dits professionnels.

Si le démarrage d'un projet sans Composer peut donner l'impression de gagner du temps au début (en court-circuitant une phase nécessaire d'appropriation de Composer), cela peut très vite devenir chronophage, et le gain de temps initial s'estomper à vue d'oeil. Accélérer la conception d'un projet Drupal 8. Il n'est pas rare qu'un projet Drupal 8, parce qu'il dispose de contenus structurés, s'étoffe de nombreux types de contenu, eux-mêmes comportant de nombreux champs, eux-même rendus de façon différente au travers de non moins nombreux modes d'affichage. Une des conséquences est que la phase de conception dite site building peut devenir alors extrêmement chronophage, voire source de multiples petits oublis encore plus chronophage à corriger /ajuster (utilisation des mêmes champs, texte d'aide associé, configuration du formulaire, des modes d'affichage, etc.).

Et ceci peut faire apparaître cette phase de conception comme la phase la moins motivante, bien que indispensable. Pour qui a déjà produit un projet Drupal 8 ambitieux, cela doit très certainement réveiller quelques souvenirs. Heureusement nous disposons avec Drupal 8 de deux modules qui nous permettent de simplifier et accélérer de façon significative cette phase. Il s'agit des modules Entity Clone et Field Tools.

Des petits sites, des gros sites, des micro sites avec Drupal 8. Drupal 8 est un outil dimensionné pour répondre aux besoins des projets web les plus ambitieux. Nous entendons beaucoup parler des notions de headless, de API first, de découplage, etc. qui résolument permettent des architectures solides pour projets ambitieux. Mais ce n'est pas pour autant que Drupal 8 ne propulse plus des sites plus classiques, et voire parfois beaucoup moins ambitieux : de simples, petits, sites Internet, mais pour lesquels nous souhaitons bénéficier de la modularité, de la souplesse et de la robustesse de Drupal. Drupal 8, une solution d'industrialisation pour des sites petits ou grands Drupal est aussi une solution qui propose différentes architectures possibles pour industrialiser la production de sites internet.

Drupal 8 nous propose plusieurs solutions possibles pour mettre en place une usine à sites, i.e. pour industrialiser la production de sites Internet : l'architecture multi-sites native à Drupal 8, et le module Domain Access. Fournir un formulaire personnalisé aux entités de Drupal 8. A l'instar des modes d'affichage qui permettent d'afficher une entité de multiples manières, Drupal 8 permet de créer de multiples modes de saisie, ou formulaires, utilisables sur les entités, que ce soient les utilisateurs, les termes de taxonomy, les contenus ou n'importe quelle entité personnalisée. Découvrons ici comment utiliser ces modes de saisie, depuis leur création jusqu'à leur exploitation pour personnaliser la saisie par exemple des informations d'un utilisateur. La création de modes de saisie est assez simple et se fait en quelques clics, depuis l'interface d'administration (depuis le chemin /admin/structure/display-modes/form).

Surcharger une configuration de façon dynamique avec Drupal 8. Infoblox Integration in Ansible 2.5. The Ansible 2.5 open source project release includes the following Infoblox Network Identity Operating System (NIOS) enablement: Five modulesA lookup plugin (for querying Infoblox NIOS objects)A dynamic inventory script For network professionals, this means that existing networking Ansible Playbooks can utilize existing Infoblox infrastructure for IP Address Management (IPAM), using Infoblox for tracking inventory and more. For more information on Infoblox terminology, documentation and examples, refer to the Infoblox website Let’s elaborate on each of these Ansible 2.5 additions.

Drupal News, Tutorials, Opionions and How-Tos.

Backup

Utiliser les tunnels d'achat de Drupal Commerce 2. Drupal Performance Optimization Checklist. Envoyer les courriels transactionnels liés au compte utilisateur au format HTML avec Drupal 8. Personnaliser le journal d'activité d'une commande avec Drupal Commerce 2. Drupal Commerce 2 fournit par défaut un journal d'activité sur la vie de chaque commande : la mise au panier de produits, l'entrée dans le tunnel d'achat, la passation de la commande, son expédition éventuelle et sa conclusion.

A chaque statut de la commande correspond une entrée dans un journal qui est générée. Rendre inaccessible des pages non traduites avec Drupal 8. Appliquer un taux de TVA à un produit avec Drupal commerce 2. Drupal commerce 2 permet désormais nativement de gérer les différentes taxes et TVA à appliquer sur une boutique en ligne, quelque soit son pays et leurs règles respectives en cette matière. La plupart des modules contribués permettant de gérer ces éléments sur Commerce 1.x ne sont donc plus nécessaires. Découvrons comment utiliser le concept des Resolver de Drupal commerce 2.x pour définir le taux de TVA à appliquer sur différents produits.

Mettre en place des processus métier complexes avec State machine sur Drupal 8. Modifier la position des méta données sur le formulaire de saisie d'un contenu avec Drupal 8. Les méta données liées à un contenu (paramètres de menu, paramètres des commentaires, options de publications, paramètres des chemins d'urls, informations de publications, etc.) sont par défaut affichées, dans les formulaires d'ajout et d'édition, dans un panneau latéral.

Ceci a l'avantage de donner une visibilité immédiate sur ces options tout en rédigeant son contenu. Par exemple, notre formulaire ci-dessous présente un aperçu global des contenus et des métadonnées. Modifier de la configuration directement sur un site Drupal 8 en production. Filtrer des contenus par année avec Views sur Drupal 8. Mettre en place un processus de publication sur Drupal 8. Utiliser les modules expérimentaux de Drupal 8 ? Créer des entrées de menu sans lien avec Drupal 8. Intégrer simplement des médias tiers avec URL embed sur Drupal 8. Insérer des pièces jointes dans un corps de texte avec Drupal 8. Créer un mega menu avec Drupal 8. Les 13 défauts mythiques (ou pas) de Drupal 8. Vous recherchez un développeur Drupal 8 ? Token et les entités chainées sur Drupal 8. Personnaliser le menu d'administration de Drupal 8.

Présentation du module Protected file sur Drupal 8. Découverte et installation de Piwik. Créer une action pour des mises à jours en masse personnalisées avec Drupal 8. Mettre en place une visite guidée sur Drupal 8.

Websites

Modules. 2014 DIY Drupal 7 Performance - Google Slides. Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par …