smarty template engine
Monday, October 13, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


{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 attributTypeRequisDéfautDescription
equationchaîne de caractèresOuin/aL'opération à éxécuter
formatchaîne de caractèresNonn/aLe format du résultat (sprintf)
varnumericOuin/aLes variables de l'opération
assignchaîne de caractèresNonn/aVariable de template dans laquelle la sortie sera assignée
[var ...]numericOuin/aValeurs des variables de l'opération

Exemple 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



 

credits 

Smarty Copyright © 2002-2008
New Digital Group, Inc.

All rights reserved.