Conditional logic in Giotto is available in two complementary forms:
- conditional blocks
-
conditional functions,
In the linked guide you can find the syntax and several examples. The main attributes are:
Conditional blocks
The constructs mn:if / mn:elseif / mn:else show or hide an HTML element depending on the result of an expression.
| Option | Description | Example |
| mn:if | Applies a visibility condition semplice. | <div mn:if="contact.values.SESSO eq 'M'">Offerta speciale riservata agli uomini</div> |
| mn:elseif | Displays alternative content se il primo if non è verificato. | <div mn:if="contact.values.SESSO eq 'M'"> Offerta speciale riservata agli uomini</div> <div mn:elseif="contact.values.SESSO eq 'F'"> Offerta speciale riservata alle donne</div> |
| mn:else | Displays alternative content se non sono verificati nè l'if nè l'elseif. | <div mn:if="contact.values.SESSO eq 'M'"> Offerta speciale riservata agli uomini</div> <div mn:elseif="contact.values.SESSO eq 'F'"> Offerta speciale riservata alle donne</div> <div mn:else>Non hai specificato il tuo sesso <div> |
EXAMPLE 1
Insert the following code directly into a text element (HTML/code view):
se il campo NAME è valorizzato viene stampato "Hello Andrea,"
se il campo NAME è vuoto viene stampato solo "Hello,"
<span mn:if="contact.values.NAME neq ''">Ciao [contect:NAME]<span>
<span mn:else>Hello,</span>EXAMPLE 2
Nell'esempio sottostante vogliamo stampare il nome della storeview di appartenenza in base al campo STOREVIEW che a database è salvata usando i codici
<span mn:if="contact.values.STOREVIEW eq '1'">Italia</span> <span mn:elseif="contact.values.STOREVIEW eq '2'">EUROPA</span> <span mn:elseif="contact.values.STOREVIEW eq '3'">AMERICHE</span> <span mn:else>WORLDWIDE</span>
Conditional functions (espressione condizionale inline)
La funzione condizionali restituisce un valore o l'altro all'interno di un'espressione.
SYNTAX
fn.if(condition, valueIfTrue, valueIfFalse)
EXAMPLE:
[eval:expr value="fn.if(contact.values.LINGUA eq 'ita', 'Pizzaiolo', 'baker')"]
Nell'esempio soprastante se il contatto ha il campo LINGUA = ITA, viene stampata la parola "Pizzaiolo", in alternativa la parola "Baker"
Le fn.if possono essere annidate (catena if/elseif):
La condition deve risolversi in un valore booleano (true/false, 0/1) o in una stringa equivalente ('0'/'1'/'true'/'false'); altri valori generano un errore di valutazione.