web-dev-qa-db-fra.com

Comment puis-je rendre un jeton dans un jeton via des règles de courrier?

Je veux envoyer un nœud via des règles. Je peux l'envoyer en utilisant le jeton [noeud: corps]. Cependant, je souhaite également utiliser des jetons dans le corps du nœud actuel. (Remarque: ce ne sont pas des jetons mondiaux)

Pense à cela comme une newsletter et dans le champ du corps que j'utilise

Cher [Field_ef_First_Name], ...

Je peux obtenir le jeton de rendre si je le mettais directement dans le corps du message de messagerie à action, mais si c'est dans le champ du corps du nœud lui-même, cela ne rend pas.

Le champ Nom vient de trouver une boucle de règle de vues.

Règle exportée:

{ "rules_send_newsletter_when_published" : {
"LABEL" : "Send newsletter when published",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "node_insert--blog" : { "bundle" : "blog" } },
"DO" : [
  { "VIEW LOOP" : {
      "VIEW" : "entityforms",
      "DISPLAY" : "views_rules_1",
      "ROW VARIABLES" : {
        "field_ef_email" : { "email" : "Email" },
        "field_ef_first_name" : { "first_name" : "First Name" }
      },
      "DO" : [
        { "mail" : {
            "to" : "[email:value]",
            "subject" : "[node:title]",
            "message" : "[node:body]",
            "language" : [ "" ]
          }
        }
      ]
    }
  }
]

}}

4
Nigel Waters

À l'aide de jetons dans le corps d'un nœud, combiné à l'utilisation de [node:body] Dans une action de règles, il suffira que le jeton soit inclus tel quel (sans rendu). Cependant, sur la base de ce que vous essayez de faire, vous voudrez peut-être jeter un coup d'œil à une approche totalement différente pour atteindre votre objectif ...

Activer le module - forena (DIVULGATION: Je suis un co-mainteneur) et consultez Email actif des utilisateurs (Utilisation de la syntaxe Frx), qui est l'un des échantillons Inclus dans le module (qui peut être utilisé pour envoyer un courrier électronique à un Corps de message Modèle à tous les utilisateurs enregistrés).

Ce sont les pièces de ce fichier FRX qui sont pertinentes pour la question ici:

  • Le Datablock drupal/active_users, Qui est (juste) une instruction SQL qui ressemble à:

    --ACCESS=access administration pages

    SELECT uid, name, mail, login, status

    FROM {users}

    WHERE status=1 order by name

  • Le frx:foreach="*", Qui provoquera une itération pour chaque ligne incluse dans les résultats du bloc de données, pour tout à l'intérieur de celui-ci div (lié à la Datablock).

  • Le div avec class="email-body", Qui commence par Dear {name}, Et qui comprend un jeton de remplacement ​​ indiqué avec {name}.

  • La ligne avec <frx:doc type="email" />, Pour activer le format de document "Envoyer un e-mail".

Une fois que vous avez activé le module et visitez le chemin relatif à /reports/drupaladmin.sample_active_users_letter, C'est ce qui va arriver:

  1. Exécutez la requête SQL (comme contenue dans la Datablock).
  2. Itérate sur chacun des résultats renvoyés par l'instruction Datablock (SQL).
  3. Pour chaque itération résolue tous les jetons (c'est-à-dire comme dans ce type Dear {name}).
  4. Affiche comment l'e-mail ressemblera réellement (pour chaque itération).
  5. Ajouter un lien (en haut à droite) intitulé "Email". Si vous cliquez sur ce lien "Email", un écran de confirmation s'affiche avec ces détails: [.____]
    • nombre de courriels qui seront envoyés par courrier électronique (= nombre de lignes dans la Datablock).
    • bouton radio pour envoyer un email ou envoyer tous les emails.

Avec ce qui précède, c'est ce que vous auriez besoin de le faire fonctionner pour votre cas:

  • Cloner l'échantillon livré et syntonisez-le comme détaillé ci-dessous.
  • Adaptez le Datablock pour récupérer les données souhaitées (colonnes), semblables à votre vue. Ou créer un nouveau qui correspond à vos besoins et utilisez-le à la place. Assurez-vous d'inclure les données relatives à votre field_ef_email Et field_ef_first_name.
  • Adapter le de, à et Sujet ​​Pour répondre à vos besoins.
  • Utilisez les jetons dont vous avez besoin, n'importe où dans le Corps de votre email. Par exemple. remplacer cela Dear {name}. Si vous avez besoin de plus, ou d'autres données, ajoutez simplement un nom approprié à votre Datablock (en tant que colonne supplémentaire). En tant qu'échantillon, voici une partie d'un fichier FRX que j'ai créé pour transformer les soumissions WebForm en une sorte de courrier électronique à chacun de ceux qui ont soumis le formulaire:

    <p>Hello,</p>

    <p>thank you for using our form (with node id = {node}) to submit your feedback (with submission id = {submission}). You're now confirmed via the eMail Id you entered (= {fieldvalue}) to receive eMails from us.</p>

    <p>We'll get back to you shortly for an additional followup eMail.</p>

2
Pierre.Vriens