Notifications par mail pour un type de contenu donné

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour les Drupaliens !

De retour dans Drupal après deux ans de pause (merci mon fils), je découvre un tout nouveau et tout beau Drupalfr, et j'en profite pour venir chercher la lumière ! :D

Alors déjà, je suis assez étonnée que la recherche ne donne absolument aucun résultat sur "notification" ou "email" alors que ces tags semblent avoir déjà été utilisés :/
Donc n'ayant pas trouvé d'info, je vous expose mon problème tout bête : je réalise un site pour une crèche, sur lequel seront entre autres publiés des actus et des événements. J'ai donc créé deux types de contenu pour ça.
Le site devant devenir un vecteur d'info privilégié (pour compléter/remplacer l'affichage papier en crèche), il est important que les parents soient informés de toute nouvelle publication, mais pour ces deux types de contenu uniquement.

J'ai les contraintes suivantes :

  • les parents ont le rôle... "parent"... bah voui :P Ce rôle leur permet uniquement d'accéder au contenu du site, qui est en grande partie privé
  • chaque compte parent est créé par mes soins (pas d'inscription directe possible)
  • par défaut, chaque compte parent créé doit l'être avec la notification par mail autorisée
  • le mail envoyé au parent à la création de son compte mentionne cette inscription automatique et lui rappelle la possibilité de se désinscrire à tout moment de la notification/du site (même si ce n'est pas dans son intérêt, c'est son droit)
  • la désactivation/réactivation des notifications doit être simplissime et claire
  • à la publication d'une actu ou d'un event, tous les utilisateurs ayant le rôle "parent" et ayant autorisé les notifs par email (donc tout le monde au début ^^) doivent recevoir un email avec type de contenu, titre, résumé et lien pour lire la suite + lien direct vers le profil pour se désabonner.

J'avais dans l'idée d'utiliser Trigger et Rules, mais je bats et me débats dans la configuration...
Je pense que je ne saisis pas le contexte et que je suis donc dans l'incapacité de dire au système ce que j'attends de lui x)

J'ai commencé par créer deux cases à cocher Notifications actu et Notifications event dans les paramètres des utilisateurs.
Ensuite, j'ai créé une nouvelle règle, avec comme événement déclencheur l'enregistrement d'un nouveau contenu de type actu (et l'intention de faire pareil ensuite pour event). Jusqu'ici tout va bien ! :p Après, ça se gâte x)
Je comprends que dans la partie Actions, c'est là que je devrais dire "envoie un email à tous les utilisateurs ayant le rôle "parent" qui ont accepté de recevoir les notifications". Il me semble que je dois faire une boucle à un moment, pour parcourir la liste des utilisateurs parent... Mais je ne comprends pas comment. Et vérifier si la notification est activée ou non pour chaque parent, est-ce que ça devrait se faire dans Conditions ?

Pour résumer, à la publication d'une actu :

  • Recherche des utilisateurs ayant le rôle parent : on récupère une liste
    • Pour chaque parent de la liste : vérification de la valeur du champ Notifications actu
      • Notif = oui --> on envoie un mail puis on passe au suivant
      • Notif = non --> on ne fait rien et on passe au suivant

Et je ne comprends décidément pas comment faire ça :/
Auriez-vous à me proposer des suggestions, des indications, des flingues pour se tirer une balle ? :)
Merci d'avance !

PS : mince, j'ai pondu un de ces pâtés :/

Version de Drupal :