Sintassi e possibilità dei modelli

Fondamenti del lavoro con i modelli

I modelli supportano variabili definite e una sintassi speciale che offre più possibilità rispetto ai modelli statici. Ovvero un determinato testo viene trasformato secondo regole definite. Se hai lavorato con il motore di template Twig, allora conosci già quasi tutto il necessario. In questa pagina è descritta la funzionalità di base disponibile. Chi desidera saperne di più può prendere visione della documentazione ufficiale di Twig. Tuttavia, non tutte le possibilità di Twig sono disponibili nei nostri modelli, perciò non dimenticare di controllare il risultato mediante la funzione di anteprima, nonché di effettuare invii di prova ai tuoi account prima di lanciare una campagna a un gran numero di utenti reali.

Variabili disponibili nei modelli:

  1. subscriber — è un oggetto che contiene informazioni sull'iscritto attuale. Puoi visualizzare la struttura completa di questa variabile in una pagina separata.
  2. campaign — è un oggetto che contiene informazioni sulla campagna di invio attuale. Puoi visualizzare la struttura completa di questa variabile in una pagina separata. Questa variabile non conterrà dati in modalità anteprima, poiché essa funziona al di fuori del contesto di qualsiasi campagna di invio.
  3. unsubscribe_url — è un link HTTP alla nostra pagina, dove l'iscritto può disiscriversi dalla campagna di invio attuale. Se hai le tue impostazioni di iscrizione sul tuo sito, puoi usare un link di disiscrizione che porta al tuo sito. Se l'iscritto non trova una possibilità semplice e comoda di disiscriversi da un invio non desiderato, probabilmente segnalerà la tua email come spam, perciò raccomandiamo di fornire in ogni email la possibilità di disiscrizione. Questa variabile non sarà disponibile in modalità anteprima.

Nei modelli si possono usare le variabili

Per usare una variabile è necessario avvolgerla in doppie parentesi graffe. Ad esempio, per visualizzare la variabile test126 bisogna scrivere {{ test126 }}. Il rispetto delle maiuscole e minuscole è obbligatorio, mentre gli spazi — opzionali. Ovvero si può scrivere {{test126}} o {{ test126         }}, ma {{ TESt126 }} — non si può. La variabile test126 è un esempio, in realtà tale variabile da noi non esiste.

Se una variabile è un oggetto complesso e ha proprie proprietà, l'accesso a esse avviene tramite un punto. Ad esempio, l'accesso alla proprietà id della variabile subscriber si presenta così: {{ subscriber.id }}. È un esempio reale — nei modelli è disponibile la variabile subscriber, e ha la proprietà id. Puoi visualizzare l'elenco completo delle proprietà in una pagina separata. Agli array si può accedere per indice, usando le parentesi quadre. Al contempo bisogna essere sicuri che tale indice esista. Ad esempio, {{ subscriber.tags[0] }}. Se l'iscritto non ha alcun tag, il tentativo di visualizzare il primo tag (con indice 0) non visualizzerà nulla (ovvero verrà visualizzata una «stringa vuota», come dicono i programmatori).

Si possono eseguire operazioni di base con i dati

Sono supportate le operazioni matematiche:

  • addizione {{ price + tax }}
  • moltiplicazione {{ count * 2 }}
  • divisione {{ total / 3 }}

Operatore condizionale (IF)

  • if di base {% if subscriber.is_active %} Sei iscritto all'invio {% endif %}
  • operatore if con blocco else {% if subscriber.is_active %} Sei iscritto all'invio {% else %} Sei disiscritto dall'invio {% endif %}
  • Catena di controlli {% if subscriber.gender == 'male' %} Sei un uomo {% elseif subscriber.gender == 'female' %} Sei una donna {% elseif subscriber.gender == '' %} Il tuo sesso non è indicato {% endif %}

L'operatore if deve avere obbligatoriamente un tag di apertura  {% if condition %} e un tag di chiusura {% endif %}. All'interno si può collocare qualsiasi numero di sezioni  {% elseif condition %}. Inoltre, in via opzionale, si può aggiungere una sezione {% else %}, che si attiverà senza condizioni aggiuntive, se l'esecuzione arriva fino ad essa. Ovvero se le condizioni di attivazione (condition) di tutte le parti precedenti dell'operatore if non si sono verificate.
 

Cicli (FOR)

I cicli servono per visualizzare gli elenchi. Immaginiamo di avere un elenco memorizzato nella variabile items. Ecco come si può scorrere:

{% for item in items %}
  {{ item }}
{% endfor %}

Il valore della variabile item sarà diverso ad ogni iterazione del ciclo. All'interno del ciclo sono disponibili anche alcune altre variabili relative all'iterazione attuale:

  • loop.index — numero dell'iterazione, inizia da 1
  • loop.first — è la prima iterazione? (true/false)
  • loop.last — è l'ultima iterazione? (true/false)

Il ciclo si può combinare con un controllo della presenza dei dati:

{% for item in items %}
  {{ item }}
{% else %}
  L'array items è vuoto
{% endfor %}