Personalisatie modifiers

Je kunt de variabelen waarmee je e-mails personaliseert aanpassen met behulp van modifiers. Dit doe je door een | toe te voegen na de variabele waarmee je de variabele door een soort filter haalt:

Hallo {$naam|ucfirst},

Uw naam {$naam|ucfirst} is {$naam|strlen} tekens lang.

De modifier |ucfirst maakt van elke eerste letter een hoofdletter ("upper case first"), en de modifier |strlen zet een variabele om naar de lengte van die variabele (string length). Dus als in de database de naam met kleine letters is opgeslagen ("hugo"), dan zorgt |ucfirst dat in de mail "Hugo" met een hoofdletter komt te staan.

Je kunt modifiers ook achter elkaar plaatsen. De output van de eerste modifier wordt dan gebruikt als input van de volgende modifier:

Hallo {$naam|lower|ucfirst}!

De modifier |lower zet een variabele volledig om naar kleine letters, en de |ucfirst modifier zorgt dat elke eerste letter een hoofdletter wordt. Als iemand zijn naam heeft ingevuld als "jOhAn dE wIt", dan zorgt |lower dus dat dit eerst wordt omgezet naar "johan de wit", en daarna maakt |ucfirst hier "Johan De Wit" van.

Er zijn ook modifiers die parameters accepteren. De truncate-modifier is hiervan een goed voorbeeld. Standaard kort deze modifier een tekst in tot 80 tekens, maar met een parameter kun je een andere lengte opgeven:

{$naam|truncate}
{$naam|truncate:30}
{$naam|truncate:30:"..."}
{$naam|truncate:30:"..."|ucfirst}

Hierboven zie je achtereenvolgens de code om de tekst op de standaardmanier in te korten (tot 80 tekens dus), met een parameter om de tekst tot 30 tekens in te korten, en met twee parameters om te tekst tot 30 tekens in te korten, en "..." toe te voegen om aan te geven dat de tekst is ingekort. Het vierde voorbeeld laat zien hoe je daarna weer een volgende modifier (zoals ucfirst) aanroept.

Verschillende modifiers

De meeste modifiers gebruik je voor het bewerkingen en filteren van tekstuele of numerieke variabelen, zoals de voorbeelden hierboven. Een dergelijke modifier wordt gebruikt om bijvoorbeeld een tekst in te korten, de hoofdletters te fixen of om variabelen anderzins geschikt te maken voor het gebruik in een mailing.

Maar er zijn ook andersoortige modifiers, zoals modifiers om collecties te filteren en te sorteren. Deze kun je gebruiken op een verzameling van items (bijvoorbeeld producten vanuit je webshop). In onderstaand voorbeeld zie je hoe een variabele {$products} waarin honderden producten staan, kan worden gefilterd om alleen maar producten uit een bepaalde categorie weer te geven:

{foreach $products|filter:category:books as $product}
    {$product.title}: {$product.price}
{/foreach}

Alle modifiers op een rijtje

  • Gewone modifiers: De meeste modifiers zijn allemaal min of meer hetzelfde, en gebruik je om de waarde van een tekstvariabele om te zetten.
  • Collection modifiers: Modifiers die geschikt zijn om variabelen met collecties te bewerken en te sorteren.
  • Boolean modifiers: Modifiers die zijn gemaakt om boolean waardes te retourneren, voor gebruik in combinatie met {if} functies.