2012-08-28 1 views
1

Cela peut être une question facile à répondre, mais je suis un peu perplexe et je n'ai pas étudié Smarty assez longtemps pour le comprendre.Smarty: Toujours afficher 3 chiffres

J'ai besoin d'afficher les numéros dans un format à 3 chiffres, à savoir:

8 = 008 
18 = 018 
118 = 118 

Pour ajouter un contexte, au fond, je suis en train de modifier un modèle Prestashop (jamais touché Smarty avant cela). Actuellement, le prix est affiché comme 1.223.014 et je voudrais séparer les trois derniers chiffres afin que je puisse le formater différemment de la première partie du prix. Ainsi, je serais capable de faire quelque chose comme

<span class="abc">1.223</span>.<span class="xyz">014</span> 

Je ne sais pas s'il y a un moyen plus facile de le faire, mais au fond je partagerai actuellement le prix actuel de 1000 (pour éliminer les 3 derniers chiffres) et maintenant je suis perplexe sur la façon d'obtenir les 3 derniers chiffres (fonctionne bien si les trois derniers chiffres sont au-dessus de 99)

Votre aide est appréciée.

Merci

Répondre

2

Solution pour votre exemple {"%03d"|sprintf:8}

Solution possible si vous voulez que les 3 derniers chiffres dans tous les cas {'1.223.014'|substr:-3}

html:

<span class="abc">{'1.223.014'|substr:0:-4}</span>.<span class="xyz">{'1.223.014'|substr:-3}</span> 

Note: Cette ne fonctionnera pas si le nombre leng e est inférieur à 4

Si vous voulez vérifier s'il y a des points à l'intérieur du numéro, vous pouvez le faire

{if '1.223.014'|substr_count:'.' > 0} 
..dots inside.. 
{else} 
..no dots inside.. 
{/if} 

Testé avec Smarty 3.

+0

merci Je pense que votre premier code a résolu le problème pour moi. –

Questions connexes