Modifique el formato de su marcador de posición con filtros

En este artículo explicaremos cómo utilizar el Lenguaje de Plantillas de Sendinblue para modificar los marcadores de posición en sus e-mails mediante filtros.

¿Qué son los filtros?

Los filtros cambian el resultado de un marcador de posición. Se utilizan con llaves dobles
{{ }} y están separados por una barra vertical |, por ejemplo:{{ contact.NAME|upper }}. Se pueden encadenar varios filtros y el resultado de un filtro se aplicará al siguiente. 

Si quiere añadir un filtro a un marcador de posición en una campaña de e-mail o plantilla, deberá añadirlo de forma manual. En el editor Drag & Drop (nuevo), también tiene que escribir el marcador de posición de forma manual, ya que no se puede añadir un filtro a un marcador de posición que se añadió mediante la opción de Personalización.

Insertar un valor predeterminado

default

Inserta un valor de recuperación predeterminado en caso de que el valor de la variable esté vacío.

Entrada Salida
Hola, {{ contact.NAME|default:'qué tal' }}: Hola, qué tal:

Formato de mayúsculas de la palabra

capfirst

Haga que el primer carácter de una variable aparezca en mayúsculas y convierta el resto de caracteres en minúsculas.

Entrada Salida
{{ contact.MESSAGE|capfirst }} Mi coche rojo

title

Devuelve una versión con las mayúsculas del título del valor. Cada palabra empezará con mayúsculas y el resto de caracteres serán minúsculas.

Entrada Salida
{{ contact.NAME|title }} Juan Pérez

upper

Convierte cada carácter de una variable en mayúscula.

Entrada Salida
{{ contact.NAME|upper }} JOHN DOE

lower

Convierte cada carácter de una variable en minúscula.

Entrada Salida
{{ contact.NAME|lower }} john doe

truncatechars

Acorta una variable si supera el número de caracteres especificados. La variables truncadas acabarán con una elipsis (…) incluida en el recuento de caracteres.

Entrada Salida
{{ contact.MANAGER|truncatechars:7 }} Elisab…

Números de formato

floatformat

Redondea el resultado de los valores flotantes de sus variables a un decimal especificado.

Para que funcione correctamente, los valores deben incluirse como número, en lugar de como cadena, y los valores no deben incluirse entre comillas como “valor”.

Entrada Salida
{{ contact.BALANCE|floatformat:2 }} 40.32
{{ contact.BALANCE|floatformat:0 }} 40

lang_format

Cambia el formato del número según el idioma del destinatario.

Entrada Salida
{{ 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

Nota:

  • Para forzar 2 decimales, añada ,%.2f después del idioma de la variable.
  • En francés, el separador de enteros es un espacio de no separación.

Formato de fecha y hora

💡 Información relevante
- Las abreviaciones del día y del mes y los nombres completos solo se pueden utilizar en inglés.
- La hora de referencia es "Monday January 2 15:04:05 -0700 MST 2006".
- Si no se incluye un valor se considerará que es 0.
- La zona horaria predeterminada (si no se incluye) es UTC.
- Puede utilizar las palabras clave am/pm.
- Las formas más habituales de definir la zona horaria son: las palabras clave específicas(MST, CET, UTC, Asia/Kolkata etc.), o con formato númerico, +0100 o -0100, a UTC.

time_parse

Convierte el formato de su fecha (incluido como una cadena) a un formato de fecha estándar que puede utilizarse con otros filtros.

Para incluir el formato de fecha actual como un argumento, utilice el mismo formato de fecha/hora con el que se mostraría la hora de referencia si este fuera el valor.

Entrada Salida
{{ params.my_date|time_parse:"Lunes 02 de enero de 2006" }} Martes 11 de marzo de 2021

Nota: Si el formato de su cadena utiliza RFC3339 puede utilizar el parse específico time_parse_rfc3339 sin argumento.

date

Convierte la fecha a un formato concreto.

Obtendrá una fecha de una cadena utilizando el filtro time_parse o la hora actual utilizando el filtro date en el marcador de posición time_now.

Entrada Salida
{{ "14:01 01/06/2018"|time_parse:"15:04 02/01/2006"|date:"Enero 2 15:04:05 2006" }} Viernes junio 1 14:01:00 2018
{{ time_now|date:"Lunes, enero 2, 2006" }} Imprimirá el día y la fecha actual en el formato especificado
{{ time_now|date:"01" }}

 Imprimirá el mes actual

{{ time_now|date:"02" }}

 Imprimrá el día actual

{{ time_now|date:"2006" }}

 Imprimirá el año actual

time_add_date

Añade el número de días a un sello temporal o a una cadena de fecha. Es obligatorio incluir todos los valores en este filtro en este orden: "año, mes, día".

Entrada Salida
{{ time_now|time_add_date:"1,2,3" }} Imprimirá el sello temporal añadiendo 1 año, 2 meses y 3 días al sello temporal actual
{{ "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

Convierte un sello temporal o una cadena de fecha según la zona horaria incluida en el filtro. Es obligatorio incluir la zona horaria en el filtro con este formato: "ubicación/zona horaria”.

Entrada Salida
{{ time_now|time_in_location:"Europa/Berlín" }} Imprimirá el sello temporal actual en CEST
{{ "14:01 01/06/2018"|time_parse:"15:04 02/01/2006"|time_in_location: "Europa/Berlín" }} 2018-06-01 16:01:00 +0200 CEST

time_add_duration

Añade la duración a un sello temporal o a una cadena de fecha. Es obligatorio incluir al menos un valor (hora, minuto o segundo) al filtro.

Entrada Salida
{{ time_now|time_add_duration:"1h2m3s" }} Imprimirá el sello temporal después de añadir 1 hora, 2 minutos y 3 segundos al valor temporal en el sello temporal actual
{{ time_now|time_add_duration:"30m" }} Imprimrá el sello temporal después de añadir 30 minutos al valor temporal

time_unix

Convierte un valor temporal a un sello temporal Unix en segundos

Entrada Salida
{{ time_now|time_unix }} Imprimirá el sello temporal Unix en segundos

time_unix_nano

Convierte un valor temporal a un sello temporal Unix en nanosegundos.

Entrada Salida
{{ time_now|time_unix_nano }} Imprimirá el sello temporal Unix en nanosegundos

Otros filtros

first

Devuelve el primer elemento de una secuencia, un mapeo o una cadena.

Entrada Solicitud de la API
Salida
{{ params.array|first }} "params" :
{
"array" : [ 1,2,3,4 ]
}
1

join

Combina los elementos de un conjunto en una sola cadena utilizando el argumento como separador.

El separador entre elementos es una variable vacía de forma predeterminada. Puede definirlo con el primer parámetro opcional.

Entrada Salida
{{ [1, 2, 3]|join }} 123
{{ [1, 2, 3]|join: '|' }}
1|2|3

last

Devuelve el último elemento de una secuencia, un mapeo o una cadena.

Entrada Salida
{{ [1, 2, 3, 4]|last }} 4

length

Devuelve el número de elementos de una secuencia o un mapeo, o la longitud de una cadena.

Entrada Salida
{{ ['a', 'b', 'c', 'd']|length }} 4

safe

Marca una cadena para indicar que no requiere caracteres de escape de HTML antes de la salida.

Entrada

Solciitud de la API
Salida
{{ params.htmltest|safe }} "params" :{HtmlTest: "<p>Esta es mi frase de prueba</p>"} Esta es mi frase de prueba

Nota: Sin el filtro "safe" la etiqueta HTML aparecería como una cadena normal en el e-mail del destinatario: <p>Esta es mi frase de prueba</p>.

slice

Extrae un trozo de una frase, mapeo o cadena.

Este filtro se puede configurar para:

A Hará un bucle solo en los primeros "n" números de elementos de un conjunto En ambos casos, recuerde que los elementos de un conjunto se asignan a un único número de posición que empieza con "0" en la primera posición (se conocen como "indexados a cero").
B Recorrerá los elementos entre dos posiciones especificadas ("n" y "m") en el conjunto
C Recorrerá los elementos entre dos elementos especificados de un conjunto  

En cada ejemplo, imagine que su conjunto contiene: ["a","b","c","d","e","f","g","h"...].

 

Entrada Salida

A

{% for product in params.products|slice:':5' %}
{{ product.name - {{ product.price }}
{% endfor %}
Recorrerá las primeras 5 posiciones (0-4), que son: ["a","b","c","d","e"]
B {% for product en params.products|slice:'2:3' %}
{{ product.name - {{ product.price }}
{% endfor %}
Recorrerá las posiciones (2-3), que son: ["c","d"]
C {% for product en params.products|slice:'b:d' %}
{{ product.name - {{ product.price }}
{% endfor %}
Recorrerá los elementos especificados, que son: ["b","c","d"]

base64_encode o decode

Codifica o descodifica en base64:

  • base64_decode descodifica una cadena a un []byte
  • base64_encode codifica un []byte a una cadena
Entrada Salida
https://example.com/test?name={{ contact.FIRSTNAME|base64_encode }} https://example.com/test?name=RW56bw== (en lugar de https://example.com/test?name=Enzo)

Los filtros base64_encode y decode pueden coger un parámetro de codificación adicional:

  • std: codificación normal en base64,
  • raw_std: codificación normal en base64, sin los caracteres = de relleno,
  • url: versión segura de URL de codificación en base64, + y / se sustituyen por - y _ respectivamente,
  • raw_url: una combinación de raw y url, por ejemplo {{ contact.FIRSTNAME|base64_encode:"raw_url"}}.

Recursos adicionales

El Lenguaje de Plantillas de Sendinblue se basa en Pongo2, una reimplementación de Django in Go (un lenguaje de programación).

Todas las etiquetas compatibles

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

Todos los filtros compatibles

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.

Todos los filtros compatibles con algoritmos hash

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.

💡 Información relevante
Si identifica un filtro deseable que aún no es compatible, póngase en contacto con su equipo de atención al cliente creando un ticket desde su cuenta. Si aún no tiene una cuenta, puede ponerse en contacto con nosotros aquí.

⏭️ Qué es lo siguiente

🤔 ¿Tiene alguna duda?

Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de asistencia mediante la creación de un ticket desde su cuenta. Si todavía no tiene una cuenta, puede ponerse en contacto con nosotros aquí.