Modèles Dynamiques
Les modèles dynamiques d'e-mail EngageLab prennent en charge le langage de template Handlebars pour présenter le contenu personnalisé que vous envoyez via l'API.
Remplacement de Variable
Remplacement Basique
Exemple de Modèle
<p>Bonjour {{firstname}}</p>
Données de Test
{ "firstName": "Engagelab" }
Résultat du Rendu
<p>Bonjour Engagelab</p>
Remplacement d'Objet Imbriqué
Exemple de Modèle
<p>Bonjour {{user.profile.firstName}}</p>
Données de Test
{
"user": {
"profile": {
"firstName": "Engagelab"
}
}
}
Résultat du Rendu
<p>Bonjour Engagelab</p>
formatDate
La fonction formatDate accepte des timestamps Unix ou des heures au format ISO8601 et les convertit dans le format que vous spécifiez en utilisant les marqueurs du tableau ci-dessous.
En prenant l'heure UTC 1987-09-20T20:55:00.000Z comme exemple, les résultats de conversion et d'affichage sont présentés dans le tableau ci-dessous :
| Marqueur | Résultat |
|---|---|
| YYYY | 1987 |
| YY | 87 |
| MMMM | September |
| MMM | Sep |
| MM | 09 |
| M | 9 |
| DD | 20 |
| D | 20 |
| dddd | Sunday |
| ddd | Sun |
| hh | 08 |
| h | 8 |
| HH | 20 |
| H | 20 |
| mm | 55 |
| m | 55 |
| ss | 00 |
| s | 0 |
| A | PM |
| ZZ | +0000 |
| Z | +00:00 |
Exemple de Modèle
<p>{{formatDate timeStamp dateFormat}}</p>
<!-- Exemple de décalage horaire -->
<p>{{formatDate timeStamp dateFormat timezoneOffset}}</p>
Données de Test
{
"timeStamp": "1987-09-20T12:55:00.000Z",
"dateFormat": "YYYY-MM-DD HH:mm:ss A",
"timezoneOffset": "+0800"
}
Résultat du Rendu
<!-- Résultat du Rendu (Modèle Un) -->
<p>1987-09-20 12:55:00 PM</p>
<!-- Résultat du Rendu (Modèle Deux) -->
<p>1987-09-20 20:55:00 PM</p>
Insert
Exemple de Modèle
<p>Merci de nous avoir contactés au sujet de {{insert businessName "votre entreprise"}}.</p>
Données de Test
// Données de Test Un
{}
// Données de Test Deux
{
"businessName": "Engagelab"
}
Résultat du Rendu
<!-- Résultat du Rendu Un -->
<p>Merci de nous avoir contactés au sujet de votre entreprise.</p>
<!-- Résultat du Rendu Deux -->
<p>Merci de nous avoir contactés au sujet de Engagelab.</p>
Instructions Conditionnelles
If, Else, Else If
Exemple de Modèle
{{#if user.profile.isTeacher}}
<p>Bonjour, Enseignant {{user.profile.firstName}}</p>
{{else if user.profile.isStudent}}
<p>Bonjour, Étudiant {{user.profile.firstName}}</p>
{{else}}
<p>Bonjour, {{user.profile.firstName}} ! Bienvenue.</p>
{{/if}}
Données de Test
// Données de Test Un
{
"user": {
"profile": {
"firstName": "Zhang San",
"isTeacher": true
}
}
}
// Données de Test Deux
{
"user": {
"profile": {
"firstName": "Li Si",
"isStudent": true
}
}
}
// Données de Test Trois
{
"user": {
"profile": {
"firstName": "Wang Wu"
}
}
}
Résultat du Rendu
<!-- Résultat du Rendu (Données de Test Un) -->
<p>Bonjour, Enseignant Zhang San</p>
<!-- Résultat du Rendu (Données de Test Deux) -->
<p>Bonjour, Étudiant Li Si</p>
<!-- Résultat du Rendu (Données de Test Trois) -->
<p>Bonjour, Wang Wu ! Bienvenue.</p>
Unless
Exemple de Modèle
{{#unless license}}
<p class="warning">ATTENTION : Cette entrée ne possède pas de licence !</p>
{{/unless}}
Données de Test
{}
Résultat du Rendu
<!-- Résultat du Rendu -->
<p class="warning">ATTENTION : Cette entrée ne possède pas de licence !</p>
Opérateurs de Comparaison
Les opérateurs de comparaison prennent en charge deux modes d'utilisation : basique et avec else.
La syntaxe prise en charge est indiquée dans le tableau suivant :
| Expression | Explication |
|---|---|
| greaterThan | > |
| lessThan | < |
| equals | = |
| greaterThanOrEquals | >= |
| lessThanOrEquals | <= |
| notEquals | != |
basique
Exemple de Modèle
<p>
{{#greaterThan truckWeight limitWeight}}
Le camion n'est pas autorisé à passer.
{{/greaterThan}}
</p>
Données de Test
{
"truckWeight": 6,
"limitWeight": 5
}
Résultat du Rendu
<p>
Le camion n'est pas autorisé à passer.
</p>
avec else
Exemple de Modèle
<p>
{{#greaterThan truckWeight limitWeight}}
Le camion n'est pas autorisé à passer.
{{else}}
Le camion est autorisé à passer.
{{/greaterThan}}
</p>
Données de Test
{
"truckWeight": 5,
"limitWeight": 5
}
Résultat du Rendu
<p>
Le camion est autorisé à passer.
</p>
in, notIn
Comme les opérateurs de comparaison, ils prennent également en charge deux modes d'utilisation : basique et avec else.
Exemple de Modèle
<p>
{{#in fruit favoriteFruits}}
Aime en manger.
{{else}}
N'aime pas en manger.
{{/in}}
</p>
Données de Test
// Données de Test Un
{
"fruit": "Apple",
"favoriteFruits": [
"Apple",
"Banana",
"Orange"
]
}
// Données de Test Deux
{
"fruit": "Grape",
"favoriteFruits": [
"Apple",
"Banana",
"Orange"
]
}
Résultat du Rendu
<!-- Résultat du Rendu Un -->
<p>
Aime en manger.
</p>
<!-- Résultat du Rendu Deux -->
<p>
N'aime pas en manger.
</p>
Itération
Each
Exemple de Modèle
<ul>
{{#each fruits}}
<li>{{this}}</li>
{{/each}}
</ul>
Données de Test
{
"fruits": [
"Apple",
"Banana",
"Orange"
]
}
Résultat du Rendu
<ul>
<li>Apple</li>
<li>Banana</li>
<li>Orange</li>
</ul>
Explications Supplémentaires
Lorsque vous utilisez each pour parcourir un tableau, vous pouvez utiliser {{@index}} pour référencer l'index courant de la boucle.
{{#each array}} {{@index}} : {{this}} {{/each}}
De plus, pour l'itération d'objet, {{@key}} est utilisé pour référencer le nom de la clé courante.
{{#each object}} {{@key}} : {{this}} {{/each}}
With
Exemple de Modèle
{{#with user.profile}}
<p>Bonjour {{firstName}}</p>
{{/with}}
Données de Test
{
"user": {
"profile": {
"firstName": "Engagelab"
}
}
}
Résultat du Rendu
<p>Bonjour Engagelab</p>

