Programmeren met Smarty
Met Smarty kun je dynamische content in je templates opnemen met behulp van variabelen, conditionele statements en loops. Dit artikel gidst je door het programmeren met Smarty, met een focus op het gebruik van {if} en {foreach} statements, met praktische voorbeelden voor gebruik in Copernica.
Gebruik van {if} statements
Met {if} statements kun je conditionele logica toevoegen aan je templates. Dit is handig voor het weergeven van content op basis van specifieke voorwaarden. Hier is een voorbeeld:
Beste {$voornaam|escape},
{if $geslacht == 'M'}
Welkom meneer {$achternaam|escape},
{elseif $geslacht == 'V'}
Welkom mevrouw {$achternaam|escape},
{else}
Welkom {$voornaam|escape} {$achternaam|escape},
{/if}
We zijn blij dat je bij ons bent.
In dit voorbeeld wordt de aanhef aangepast op basis van het geslacht van de ontvanger.
Gebruik van {foreach} statements
Met {foreach} statements kun je door arrays of lijsten itereren. Dit is nuttig voor het weergeven van herhaalde content zoals productlijsten, orderoverzichten, etc. Vaak wordt dergelijke informatie opgeslagen in subprofielen, of is die afkomstig vanuit een extern systeem zoals een webshop. Hier is een eenvoudig voorbeeld:
Beste {$voornaam|escape},
Bedankt voor je bestelling. Hier is een overzicht van je gekochte items:
<ul>
{foreach $profile.producten as $item}
<li>{$item.aantal}x {$item.naam|escape} - {$item.prijs|escape}</li>
{/foreach}
</ul>
In dit voorbeeld worden de bestelde items opgevraagd uit de collectie 'producten', en weergegeven in een lijst.
Andere programmeerconstructies
Naast {if} en {foreach} zijn er nog andere programmeerconstructies in Smarty die je kunt gebruiken om je templates dynamischer en krachtiger te maken:
Gebruik van {for} loops
Met een {for} loop kun je een reeks waarden itereren op basis van een teller:
{for $i=1 to 5}
Item {$i}<br>
{/for}
Dit voorbeeld zal de tekst "Item 1" tot en met "Item 5" weergeven.
Gebruik van {while} loops
Een {while} loop blijft herhalen zolang de voorwaarde waar is:
{assign var="counter" value=1}
{while $counter <= 5}
Item {$counter}<br>
{assign var="counter" value=$counter+1}
{/while}
Dit voorbeeld zal hetzelfde resultaat geven als het {for} loop voorbeeld.
Functies en modifiers
Je kunt ook functies en modifiers gebruiken om data te manipuleren binnen je templates. Bijvoorbeeld, om een string in hoofdletters te zetten, kun je de upper modifier gebruiken:
{$voornaam|upper}
Dit zal de waarde van {$voornaam} in hoofdletters weergeven.
Met deze programmeerconstructies kun je de kracht van Smarty volledig benutten om dynamische en gepersonaliseerde content te creëren binnen Copernica. Gebruik de {if}, {foreach}, {for}, {while} statements en andere constructies om je content aan te passen op basis van de beschikbare gegevens en zorg zo voor een betere ervaring voor je ontvangers.
Wil je meer weten over de programmeermogelijkheden van Smarty? Je vindt uitgebreide en complete documentatie op de www.smarty.net website.