Personalisatie functies: math
De math functie maakt het mogelijk om wiskunde vergelijkingen uit te voeren in de template. Dit is echter een computationeel zware functie die sneller is in PHP. Het wordt niet aangeraden deze functie in loops te gebruiken.
Parameters
De volgende parameters worden ondersteund:
Parameter naam | Omschrijving |
---|---|
equation | Vergelijking om uit te voeren |
format | Formaat voor resultaat |
var | Vergelijking variabele waarde |
assign | Variabele voor opslaan resultaat |
[var ...] | Waarden voor variabelen in vergelijking |
Als je een formule gebruikt als $a * $b
moeten de variabelen $a en $b
eerst gedefinieerd worden voordat we ermee kunnen rekenen.
Ondersteunde operatoren
De ondersteunde operatoren zijn +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans and tan.
Voorbeelden
Een simpele vergelijking:
{assign "height" 2}
{assign "width" 3}
{math equation="x * y" x=$height y=$width}
Deze code wordt gebruikt om het resultaat van x * y uit te rekenen, wat 6 is in dit geval. Dit is maar een simpele vergelijking, maar je kunt deze zo ingewikkeld maken als je zelf wil. Dit voorbeeld gebruikt daarnaast de assign functie in de korte versie.
Het is ook mogelijk om een waarde uit het (sub)profiel te gebruiken in je berekening:
{math equation="x + y" x=$profile.FIELDNAME y=10}
Als we een breuk uit willen rekenen echter is het handiger om decimalen weer te geven. We willen dit resultaat ook opslaan, zodat we "1.33" krijgen als we {$frac} in de template typen.
{assign "height" 1}
{assign "width" 3}
{math equation="1 + x / y" assign="frac" format="%.2f" x=$height y=$width}
Meer informatie over de math equation functie van Smarty vind je hier.