Fundamentos del trabajo con plantillas
Las plantillas admiten variables definidas y una sintaxis especial que ofrece más posibilidades que las plantillas estáticas. Es decir, un determinado texto se transforma según reglas definidas. Si ha trabajado con el motor de plantillas Twig, entonces ya conoce casi todo lo necesario. En esta página se describe la funcionalidad básica disponible. Quienes deseen saber más pueden familiarizarse con la documentación oficial de Twig. Sin embargo, no todas las posibilidades de Twig están disponibles en nuestras plantillas, por eso no olvide comprobar el resultado mediante la función de vista previa, así como realizar envíos de prueba a sus propias cuentas antes de lanzar una campaña a un gran número de usuarios reales.
Variables disponibles en las plantillas:
- subscriber — es un objeto que contiene información sobre el suscriptor actual. Puede ver la estructura completa de esta variable en una página aparte.
- campaign — es un objeto que contiene información sobre la campaña de envío actual. Puede ver la estructura completa de esta variable en una página aparte. Esta variable no contendrá datos en el modo de vista previa, ya que este funciona fuera del contexto de cualquier campaña de envío.
- unsubscribe_url — es un enlace HTTP a nuestra página, donde el suscriptor puede darse de baja de la campaña de envío actual. Si tiene sus propios ajustes de suscripción en su sitio, puede usar un enlace de baja que lleve a su sitio. Si el suscriptor no encuentra una posibilidad sencilla y cómoda de darse de baja de un envío no deseado, probablemente marcará su correo como spam, por eso recomendamos ofrecer en cada correo la posibilidad de darse de baja. Esta variable no estará disponible en el modo de vista previa.
En las plantillas se pueden usar variables
Para usar una variable, es necesario envolverla en dobles llaves. Por ejemplo, para mostrar la variable test126 hay que escribir {{ test126 }}. El respeto de las mayúsculas y minúsculas es obligatorio, y los espacios — opcionales. Es decir, se puede escribir {{test126}} o {{ test126 }}, pero {{ TESt126 }} — no. La variable test126 es un ejemplo, en realidad tal variable no existe en nuestro sistema.
Si una variable es un objeto complejo y tiene sus propias propiedades, el acceso a ellas se realiza mediante un punto. Por ejemplo, el acceso a la propiedad id de la variable subscriber se ve así: {{ subscriber.id }}. Es un ejemplo real — en las plantillas está disponible la variable subscriber, y tiene la propiedad id. Puede ver la lista completa de propiedades en una página aparte. A los arrays se puede acceder por índice, usando corchetes. Al mismo tiempo, hay que estar seguro de que tal índice existe. Por ejemplo, {{ subscriber.tags[0] }}. Si el suscriptor no tiene ningún tag, el intento de mostrar el primer tag (con índice 0) no mostrará nada (es decir, se mostrará una «cadena vacía», como dicen los programadores).
Se pueden realizar operaciones básicas con los datos
Se admiten operaciones matemáticas:
- suma
{{ price + tax }} - multiplicación
{{ count * 2 }} - división
{{ total / 3 }}
Operador condicional (IF)
- if básico
{% if subscriber.is_active %} Está suscrito al envío {% endif %} - operador if con bloque else
{% if subscriber.is_active %} Está suscrito al envío {% else %} Está dado de baja del envío {% endif %} - Cadena de comprobaciones
{% if subscriber.gender == 'male' %} Es usted hombre {% elseif subscriber.gender == 'female' %} Es usted mujer {% elseif subscriber.gender == '' %} Su sexo no está indicado {% endif %}
El operador if debe tener obligatoriamente una etiqueta de apertura {% if condition %} y una etiqueta de cierre {% endif %}. Dentro se puede colocar cualquier número de secciones {% elseif condition %}. También, de forma opcional, se puede añadir una sección {% else %}, que se activará sin condiciones adicionales, si la ejecución llega hasta ella. Es decir, si las condiciones de activación (condition) de todas las partes anteriores del operador if no se cumplieron.
Ciclos (FOR)
Los ciclos se necesitan para mostrar listas. Imaginemos que tenemos una lista que se almacena en la variable items. Así se puede recorrer:
{% for item in items %} {{ item }}{% endfor %}
El valor de la variable item será distinto en cada iteración del ciclo. Dentro del ciclo también están disponibles algunas otras variables relativas a la iteración actual:
- loop.index — número de la iteración, empieza en 1
- loop.first — ¿es la primera iteración? (true/false)
- loop.last — ¿es la última iteración? (true/false)
El ciclo se puede combinar con una comprobación de la presencia de datos:
{% for item in items %} {{ item }}{% else %} El array items está vacío{% endfor %}