Cédric Girard Posted June 23, 2015 Share Posted June 23, 2015 BonjourPour 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 More sharing options...
gladiator Posted June 23, 2015 Share Posted June 23, 2015 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 Link to comment Share on other sites More sharing options...
J. Danse Posted June 23, 2015 Share Posted June 23, 2015 (edited) Bonjour, Pourquoi ne pas plus vite utiliser quelque chose du style: {convertAndFormatPrice price=$product.price currency=2} où 2 serait l'ID de la nouvelle devise créée qui ne contiendrait pas le symbole € dedans ? Edited June 23, 2015 by J. Danse (see edit history) Link to comment Share on other sites More sharing options...
Cédric Girard Posted June 23, 2015 Author Share Posted June 23, 2015 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 More sharing options...
YopixelAE Posted June 23, 2015 Share Posted June 23, 2015 (edited) 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 June 23, 2015 by Yopixel (see edit history) Link to comment Share on other sites More sharing options...
Cédric Girard Posted June 24, 2015 Author Share Posted June 24, 2015 (edited) 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 June 24, 2015 by Cédric Girard (see edit history) Link to comment Share on other sites More sharing options...
YopixelAE Posted June 24, 2015 Share Posted June 24, 2015 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 More sharing options...
Cédric Girard Posted June 24, 2015 Author Share Posted June 24, 2015 C'était l'objet de ma question ;-)Je vais faire autrement... C'est pas grave. Merci ! Link to comment Share on other sites More sharing options...
Cédric Girard Posted June 29, 2015 Author Share Posted June 29, 2015 Bonjour okom3pomC'est vrai que je n'ai pas pensé à utiliser regex_replace... Du coup j'ai surchargé les fonctions convertPrice et displayPrice (la seconde étant utilisée dans la première) ; vais essayer votre solution :-)Merci ! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now