Sintassi, placeholder, condizioni, funzioni ed esempi pratici.
Giotto è il linguaggio di formattazione per la creazione di template di magnews: rende newsletter e pagine dinamiche inserendo placeholder proprietari, espressioni e condizioni di visibilità.
Introduzione
Il linguaggio Giotto è il sistema di templating utilizzato da magnews per personalizzare newsletter, email, landing page e contenuti dinamici.
Attraverso placeholder, espressioni, variabili, condizioni e funzioni, Giotto permette di mostrare contenuti differenti in base ai dati del contatto, ai workflow e alle sorgenti dati esterne.
Questa guida raccoglie tutta la documentazione ufficiale del linguaggio Giotto, con esempi pratici e reference complete.
Come è organizzata la guida
- Sintassi dei placeholder
- Famiglie di placeholder
- Formattazione dei dati
- Operatori logici
- Espressioni
- Condizioni
- Funzioni
- Variabili
Sintassi
Un placeholder è racchiuso tra parentesi quadre e segue il formato:
[keyword:nome{valore di default} attributo1=valore1 attributo2="valore 2"]
| Elemento | Sintassi | Note |
|---|---|---|
| Delimitatore del tag | [....] |
Aprono e chiudono il tag |
| Separatore | : | Separa lo dal nome del campo [contact:name] |
| Valore di default | { ... } |
Usato se il valore è vuoto [contact:name{Cliente}] |
| Attributi | attributo=valoreattributo |
I vari attributi vanno separati da spazi |
| Valore attributo |
" " o ' ' oppure nudo |
Le virgolette servono per i valori di tipo stringa e se il valore contiene spazi |
ESEMPI:[contact:email] → Restituisce l'indirizzo email del contatto
[contact:name{Cliente}] → Stampa il nome del contatto e se vuoto stampa la parola "Cliente"
Famiglie di Placeholder
Ogni placeholder appartiene a una famiglia identificata dalla keyword iniziale.
| keyword | Descrizione | Esempio |
|---|---|---|
| contact | Stampa il valore di un Campo contatti | [contact:idfield] |
| contactstats | Stampa i dati statistici di un contatto relativi al canale email |
[contactstats:sent] [contactstats:received] |
| message | Stampa il valore di un messaggio | [message:fromname] |
| link | Stampa un link di sistema | [link:unsubscribe] |
| ico | Stampa un'icona di sistema | <img src="[ico:facebook]"> |
| var | Stampa una variabile globale, di contesto o di Database | [var:mydatabasevariable] |
| workflow | Stampa una variabile del workflow. | [workflow:myvariable] |
| survey | Stampa un valore di un campo survey (da utilizzare quando la domanda non è nella stessa pagina del pulsante) | [survey:NOMECAMPO] |
| form | Stampa un valore di un campo form (da utilizzare quando il valore della risposta è nella stessa pagina del pulsante) | [form:NOMECAMPO] |
Se la variabile di workflow è stata chiamata id_variabile e nel segnaposto la richiamerai con la sintassi: [workflow:ID_VARIABILE] non verrà renderizzata correttamente.
Lista completa di tutte le famiglie di keyword >>
Consulta l'elenco di tutti i placeholder di sistema >>
Formattazione
Trasforma e formatta dati testuali, numerici e date grazie ai seguenti attributi.
| Attributo | Descrizione | Esempio |
|---|---|---|
| prefix | Stampa una stringa prima di un valore. | prefix='' |
| suffix | Stampa una stringa dopo un valore. | suffix='' |
| left | Stampa i primi X caratteri. | left="X" |
| right | Stampa gli ultimi X caratteri. | right="X" |
| Formatta la stringa. | print="uppercase" | |
| encode | Stampa la stringa nella codifica indicata | encode='encodehtml' |
| separator | Carattere usato come separatore. | separator=',' |
Consulta la guida di tutte le formattazioni disponibili >>
Operatori logici
Giotto supporta operatori di confronto, logici e aritmetici.
- Confronto:
eq,neq,gt,gte,lt,lte - Logici:
and,or,not - Aritmetici:
+,-,*,/,mod
Le espressioni possono leggere dati provenienti da diverse sorgenti, ad esempio:
contact.values.ZONA, , temp.item.title, param.contact_field
Condizioni logiche (if else)
La condizionalità in Giotto esiste in due forme complementari: i blocchi condizionali e le funzioni condizionali, nella guida collegata puoi vedere la sintassi e viversi esempi, gli attributi principali sono i seguenti:
- mn:if
- mn:elseif
- mn:else
- fn.if()
Vai alla guida completa sulle condizioni di visibilità >>
Funzioni
Consulta tutte le funzioni disponibili.
Le funzioni possono essere dei seguenti tipi:
- funzioni stringa
- funzioni data
- funzioni liste
- funzioni matematiche
Vai alla guida di tutte le funzioni >>
Espressioni
Lo scope eval:expr è il placeholder più potente: valuta un'espressione e stampa il risultato.
Permette di fare calcoli, concatenazioni, formattazioni e logica condizionale direttamente nella comunicazione senza dover modificare il codice del template; infatti il codice può essere copiato in un elemento testo (vista HTML).
[eval:expr value="<espressione>"]
[eval:expr value=<espressione> {default} attributo=valore]
Il value può essere scritto tra virgolette (consigliato quando contiene spazi o stringhe letterali) oppure nudo per riferimenti semplici a variabili.
Consulta la guida per esempi pratici di EVAL >>
Variabili
La piattaforma mette a disposizione dei placeholder dinamici: puoi utilizzare variabili temporanee, di workflow e database.
| Variabile | Descrizione | esempio |
|---|---|---|
temp: |
Variabili temporanee
|
[temp:item.NOMECAMPO] |
var: |
Variabili di database o di journey (brandkit) | [var:BRAND_TEXT_FOOTER]. |
Consulta la guida per vedere alcuni esempi delle variabili >>