Jump to content

[Smarty] Masquer le symbole Euro à un endroit bien précis


Recommended Posts

Bonjour

Pour une question de design, je souhaite, en Smarty (uniquement) masquer le symbole Euro à un endroit précis de l'affichage du template product-list.tpl.

 

Pour ce faire, j'utilise donc (logiquement) cette syntaxe :

{convertPrice|replace:'€':'' price=$product.price}

Or, l'attribut replace de Smarty fonctionne pour tout et n'importe quoi (j'ai fait des tests) SAUF pour le symbole Euro (j'ai essayé et tout ce qui s'en suit évidemment : avec ou sans espace, remplacement par un espace, etc.)  :-(

 

Auriez-vous une explication ? Un truc qui m'échappe ?...

Merci

Link to comment
Share on other sites

Bonjour, 

le problème est dans la fonction convertPrice qui retourne les prix + devis, et la fonction replace applicable sur les variables pas sur les fonctions 

 

La fonction replace fonctionne bien sur les fonctions utilisateur (avec la syntaxe que j'utilise), j'ai fait des essais avec autre chose que "€" et ça fonctionne très bien (par ex. la virgule) : le soucis c'est ce satané symbole Euro :-(

 

Pas trop envie de me fader une nouvelle fonction "juste" pour ça :-s mais bon je crois bien que je vais y être forcé !!!

Link to comment
Share on other sites

Bonjour;

 

Or, l'attribut replace de Smarty fonctionne pour tout et n'importe quoi (j'ai fait des tests) SAUF pour le symbole Euro (j'ai essayé et tout ce qui s'en suit évidemment : avec ou sans espace, remplacement par un espace, etc.)  :-(

 

Auriez-vous une explication ? Un truc qui m'échappe ?...

 

Fonctionne également sur le symbole euro.

Sauf que vous appliquer la fonction sur une fonction (replace sur convertPrice), non sur une variable (cf. gladiator).

Vous devez déjà renseigner la variable (exemple : $price) et lui appliquer replace.

Un exemple testé à l'instant :

{$price=$product.price}			
{$price=$price|replace:'€':'' }
{$price} <!-Affichage, exemple : 38,35 -->
Edited by Yopixel (see edit history)
Link to comment
Share on other sites

Je vais être plus précis :

 

Ceci fonctionne :

{convertPrice|replace:',':'<sup>€' price=$product.price}</sup>

(remplace la virgule par le symbole Euro)

 

Mais du coup ça m'affiche par ex. "100€00 €"

 

J'ai donc utilisé ceci :

{convertPrice|replace:'€':''|replace:',':'<sup>€' price=$product.price}</sup>

Mais ça m'affiche du coup strictement la même chose.

 

Je veux bien utiliser une variable, mais je fais comment avec la fonction convertPrice ? Puis-je en assigner le retour à une variable en Smarty ? Ce serait finalement plus simple :-)

Pour info c'est la fonction convertPrice qui affiche le symbole monétaire, il n'est pas inclus dans la "valeur" de $product.price.

Edited by Cédric Girard (see edit history)
Link to comment
Share on other sites

 

Puis-je en assigner le retour à une variable en Smarty ? Ce serait finalement plus simple :-)

 

Je viens d'essayer deux méthodes, en assignant et en capturant. Puis application du replace.

Le signe € n'est pas remplacé...

Je ne comprends pas pourquoi pour la virgule c'est ok mais pas pour le signe.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...