Get Smarty

Donate

Donate Bitcoin Bitcoin
Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Largest classified with thousands of ads at Shoppok

Buy cheap eyeglasses from Cheapglasses123.com and save up to 80%.

Buy prescription glasses from www.australiaglasses.com and save.

Cheap Glasses Now On Sale at GlassesPeople.com. Starts At $7.95.

Where to buy discount wedding dresses and cheap smart dresses free shipping - Weddingdresstrend.com

Find Wedding Dresses Online at Canada from Ca-dresses.com

Find your local domestic cleaner

Read these great ice cream maker reviews

Brautkleider auf Topwedding.de

Best Wedding Dresses Australia at AuBridalDresses.com

Find free files to download on allwhatyouwant.net

Advertisement

{math}

{math} allows the template designer to do math equations in the template.

  • Any numeric template variables may be used in the equations, and the result is printed in place of the tag.

  • The variables used in the equation are passed as parameters, which can be template variables or static values.

  • +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans and tan are all valid operators. Check the PHP documentation for further information on these math functions.

  • If you supply the assign attribute, the output of the {math} function will be assigned to this template variable instead of being output to the template.

Technical Note

{math} is an expensive function in performance due to its use of the php eval() function. Doing the math in PHP is much more efficient, so whenever possible do the math calculations in the script and assign() the results to the template. Definitely avoid repetitive {math} function calls, eg within {section} loops.

Attribute Name Type Required Default Description
equation string Yes n/a The equation to execute
format string No n/a The format of the result (sprintf)
var numeric Yes n/a Equation variable value
assign string No n/a Template variable the output will be assigned to
[var ...] numeric Yes n/a Equation variable value

Example 8.21. {math}

Example a:


   {* $height=4, $width=5 *}

   {math equation="x + y" x=$height y=$width}

  

The above example will output:


   9

  

Example b:


   {* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *}

   {math equation="height * width / division"
   height=$row_height
   width=$row_width
   division=#col_div#}

  

The above example will output:


   100

  

Example c:


   {* you can use parenthesis *}

   {math equation="(( x + y ) / z )" x=2 y=10 z=2}

  

The above example will output:


   6

  

Example d:


   {* you can supply a format parameter in sprintf format *}

   {math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}
   
  

The above example will output:


   9.44

  

Comments
by unreal4u on Mar 13, 2013 at 3:46
Don't forget that from Smarty 3 expressions can be used almost anywhere, so instead of using {math}:
{foreach from=$arrayValues item="arrayValue" name="myLoop"}
	{math assign="indexValue" equation="(x % 3) + 1" x=$smarty.foreach.myLoop.index}}
	{* Your process *}
{/foreach}
You can do something like this:
{foreach $arrayValues AS $arrayValue}
	{$indexValue=($arrayValue@index % 3) + 1}
	{* Your process *}
{/foreach}
Greetings.
by Rishad on Aug 10, 2012 at 8:57
If you want to use the pow operator: {math assign="b" equation="pow(2,$y)"}
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 17 plus 14? (Are you human?)

Advertisement

Sponsors [info]

UK Web Hosting @webhost.uk.net
Best Web Hosting @rshosting.com
Web Hosting UK @webhostinguk.com
Unlimited Web Hosting @infrenion.com
App Entwicklung @morphodo.com
GoDaddy Coupon @buy-hosting.net
First Click Internet Marketing @fcinternetmarketing.com