Personalisatie-functies: if
De {if}
-functie in Smarty is een veelgebruikte en krachtige functies waarmee
je content conditioneel in een mailing kunt opnemen. Deze tag moet altijd worden
afgesloten met een bijbehorende {/if}
tag waarmee het einde van de optionele
content wordt gemarkeerd.
{if $profile.woonplaats == 'Amsterdam'}
Speciale aanbieding voor mensen uit Amsterdam
{/if}
In bovenstaand voorbeeld wordt een stuk tekst alleen getoond als de ontvanger
in Amsterdam woont. Je kunt deze tag combineren met de {else}
tag,
als je ook een bericht hebt voor anderen:
{if $profile.woonplaats == 'Amsterdam'}
Speciale bericht voor mensen uit Amsterdam
{else}
Speciale aanbieding voor alle andere mensen
{/if}
Daarnaast is er een {elseif}
tag die je kunt gebruiken voor aanvullende
checks. Je kunt de {elseif}
meerdere keren herhalen binnen een {if}
-blok:
{if $profile.woonplaats == 'Amsterdam'}
Speciale bericht voor mensen uit Amsterdam
{elseif $profile.woonplaats == 'Rotterdam'}
Een ander bericht voor mensen uit Rotterdam
{elseif $profile.woonplaats == 'Den Haag'}
Ook een bericht voor inwoners van Den Haag
{else}
Ten slotte de mededeling voor ieder ander
{/if}
Operators
Binnen de if-tag kun je allerlei soorten vergelijkingen opnemen, en deze combineren met and en or operators. Je kunt vergelijkingen maken of waardes gelijk zijn aan elkaar, groter of kleiner dan, en allerlei andere checks. Ook kun je modifiers gebruiken om variabelen om te zetten, bijvoorbeeld om een geboortedatum om te zetten naar een leeftijd. Het aantal mogelijkheden is eindeloos:
{if $profile.woonplaats == 'Amsterdam' && $profile.geboortedatum|date_format:"%Y" > 2000}
Hallo Amsterdammer geboren na 2000.
{/if}
In onderstaande tabel vind je een overzicht van de ondersteunde operators, en hun betekenis:
Symbol | Syntax | Description |
---|---|---|
== | $a eq $b | gelijk |
!= | $a ne/neq $b | ongelijk |
> | $a gt $b | groter dan |
< | $a lt $b | kleiner dan |
>= | $a gte/ge $b | groter dan |
<= | $a lte/le $b | kleiner dan |
=== | $a === 0 | identiek |
! | not $a | negatie |
% | $a mod $b | modulair |
is div by | $a is div by $b | deelbaar door |
is even | $a is even | is even |
is even by | $a is even by $b | grouping level even |
is odd | $a is odd | is oneven |
is odd by | $a is odd by $b | grouping level oneven |