Standaard modifiers
De volgende tabel toont alle standaard modifiers. Dit zijn modifiers die je kunt gebruiken om een gewone variabele (met daarin een string, getal, datum, of soortgelijk veld) aan te passen:
Modifier | Beschrijving |
---|---|
base64_encode | codeert input naar base64 |
base64_decode | decodeert input naar base64 |
capitalize | vervangt de eerste letter van elk woord door een hoofdletter |
cat | voegt extra karakters toe |
count | telt het aantal elementen |
count_characters | telt het aantal karakters |
count_paragraphs | telt het aantal paragrafen |
count_sentences | telt het aantal zinnen |
count_words | telt het aantal woorden |
date_format | bepaalt de opmaak van datumvelden |
date_mod | telt tijd op/af van datumvelden |
timestamp | zet een tijdstip om naar timestamp notatie |
datetime | zet een tijdstip om naar een datetime object |
get | alternatief voor de punt-notatie om object-eigenschappen uit te lezen |
default | toont een default waarde als variabele geen waarde bevat |
escape | zorgt ervoor dat variabele veilige weergegeven wordt |
md5 | zet een variabele om naar een md5-hash |
nl2br | vervangt newlines met HTML br tags |
regex_replace | vervangt een deel van de inhoud met een andere waarde via een reguliere expressie |
replace | vervangt een deel van de inhoud met een andere waarde |
spacify | plaatst een spatie tussen elk karakter |
strlen | telt het aantal tekens |
lower | zet alle tekens om naar kleine letters |
upper | zet alle tekens om naar grote letters |
trim | verwijdert spaties en endline karakters aan zowel het begin als eind |
truncate | stopt een variabele na het opgegeven aantal tekens |
ucfirst | vervangt de eerste teken met een hoofdletter |
urlencode | codeert input om te gebruiken in een url |
urldecode | decodeert input om te gebruiken in een url |
base64_encode
De modifier 'base64_encode' codeert data naar base64. Dit werkt alleen niet op arrays.
Stel bijvoorbeeld dat de variabele {$Naam}
de waarde Richard van de Zande
bevat.
Door gebruik te maken van {$Naam|base64_encode} wordt de waarde weergegeven als UmljaGFyZCB2YW4gZGUgWmFuZGU=
.
base64_decode
De modifier 'base64_decode' decodeert base64-gecodeerde data.
Stel bijvoorbeeld dat de variabele {$Base64encoded}
de waarde UmljaGFyZCB2YW4gZGUgWmFuZGU=
bevat.
Door gebruik te maken van {$Base64encoded|base64_decode}
wordt de waarde weergegeven als Richard van de Zande
.
capitalize
De modifier 'capitalize' vervangt de eerste letter van elk woord door een hoofdletter.
Stel bijvoorbeeld dat de variabele {$Naam}
de waarde richard van de zande
bevat.
Door gebruik te maken van {$Naam|capitalize}
wordt de waarde weergegeven als Richard Van De Zande
.
Woorden die getallen bevatten worden niet voorzien van een hoofdletter tenzij je de optionele parameter 'true' gebruikt.
{$Naam|capitalize}
wordt weergeven als k3
, terwijl {$Naam|capitalize:true}
als K3
getoond wordt.
cat
De modifier 'cat' geeft je de mogelijkheid om tekst toe te voegen aan een variabele.
Door gebruik te maken van de code {$Naam|cat:"junior"}
geef je de naam Karel Appel
weer als Karel Appel junior
.
count
De modifier 'count' telt het aantal elementen in een array. Als de variabele geen array is, wordt 0 teruggegeven.
Stel bijvoorbeeld dat de variabele {$Namen}
de array ["Richard", "Eva", "Karel"]
bevat.
Door gebruik te maken van {$Namen|count}
wordt de waarde weergegeven als 3
.
count_characters
Met deze modifier tel je het aantal karakters in een variabele (met of zonder spaties).
Stel dat de variabele {$Tekst}
de waarde Dit is een testmail
bevat.
Je kunt het bijbehorende karakteraantal ophalen door middel van de onderstaande codes:
{$Tekst}
{$Tekst|count_characters}
{$Tekst|count_characters:true}
Het resultaat:
Dit is een testmail
16 (zonder spaties)
19 (met spaties)
count_paragraphs
Met deze modifier tel je het aantal paragrafen in een variabele.
We gaan bijvoorbeeld uit van een variabele {$text}
met twee paragrafen:
Dit is een voorbeeld tekst.
En deze tekst heeft in totaal 2 paragrafen.
Door gebruik te maken van {$text|count_paragraphs}
wordt de waarde weergegeven als 2
.
count_sentences
Je gebruikt deze modifier om het aantal zinnen in een variabele te tellen.
Stel dat de variabele{$text}
de volgende twee zinnen bevat:
Beste klant,
Bedankt voor je bestelling.
Door gebruik te maken van {$text|count_sentences}
wordt de waarde weergegeven als 2
.
count_words
Je gebruikt de modifier 'count_words' om het aantal woorden in een variabele te tellen.
Stel bijvoorbeeld dat de variabele {$text}
de waarde Beste klant, bedankt voor je bestelling
bevat:
Door gebruik te maken van {$text|count_words}
wordt de waarde weergegeven als 6
.
date_format
Met deze modifier bepaal je de opmaak van datumvelden.
In de onderstaande voorbeelden combineren we de modifier met de {$smarty.now}-variabele.
{$smarty.now|date_format} Apr 11, 2024
{$smarty.now|date_format:"%d-%m-%Y"} 11-04-2024
{$smarty.now|date_format:"%Y-%m-%d"} 2024-04-11
{$smarty.now|date_format:"%A, %e %B %Y"} donderdag, 11 april 2024
{$smarty.now|date_format:“%A"} donderdag
Je kunt de modifier ook combineren met een datumveld binnen het profiel:
{$profile.Geboortedatum|date_format:"%d-%m-%Y"}
Let op: Om bijvoorbeeld maandnamen (deziembre vs. december) correct weer te geven is het belangrijk dat je de taal van het template of document juist instelt. De benodigde optie vind je binnen je template of document onder 'Configuratie -> Personalisatie-instellingen'.
Deze modifier wordt hier uitgebreider toegelicht.
date_mod
Met deze modifier kun je gegeven datumvelden aanpassen door een interval erbij op te tellen of ervan af te trekken.
In de onderstaande voorbeelden combineren we de modifier met de {$event.timestamp}-variabele. In het voorbeeld gaan we ervan uit dat deze een waarde heeft van "2025-03-03 12:00:00".
{$event.timestamp|date_mod:"3 days"} 2025-03-06 12:00:00
{$event.timestamp|date_mod:"3 days - 5 hours"} 2025-03-06 07:00:00
{$event.timestamp|date_mod:"P3D"|date_format} Mar 6, 2025
Je kunt de modifier ook combineren met een datumveld binnen een profiel:
{$profile.Geboortedatum|date_mod:"1 month"}
timestamp
Deze modifier zet een datum of tijdstip om naar het standaard timestamp-formaat, een getal dat hat aantal seconden sinds 1970 aangeeft. Deze modifier is bijvoorbeeld handig als je een bij een profiel de datum als string hebt opgeslagen, maar voor je berekening dit wil omzetten naar een timestamp.
{$profile.geboortedatum|timestamp} 1129227768
De modifier kan gebruikt worden voor allerlei input-strings, en zet deze string om naar een numeriek timestamp. Voor meer informatie over het omzetten van datums in Smarty, lees dan dit artikel.
datetime
Net als de timestamp
modifier, converteert deze modifier een tijdstip naar een standaardformaat.
De datetime
-modifier zet de waarde om naar een object, waarvan je vervolgens de individuele
eigenschappen (zoals year
, month
, day
) kunt uitlezen:
{$profile.geboortedatum|datetime|get:"year"}
In bovenstaand voorbeeld zie je ook het gebruik van de get
modifier. Voor meer informatie over
het datetime object, zie dit artikel.
get
De modifier get
kun je gebruiken om individuele eigenschappen van een object variabele op te vragen.
Onderstaande twee statements hebben dezelfde betekenis:
{$profile.voornaam} # uitlezen van eigenschap met punt-notatie
{$profile|get:voornaam} # dit doet precies hetzelfde, met de |get modifier
De modifier get
kan vooral handig zijn als je meerdere modifiers achter elkaar plaatst. Na
het gebruik van een modifier is het niet langer mogelijk om de punt-notatie te gebruiken. De get
modifier kan dan van pas komen om alsnog eigenschappen uit te lezen:
{$profile.geboortedatum|datetime.year} # dit is ongeldige smarty-code
{$profile.geboortedatum|datetime|get:year} # dit mag wel
In bovenstaand voorbeeld passen we eerst de datetime
modifier toe. Omdat de puntnotatie daarna
niet meer mogelijk is, kunnen we niet meer het jaar van het datetime object uitlezen. Met de get
modifier lukt dit toch.
default
De modifier 'default' roept een standaardwaarde aan die wordt gebruikt als een bepaalde waarde ontbreekt.
Stel bijvoorbeeld dat de variabele {$Naam}
geen waarde heeft.
Door gebruik te maken van {$Naam|default:"Beste klant"}
wordt de waarde weergegeven als Beste klant
.
escape
De modifier 'escape' voert een escape uit op een variabele om speciale tekens om te zetten naar HTML-entiteiten. Deze modifier werkt niet op een array.
Stel bijvoorbeeld dat de variabele {$Text}
de waarde <div>Beste heer & mevrouw</div>
bevat.
Door gebruik te maken van {$Text|escape}
wordt de waarde weergegeven als
<div>Beste heer & mevrouw</div>
.
md5
De modifier 'md5' berekent de MD5 checksum van de tekst.
Stel bijvoorbeeld dat de variabele {$Text}
de waarde Beste klant
bevat.
Door gebruik te maken van {$Text|md5}
wordt de waarde weergegeven als 8b1e40a19250da427412feec76b408d8
.
nl2br
De modifier 'nl2br' vervangt newlines met HTML <br>
-tags. Hierdoor kun je gewone tekst weergeven
die correct wordt opgemaakt in HTML-modus. Deze modifier werkt ook bij gebruik van een array.
Stel bijvoorbeeld dat de variabele {$Text}
de waarde "Hallo\nWelkom" bevat.
Door gebruik te maken van {$Text|nl2br}
wordt de waarde weergegeven als:
Hallo<br>Welkom
regex_replace
De modifier 'regex_replace' vervangt delen van je tekst met andere tekst op basis van reguliere expressies. Deze modifier werkt niet als de variabele een array is.
Stel bijvoorbeeld dat de variabele {$Text}
de waarde "Mijn nummer is 123" bevat.
Door gebruik te maken van {$Text|regex_replace:"/\d/":" een getal "}
wordt de waarde
weergegeven als Mijn nummer is een getal een getal een getal
.
replace
De modifier 'replace' maakt het mogelijk om tekst in een variabele te vervangen.
Stel dat je een variabele {$text}
hebt. De bijbehorende tekst is Klik hier om de nieuwsbrief in te zien
.
Het woord nieuwsbrief
wil je vervangen door e-mail
. Hiervoor gebruik je de volgende code:
{$text|replace:'nieuwsbrief':'e-mail'}
Vervolgens wordt de tekst weergegeven als Klik hier om de e-mail in te zien
.
spacify
De modifier 'spacify' voegt een scheidingsteken toe tussen elk teken in je variabele. De standaardscheiding is een spatie. Deze modifier werkt niet als de variabele een array is.
Stel bijvoorbeeld dat de variabele {$Text}
de waarde Hallo
bevat.
Door gebruik te maken van {$Text|spacify:"."}
wordt de waarde weergegeven als:
H.a.l.l.o
strlen
De modifier 'strlen' achterhaalt de lengte van de variabele. Bij toepassing op een array wordt de waarde 0 teruggegeven.
Stel bijvoorbeeld dat de variabele {$Text}
de waarde Beste klant
bevat.
Door gebruik te maken van {$Text|strlen}
wordt de waarde weergegeven als 11
.
lower
Met de 'lower' modifier verwijder je alle hoofdletters.
Bevat je variabele {$Naam}
de waarde Karel APPEL
?
Dan toont de code {$Naam|lower}
de waarde als karel appel
.
De volgorde van de gebruikte modifiers beïnvloedt de manier waarop waardes worden weergegeven.
De code {$Naam|lower|capitalize}
toont de waarde bijvoorbeeld als Karel Appel
.
upper
Je gebruikt deze modifier om alle letters om te zetten naar hoofdletters.
Als de variabele {$Naam}
de waarde Karel Appel
bevat kun je gebruik maken van de code {$Naam|upper}
.
De waarde wordt dan omgezet naar KAREL APPEL
.
trim
De modifier 'trim' verwijdert ongewenste spaties en newline-tekens aan beide zijden van je tekst. Getrimde tekens zijn spaties, tabs, newlines, regelterugloop, verticale tabs en het einde van een tekst.
Stel bijvoorbeeld dat de variabele {$Text}
de waarde Beste klant
bevat.
Door gebruik te maken van {$Text|trim}
wordt de waarde weergegeven als Beste klant
.
truncate
Met deze modifier kap je een variabele af na een bepaald aantal tekens.
Daarvoor gebruik je de code {$Tekst|truncate}
.
De tekenlimiet staat standaard ingesteld op 80 tekens.
Als de variabele {$Tekst}
de waarde Lees hier meer over onze producten en diensten
bevat kun je de tekst afkappen door middel van de onderstaande codes:
{$Tekst}
{$Tekst|truncate}
{$Tekst|truncate:30}
{$Tekst|truncate:30:""}
{$Tekst|truncate:30:"---"}
Deze worden weergegeven als:
Lees hier meer over onze producten en diensten
Lees hier meer over onze producten en diensten
Lees hier meer over onze...
Lees hier meer over onze
Lees hier meer over onze---
ucfirst
De modifier 'ucfirst' zet het eerste teken van de tekst om in een hoofdletter.
Stel bijvoorbeeld dat de variabele {$Naam}
de waarde richard
bevat.
Door gebruik te maken van {$Naam|ucfirst}
wordt de weergegeven als Richard
.
urlencode
De modifier 'urlencode' codeert tekst zodat deze veilig in een URL kan worden gebruikt.
Stel bijvoorbeeld dat de variabele {$Text}
de waarde Beste klant
bevat.
Door gebruik te maken van {$Text|urlencode}
wordt de waarde weergegeven als Beste%20klant
.
urldecode
De modifier 'urldecode' decodeert URL-gecodeerde tekst zodat deze weer leesbaar is.
Stel bijvoorbeeld dat de variabele {$Text}
de waarde Beste%20klant
bevat.
Door gebruik te maken van {$Text|urldecode}
wordt de waarde weergegeven als Beste klant
.