web-dev-qa-db-fra.com

Comment envoyer une notification par courrier électronique lorsqu'un champ spécifique d'un nœud ou d'un utilisateur a été modifié?

Lorsqu'un noeud (ou un profil utilisateur) est modifié, est-il possible d'envoyer une notification par courrier électronique uniquement lorsqu'un champ spécifié est modifié?

Avec le noeud, je n'ai aucun problème, mais je ne peux pas le faire fonctionner pour un domaine spécifique.

3
kb8

Vous pouvez utiliser le module règles pour cela. Voici quelques détails sur la façon de faire:

  • Règles Evénement : Avant d'économiser du contenu.
  • condition de règles : comparez la valeur du champ spécifique, pour la valeur d'origine (avant d'éditer le champ) et la valeur (nouvelle) mise à jour, pour vérifier S'ils sont différents.
  • condition de règles : Envoyer un courrier électronique (qui est généralement mis en œuvre en tant que "composant de règles" distinct (qui est invoqué comme l'action de règles), alors que vous passez la valeurs telles que l'identifiant de nœud, l'utilisateur actuel, l'auteur, etc. dans le composant Règles, vous composez ensuite le courrier électronique actuel (modèle) que vous souhaitez être envoyé par courrier électronique. Pour un exemple d'un tel composant de règles, jetez un coup d'œil à ma réponse à " Comment puis-je définir un rappel pour qu'un utilisateur spécifique soit déclenché à une date précise? " (qui inclut un tel composant dans le format d'exportation de règles également).

Devrait être directement avancé pour "développer" de telle règle, no (PHP) codant sur tout impliqué (seul bâtiment du site à l'aide de l'interface utilisateur de l'administrateur).

3
Pierre.Vriens

Regardez Hook_user_update . Ce crochet s'appelle lorsqu'un compte d'utilisateur (profil utilisateur?) Est mis à jour.

Vous voudrez peut-être aussi regarder harok_node_update . Vous ne pourrez pas utiliser le hook_node_update Pour être notifié lorsque vos comptes d'utilisateur sont mis à jour, mais sur cette page il y a un commentaire sur $node->original avoir les valeurs du $node avant la mise à jour.

Je n'ai pas testé cela moi-même (devrait être un trivial excursive), mais vous pouvez avoir de la chance et de trouver $ Compte-> original (ou quelque chose de similaire) stocke les valeurs d'origine du compte d'utilisateur.

C'est ensuite une simple question de tester l'ancienne valeur de champ contre le nouveau pour voir si un changement s'est produit et vous pouvez prendre des mesures appropriées - comme l'envoi d'un courrier.

0
JP Dippenaar