Modifiez le formatage de votre balise avec des filtres

Dans cet article, nous allons expliquer comment utiliser le langage de template de Sendinblue pour modifier les balises dans vos e-mails en utilisant des filtres.

Que sont les filtres ?

Les filtres modifient la sortie d'une balise. Ils sont utilisés entre des accolades doubles {{ }} et séparés par le caractère |, par exemple {{ contact.PRENOM|upper }}. Plusieurs filtres peuvent être enchaînés et la sortie d'un filtre est appliquée au suivant. 

Pour ajouter un filtre à une balise dans une campagne ou un template, vous devez l'ajouter manuellement. Dans l'éditeur Drag & Drop (Nouveau), vous devez également écrire la balise manuellement, car vous ne pouvez pas ajouter un filtre à une balise qui a été ajoutée à l'aide de l'option Personnalisation.

Insérer une valeur par défaut

default

Insère une valeur de repli par défaut lorsque la valeur de la balise est vide.

Entrée Sortie
Bonjour {{ contact.NAME|default:'cher client' }}, Bonjour cher client,

Format de la case

capfirst

Met le premier caractère de la valeur de la balise en majuscule et convertit les autres caractères en minuscules.

Entrée Sortie
{{ contact.MESSAGE|capfirst }} Ma voiture rouge

title

Renvoie une version de la valeur de la balise avec des titres. Les mots commencent par des lettres majuscules, tous les autres caractères sont des minuscules.

Entrée Sortie
{{ contact.NAME|title }} John Doe

upper

Transforme chaque caractère de la valeur de la balise en majuscule.

Entrée Sortie
{{ contact.NAME|upper }} JOHN DOE

lower

Fait de chaque caractère de la valeur de la balise une minuscule.

Entrée Sortie
{{ contact.NAME|lower }} john doe

truncatechars

Raccourcit la valeur de la balise si elle est plus longue que le nombre de caractères spécifié. Les valeurs tronquées se termineront par une ellipse (...) incluse dans le nombre de caractères.

Entrée Sortie
{{ contact.MANAGER|truncatechars:7 }} Elisab…

Format des numéros

floatformat

Arrondit la sortie des valeurs flottantes de votre balise à la décimale spécifiée.

Pour fonctionner correctement, les valeurs passées doivent être passées comme un nombre, plutôt que comme une chaîne, et les valeurs ne doivent pas être passées entre guillemets comme "valeur" .

Entrée Sortie
{{ contact.BALANCE|floatformat:2 }} 40.32
{{ contact.BALANCE|floatformat:0 }} 40

lang_format

Formate les nombres en fonction de la langue du destinataire.

Entrée Sortie
{{ params.NUMBER|lang_format:"fr" }} 123 456,789
{{ params.NUMBER|lang_format:"en" }} 123,456.789
{{ params.NUMBER|lang_format:"hi" }} 1,23,456.789
{{ params.NUMBER|lang_format:"bn" }} ১,২৩,৪৫৬.৭৮৯
{{ params.NUMBER|lang_format:"fr,%.2f" }} 123 456,79

Remarque :

  • Pour forcer 2 décimales, ajoutez ,%.2f après le filtre de langue.
  • Pour le français, le séparateur de milliers est un espace insécable.

Format de la date et de l'heure

💡 Bon à savoir
- Les abréviations du jour et du mois ainsi que les noms complets sont en anglais uniquement.
- L'heure de référence est "Monday January 2 15:04:05 -0700 MST 2006".
-
Si une valeur n'est pas fournie, elle est considérée comme égale à 0.
-
Le fuseau horaire par défaut (s'il n'est pas indiqué) est UTC.
- Vous pouvez utiliser les mots-clés am/pm.
- Les façons les plus courantes de définir le fuseau horaire sont : les mots-clés dédiés (MST, CET, UTC, Asia/Kolkata etc.), ou comme valeur numérique, +0100 ou -0100, par rapport à UTC.

time_parse

Convertit votre format de date (transmis sous forme de chaîne) en un format de date standard qui peut être utilisé avec d'autres filtres.

Pour passer votre format de date actuel comme argument, formatez la date/heure exacte de la façon dont l'heure de référence serait affichée si elle était la valeur.

Entrée Sortie
{{ params.my_date|time_parse:"Monday 02 January 2006" }} Tuesday 11 March 2021

Remarque : Si votre chaîne est formatée à l'aide de RFC3339, vous pouvez utiliser l'analyseur dédié time_parse_rfc3339 sans argument.

date

Convertit une date dans un format spécifié.

Vous obtiendrez une date à partir d'une chaîne de caractères en utilisant le filtre time_parse ou l'heure actuelle en passant le filtre date à la balise time_now.

Entrée Sortie
{{ "14:01 01/06/2018"|time_parse:"15:04 02/01/2006"|date:"Mon Jan 2 15:04:05 2006" }} Fri Jun 1 14:01:00 2018
{{ time_now|date:"Monday, Jan 2, 2006" }} Imprimera le jour et la date en cours au format spécifié
{{ time_now|date:"01" }}

Imprimera le mois en cours

{{ time_now|date:"02" }}

Imprimera le jour en cours

{{ time_now|date:"2006" }}

Imprimera l'année en cours

time_add_date

Ajoute le nombre de jours à une chaîne d'horodatage ou de date. Il est obligatoire de passer toutes les valeurs à ce filtre dans l'ordre suivant : "année, mois, jour".

Entrée Sortie
{{ time_now|time_add_date:"1,2,3" }} Imprimera l'horodatage après avoir ajouté 1 an, 2 mois et 3 jours à l'horodatage actuel.
{{ "14:01 01/06/2018"|time_parse:"15:04 02/01/2006"|time_add_date: "1,2,3" }}
2019-08-04 14:01:00 +0000 UTC

time_in_location

Convertit un horodatage ou une chaîne de date en fonction du fuseau horaire transmis au filtre. Il est obligatoire de passer un fuseau horaire au filtre dans le format suivant : "location/fuseau horaire".

Entrée Sortie
{{ time_now|time_in_location:"Europe/Berlin" }} Imprimera l'heure actuelle en CEST
{{ "14:01 01/06/2018"|time_parse:"15:04 02/01/2006"|time_in_location: "Europe/Berlin" }} 2018-06-01 16:01:00 +0200 CEST

time_add_duration

Ajoute une durée à un horodatage ou à une chaîne de dates. Il est obligatoire de passer au moins une valeur (heure, minute ou seconde) dans le filtre.

Entrée Sortie
{{ time_now|time_add_duration:"1h2m3s" }} Imprimera l'horodatage après avoir ajouté 1 heure, 2 minutes et 3 secondes à la valeur temporelle de l'horodatage actuel.
{{ time_now|time_add_duration:"30m" }} Imprimera l'horodatage après avoir ajouté 30 minutes à la valeur du temps.

Convertit une valeur de temps en horodatage Unix en secondes.

Entrée Sortie
{{ time_now|time_unix }} Imprimera l'horodatage Unix actuel en secondes

Convertit une valeur de temps en horodatage Unix en nanosecondes.

Entrée Sortie
{{ time_now|time_unix_nano }} Imprimera l'horodatage Unix actuel en nanosecondes

first

Renvoie le premier élément d'une séquence, d'un mappage ou d'une chaîne.

Entrée Demande API Sortie
{{ params.array|first }} "params" :
{
"array" : [ 1,2,3,4 ]
}
1

join

Combine les éléments d'un tableau en une seule chaîne de caractères en utilisant l'argument comme séparateur.

Le séparateur entre les éléments est vide par défaut. Vous pouvez le définir avec le premier paramètre facultatif.

Entrée Sortie
{{ [1, 2, 3]|join }} 123
{{ [1, 2, 3]|join: '|' }}
1|2|3

last

Renvoie le dernier élément d'une séquence, d'un mappage ou d'une chaîne.

Entrée Sortie
{{ [1, 2, 3, 4]|last }} 4

length

Renvoie le nombre d'éléments d'une séquence ou d'un mappage, ou la longueur d'une chaîne.

Entrée Sortie
{{ ['a', 'b', 'c', 'd']|length }} 4

safe

Marque une chaîne de caractères comme ne nécessitant pas d'échappement HTML supplémentaire avant la sortie.

Entrée

Demande API Sortie
{{ params.htmltest|safe }} "params" :{HtmlTest: "<p>This is my test sentence.</p>"} This is my test sentence

Remarque : sans le filtre safe, la balise HTML s'afficherait comme une chaîne normale dans l'e-mail du destinataire : <p>This is my test sentence</p>.

slice

Extrait une tranche d'une séquence, d'un mappage ou d'une chaîne.

Ce filtre peut être configuré pour :

A Ne passer en boucle que le premier nombre "n" d'éléments d'un tableau. Dans ces deux cas, rappelez-vous que les éléments d'un tableau se voient attribuer un numéro de position unique commençant par "0" comme première position (ils sont "indexés à zéro").
B Passer en boucle les éléments entre deux positions spécifiées ("n" et "m") dans le tableau.
C Passer en boucle les éléments entre deux éléments spécifiés dans un tableau.  

Dans chaque exemple, considérez que votre tableau contient les éléments suivants : ["a","b","c","d","e","f","g","h"...].

 

Entrée Sortie

A

{% for item in params.items|slice:':5' %}
{{ item.name - {{ item.price }}
{% endfor %}
Passera en boucle les 5 premières positions (0-4), qui sont : ["a","b","c","d","e"]
B {% for item in params.items|slice:'2:3' %}
{{ item.name - {{ item.price }}
{% endfor %}
Passera en boucle les positions (2-3), qui sont : ["c","d"]
C {% for item in params.items|slice:'b:d' %}
{{ item.name - {{ item.price }}
{% endfor %}
Passera en boucle les éléments spécifiés, qui sont : ["b","c","d"]

base64_encode or decode

Encode ou décode la base 64 :

  • base64_decode décode une chaîne de caractères vers un []byte
  • base64_encode encode un []byte en une chaîne de caractères.
Entrée Sortie
https://example.com/test?name={{ contact.FIRSTNAME|base64_encode }} https://example.com/test?name=RW56bw== (instead of https://example.com/test?name=Enzo)

Les filtres base64_encode et decode peuvent prendre un paramètre d'encodage optionnel :

  • std: encodage normal base64,
  • raw_std: encodage normal base64, sans les caractères de remplissage =,
  • url: version sécurisée de l'encodage base64 pour les URL, + et / sont remplacés par - et _ respectivement,
  • raw_url: une combinaison de raw et url, par exemple : {{ contact.FIRSTNAME|base64_encode : "raw_url"}}.

Ressources supplémentaires

Le langage de template de Sendinblue est basé sur Pongo2, qui est une réimplémentation de Django en Go (un langage de programmation).

Tags supportés

autoescape, comment, cycle, filter, firstof, for, if, ifchanged, now, set, spaceless, templatetag, with.

Filtres supportés

escape, safe, escapejs, add, addslashes, capfirst, center, cut, date, default, default_if_none, divisibleby, first, floatformat, get_digit, iriencode, join, last, length, length_is, linebreaks, linebreaksbr, linenumbers, ljust, lower, make_list, phone2numeric, pluralize, random, removetags, rjust, slice, stringformat, striptags, time, title, truncatechars, truncatechars_html, truncatewords, truncatewords_html, upper, urlencode, urlize, urlizetrunc, wordcount, wordwrap, yesno.

Filtres supportés pour les algorithmes de hachage

hash_md5, hash_sha256, hash_sha256_224, hash_sha512, hash_sha512_224, hash_sha512_256, hash_sha512_384, hash_sha3_224, hash_sha3_256, hash_sha3_384, hash_sha3_512.

💡 Bon à savoir
Si vous identifiez un filtre souhaitable qui n'est pas encore supporté, veuillez contacter notre équipe de service clientèle en créant un ticket depuis votre compte. Si vous n'avez pas encore de compte, vous pouvez nous contacter ici.