Get Smarty

Donate

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

Advertisement

{math}

{math} autorise les designers de templates à effectuer des opérations dans le template.

  • Toute valeur numérique peut être utilisée dans une opération, et le résultat sera affiché à la place des balises "equation".

  • Les variables utilisées dans l'opération sont passées en tant que paramètre, et peuvent être des variables de templates ou des valeurs statiques.

  • +, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans et tan sont tous des opérateurs valides. Voir la documentation PHP pour plus d'informations sur ces fonctions mathématiques.

  • Si vous spécifiez l'attribut assign, la sortie de la fonction {math} sera assignée à la variable donnée plutôt que d'être directement affichée.

Note technique

{math} est une fonction coûteuse en terme de performances, du fait qu'elle utilise la fonction PHP eval(). Effectuer les calculs dans votre code PHP est beaucoup plus efficient, donc, chaque fois que possible, effectuez vos calculs directement dans PHP et assignez le résultat au template. Evitez coût que coût les appels répétitifs à la fonction {math}, comme on pourait le faire une une boucle {section}.

Nom attribut Type Requis Défaut Description
equation chaîne de caractères Oui n/a L'opération à éxécuter
format chaîne de caractères Non n/a Le format du résultat (sprintf)
var numeric Oui n/a Les variables de l'opération
assign chaîne de caractères Non n/a Variable de template dans laquelle la sortie sera assignée
[var ...] numeric Oui n/a Valeurs des variables de l'opération

Example 8.24. {math}

Exemple a :


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

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

  

L'exemple ci-dessus affichera :


    9

  

Exemple 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#}

  

L'exemple ci-dessus affichera :


   100

  

Exemple c :


{* vous pouvez utiliser des parenthèses *}

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

  

L'exemple ci-dessus affichera :


   6

  

Exemple d :


{* vous pouvez définir un format sprintf pour l'affichage *}

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


  

L'exemple ci-dessus affichera :


   9.44

  

Comments
by Julien BREUX on Feb 5, 2012 at 6:27
Pour utiliser une valeur aléatoire (rand / random), vous pouvez faire comme ceci (exemple entre 1 et 10 compris) :
{math equation='rand(1,10)'}
Si vous souhaitez l'utiliser en variable, il vous suffit de passer l'argument "assign" comme cela (exemple entre 1 et 10 compris) :
{math equation='rand(1,10)' assing='myRandValue'}

Advertisement

Sponsors [info]

Sponsors