Como modificar a formatação de seu placeholder usando filtros

Neste artigo, vamos explicar como usar a Linguagem do modelo Sendinblue para modificar os placeholders em seus e-mails, usando filtros.

O que são filtros?

Filtros mudam o resultado de um placeholder. Eles são usados dentro de chaves duplas
{{ }} e separados por uma barra vertical |, ex.: {{ contact.NAME|upper }}. Vários filtros podem ser usados juntos e o resultado de um filtro é aplicado ao próximo

Para adicionar um filtro a um placeholder em uma campanha ou modelo de e-mail, você deve adicioná-lo manualmente. No editor Arrastar e soltar (Novo), você também deve escrever o placeholder manualmente, já que você não pode adicionar um filtro a um placeholder que tenha sido adicionado usando a opção Personalização.

Insira um valor padrão

default

Insira um valor alternativo padrão para quando a variável estiver vazia.

Entrada Saída
Olá, {{ contact.NAME|default:'você' }}, Olá, você,

Formatar a capitalização da palavra

capfirst

Torna o primeiro caractere de uma variável em maiúscula e converte o restante em minúsculas.

Entrada Saída
{{ contact.MESSAGE|capfirst }} Meu carro vermelho

title

Retorna uma versão de capitalização de título do valor. As palavras começarão com letras maiúsculas e o restante permanecerá minúsculo.

Entrada

Saída

{{ contact.NAME|title }} John Doe

upper

Torna todo caractere de uma variável maiúscula.

Entrada Saída
{{ contact.NAME|upper }} JOHN DOE

lower

Torna todo caractere de uma variável minúscula.

Entrada Saída
{{ contact.NAME|lower }} john doe

truncatechars

Encurta uma variável se ela tiver mais do que o número específico de caracteres. Variáveis truncadas terminarão com reticências (…) incluídas na contagem de caracteres.

Entrada Saída
{{ contact.MANAGER|truncatechars:7 }} Elisab…

Formate números

floatformat

Arredonda a saída dos valores flutuantes da sua variável para a casa decimal especificada.

Para funcionar corretamente, o valor passado deve ser passado como um número e não como uma  string, e os valores não devem ser passados entre aspas, como “valor”.

Entrada Saída
{{ contact.BALANCE|floatformat:2 }} 40,32
{{ contact.BALANCE|floatformat:0 }} 40

lang_format

Formate números dependendo do idioma do destinatário.

Input Output
{{ params.NUMBER|lang_format:"pt" }} 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

Observação:

  • Para forçar 2 casas decimais, adicione ,%.2f após a variável idioma.
  • Para o francês, o separador de milhares é um espaço não quebrável.

Formate data e horário

💡 Dica
- Abreviações e nomes completos de dia e mês são suportados apenas em inglês.
- A hora de referência é "Monday January 2 15:04:05 -0700 MST 2006".
- Se um valor não passar, ele é considerado 0.
- O fuso horário padrão (se não passado) é UTC.
- Você pode usar as palavras-chave am/pm.
- A maneira mais comum de definir os fusos horários é: usando palavras-chave dedicadas (MST, CET, UTC, Asia/Kolkata etc.), ou numerais, +0100 ou -0100, para UTC.

time_parse

Converte sua data (passada como string) em um formato de data padrão, para que possa ser usado com outros filtros.

Para passar o formato atual de data como um argumento formate a data/horário exata de como a hora de referência deveria ser exibida se tivesse o valor.

Entrada Saída
{{ params.my_date|time_parse:"Segunda-feira 02 janeiro 2006" }} Terça-feira 11 de março 2021

Note: Se sua string for formatada usando RFC3339, você deve usar o parser dedicado time_parse_rfc3339 sem um argumento.

date

Converte uma data para um formato específico.

Você terá uma data a partir de uma string, usando o filtro time_parse ou o horário atual, passando o filtro data para a placeholder time_now.

Entrada Saída
{{ "14:01 01/06/2018"|time_parse:"15:04 02/01/2006"|date:"Seg Jan 2 15:04:05 2006" }} Sex Jun 1 14:01:00 2018
{{ time_now|date:"Segunda-feira, Jan 2, 2006" }} Imprimirá o dia e a data atual, no formato especificado
{{ time_now|data:"01" }}

 Imprimirá o mês atual

{{ time_now|data:"02" }}

 Imprimirá o dia atual

{{ time_now|data:"2006" }}

 Imprimirá o ano atual

time_add_date

Adiciona número de dias a um string de timestamp ou data. é obrigatório passar todos os valores para este filtro na seguinte ordem: "ano, mês, dia".

Entrada Saída
{{ time_now|time_add_date:"1,2,3" }} Imprimirá timestamp depois de adicionar 1 ano, 2 meses e 3 dias ao timestamp atual
{{ "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

Converte uma string de timestamp ou data de acordo com o fuso horário passado para o filtro. É obrigatório passar um fuso horário ao filtro no seguinte formato: "local/fuso horário”.

Entrada Saída
{{ time_now|time_in_location:"Europa/Berlim" }} Imprimirá a timestamp atual em CEST
{{ "14:01 01/06/2018"|time_parse:"15:04 02/01/2006"|time_in_location: "Europa/Berlim" }} 2018-06-01 16:01:00 +0200 CEST

time_add_duration

Adiciona duração de tempo a uma string de timestamp ou data. É obrigatório passar pelo menos um valor (hora, minuto ou segundo) no filtro.

Entrada Saída
{{ time_now|time_add_duration:"1h2m3s" }} Imprimirá uma timestamp após adicionar 1 hora, 2 minutos e 3 segundos a um valor de tempo na timestamp atual
{{ time_now|time_add_duration:"30m" }} Imprimirá uma timestamp após adicionar 30 minutos ao valor horário

time_unix

Converte um valor horário em uma timestamp Unix em segundos.

Entrada Saída
{{ time_now|time_unix }} Imprimirá timestamp atual Unix em segundos

time_unix_nano

Converte um valor de tempo em uma timestamp Unix em nanosegundos.

Entrada Saída
{{ time_now|time_unix_nano }} Imprimirá timestamp atual Unix em nanosegundos

Outros filtros

first

Retorna o primeiro item de uma sequência, mapeamento ou string.

Entrada Solicitação API Saída
{{ params.array|first }} "params" :
{
"array" : [ 1,2,3,4 ]
}
1

join

Combina os itens de uma matriz em uma única string, usando o argumento como um separador.

O separador entre os elementos é, por padrão, uma variável vazia. Você pode defini-la com o parâmetro first opcional.

Entrada Saída
{{ [1, 2, 3]|join }} 123
{{ [1, 2, 3]|join: '|' }}
1|2|3

last

Retorna o último item de uma sequência, mapeamento ou string.

Entrada Saída
{{ [1, 2, 3, 4]|last }} 4

length

Retorna o número de itens de uma sequência ou mapeamento ou o tamanho de uma string.

Entrada Saída
{{ ['a', 'b', 'c', 'd']|length }} 4

safe

Marca uma string como não exigindo mais escapamento HTML antes de saída.

Entrada

Pedido API Saída
{{ params.htmltest|safe }} "params" :{HtmlTest: "<p>Esta é minha frase teste.</p>"} Esta é minha frase teste

Observação: sem o filtro safe, a tag HTML seria exibida como uma string normal no e-mail do destinatário: <p>Esta é minha frase teste</p>.

slice

Extrai um pedaço de uma sequência, mapeamento ou string.

Este filtro pode ser configurado para:

A Faz um loop apenas pelo primeiro número "n" de elementos em uma matriz Em ambos os casos, lembre-se de que elementos em uma matriz são atribuídos a um único número de posição, começando com "0" como primeira posição (eles são “indexados a zero”).
B Faz um loop pelos elementos entre duas posições específicas ("n" e "m") na matriz
C Faz um loop pelos elementos entre dois elementos específicos em uma matriz.  

Em cada elemento, considere que sua matriz contém o seguinte: ["a","b","c","d","e","f","g","h"...].

 

Entrada Saída

A

{% for product in params.products|slice:':5' %}
{{ product.name - {{ product.price }}
{% endfor %}
Fará um loop pelas 5 primeiras posições (0-4), ou seja: ["a","b","c","d","e"]
B {% for product in params.products|slice:'2:3' %}
{{ product.name - {{ product.price }}
{% endfor %}
Fará um loop pelas posições (2-3), ou seja: ["c","d"]
C {% for product in params.products|slice:'b:d' %}
{{ product.name - {{ product.price }}
{% endfor %}
Fará um loop pelos elementos especificados, ou seja: ["b","c","d"]

base64_encode or decode

Codifica ou decodifica 64:

  • base64_decode decodifica uma string para um []byte
  • base64_encode codifica um []byte para uma string
Entrada Saída
https://example.com/test?name={{ contact.FIRSTNAME|base64_encode }} https://example.com/test?name=RW56bw== (ao invés de https://example.com/test?name=Enzo)

Os filtros base64_encode e decode podem ser um parâmetro de codificação opcional:

  • std: codificação base64 encoding normal,
  • raw_std: codificação base64 normal, sem o = caracteres de preenchimento,
  • url: versão segura da URL de codificação base64 encoding, + e / são substituídos respectivamente por - e _,
  • raw_url: uma combinação de raw e url, ex. {{ contact.FIRSTNAME|base64_encode:"raw_url"}}.

Recursos adicionais

A Linguagem do modelo Sendinblue se baseia no Pongo2, uma reimplementação do Django in Go (uma linguagem de programação).

Todas as tags suportadas

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

Todos os filtros suportados

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 os filtros suportados para algorítimos 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.

💡 Dica
Se identificar um filtro desejado ainda não suportado, entre em contato com nossa equipe de atendimento ao cliente, criando um tíquete em sua conta. Caso ainda não tenha uma conta, você pode entrar em contato com a gente aqui.