
Module de règles – actions automatiques dans Drupal 8
Aujourd'hui, nous vous montrerons comment automatiser des actions sur votre site Web basé sur Drupal. Cela lui permettra de fonctionner de manière encore plus autonome par rapport à votre contribution. Nous créons des actions automatisées sur divers types de sites Web dans le cadre de notre service de développement Drupal.
L'envoi automatisé de mails, la publication de nouveaux contenus à une heure spécifiée et les redirections après avoir satisfait certaines conditions ne sont que quelques-unes des fonctionnalités du module Rules.
Rules est un outil qui vous permet de définir des actions automatiques s'exécutant sous condition, déclenchées par divers types d'événements.
Quels sont quelques exemples de telles actions automatisées ? Par exemple :
- rediriger l'utilisateur après qu'il s'est connecté ;
- envoyer un e-mail après l'ajout de contenu ;
- publier du contenu à un horaire spécifique.
À la base du module se trouve la règle Événement – Condition – Action, avec une nuance – la CONDITION ne doit pas nécessairement faire partie de ce schéma.
Un schéma d'exemple pourrait être le suivant :
- Un utilisateur ajoute une entrée – c'est l'événement.
- Le type de l'entrée ajoutée est “Article” – c'est la condition.
- Notifier l'administrateur par e-mail de l'ajout d'une entrée – c'est l'action.
Installation et configuration du module Rules
Actuellement (janvier 2019), le module est encore disponible uniquement en version alpha4, ce qui signifie que certaines de ses fonctionnalités et caractéristiques peuvent ne pas fonctionner correctement, et il peut encore y avoir quelques erreurs et bugs.
Pour les besoins de cet article, nous avons utilisé la version DEV du module.
L'exemple ci-dessous fonctionne et a été testé sur la configuration décrite ci-dessous :
Drupal : 8.6.5
Rules : 8.x-3.x-dev
Typed Data : 8.x-1.0-alpha2
Téléchargez les modules et décompressez-les dans le répertoire /modules/contrib.
Rules – https://www.drupal.org/project/rules
Typed Data – https://www.drupal.org/project/typed_data
Si vous allez créer des règles avec des rôles d'utilisateur dans les conditions, par exemple, si vous souhaitez rediriger les utilisateurs avec le rôle “administrateur” qui se connectent à un site spécifique, vous devrez ajouter un patch : https://www.drupal.org/files/issues/2816157-10.patch. Il ne sera probablement pas nécessaire à l'avenir, mais en l'état actuel, il est toujours requis pour que la condition de rôle utilisateur fonctionne correctement.
Comment appliquer des patchs ? – https://www.drupal.org/patch/apply.
Création et test de vos règles
Nous allons maintenant vous montrer comment ajouter une nouvelle règle, étape par étape : Redirection vers la page /admin/people après qu'un utilisateur avec le rôle d'administrateur s'est connecté au site Web.
Ajouter une nouvelle règle - /admin/confg/workflow/rules.
Remplissez les champs :
- Nommez votre règle en utilisant le champ étiquette.
- Dans le menu déroulant, sélectionnez l'événement qui déclenchera votre règle. Dans notre cas, ce sera “L'utilisateur s'est connecté”.
Sélectionnez la valeur appropriée, dans notre cas, ce sera "L'utilisateur a des rôles”.
Maintenant, vous allez aborder la partie la plus difficile de la création d'une règle, à savoir la sélection des objets appropriés sur lesquels la condition fonctionnera. Vous devez être très prudent ici, car bien que ce champ soit validé, il se peut que vous définissiez parfois des valeurs erronées qui poseront problème par la suite.
Dans la section UTILISATEUR, passez du mode de remplissage automatique au mode de sélection. Passer à la sélection de données.
Cette condition concerne les utilisateurs, car c'est leur rôle que vous devez vérifier, donc vous devez taper “compte” dans le champ.
Dans la section RÔLES, entrez les rôles qui rempliront la condition. Vous devez entrer le nom machine. Vous pouvez le consulter sur la page /admin/people/roles en modifiant un rôle sélectionné. Dans notre cas, ce sera “administrateur”. Vous pouvez ajouter plus de rôles, gardez simplement à l'esprit d'ajouter un seul rôle par ligne.
Dans la section ASSORTIR LES RÔLES, si vous avez sélectionné plusieurs rôles, vous pouvez définir si l'utilisateur doit avoir chacun de ces rôles (ET) ou l'un d'entre eux (OU).
Dans la section NÉGATION, vous pouvez sélectionner si cette condition doit être remplie lorsque les paramètres ci-dessus ne sont PAS REMPLIS – dans ce cas, l'action sera exécutée lorsque chaque utilisateur se connectera, sauf ceux qui ont un rôle d'administrateur.
Ajouter une action.
Sélectionnez Redirection de page dans la section Système.
Entrez l'adresse (interne ou externe) vers laquelle l'utilisateur doit être redirigé après la connexion.
Enregistrez et testez la règle.
Pour vous assurer que la règle fonctionne, vide le cache de Drupal.
Connectez-vous maintenant et vérifiez si la redirection fonctionne.
Ma redirection pour le rôle d'administrateur ne fonctionne pas. Que faire ?
PHP génère une erreur :
- assurez-vous d'avoir appliqué le patch mentionné ci-dessus;
- assurez-vous d'avoir utilisé l'objet “compte” dans la section UTILISATEUR de la condition de la règle.
La redirection ne fonctionne pas après la connexion :
- assurez-vous que la règle est enregistrée correctement;
- vide le cache de Drupal;
- assurez-vous que le nom du rôle dans la condition est correct.
Découvrez les nombreuses possibilités du module Rules.
Le module Rules est un outil vraiment puissant qui vous permet de construire des règles complexes qui automatiseront votre site Web.
Si vous avez une idée pour utiliser cet outil dans votre projet, mais que vous avez seulement besoin de consultation Drupal, n'hésitez pas à nous contacter.