Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

Bug avec replace

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French
View previous topic :: View next topic  
Author Message
Voxen
Smarty Rookie


Joined: 25 Nov 2010
Posts: 14

PostPosted: Thu Nov 25, 2010 4:34 pm    Post subject: Bug avec replace Reply with quote

Bonjour

Je viens de trouver un bug important dans Smarty 3.0.5 avec la fonction "replace". Exemple à reproduire :

<TEXTAREA>{"télévision<br />réfrigérateur<br />répétiteur<br />écran"|replace:"<br />":"\n"}</TEXTAREA>

Au lieu de remplacer tous les <br /> par des \n, la fonction affiche ceci dans le TEXTAREA :
télévision
réfrigérateur<b
titeur<b
n

Il y a un décalage dans les remplacements qui est du aux caractères accentués. En effet, si on enlève les accents à tous les mots, cela fonctionne :

<TEXTAREA>{"television<br />refrigerateur<br />repetiteur<br />ecran"|replace:"<br />":"\n"}</TEXTAREA>

Cette fois le TEXTAREA affiche :
television
refrigerateur
repetiteur
ecran

En debug du plugin modifier.replace.php, j'ai vu qu'il y a un appel à mb_strpos(), et le problème vient *probablement* de là : en effet, cette fonction nécessite un 4eme paramètre $encoding qui n'est pas fourni. Par défaut, c'est la valeur de mb_internal_encoding() qui est utilisé, mais Smarty ne permet pas de spécifier cette valeur.

Que peut-on faire, sachant que ce bug risque d'apparaître dans d'autres fonctions Smarty qui utilisent le multibyte.

Merci
Back to top
View user's profile Send private message
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Thu Nov 25, 2010 6:32 pm    Post subject: Reply with quote

Bonjour,

Déjà ce que tu peux faire, c'est utilisé le "modifier" "nl2br" plutôt que de faire un replace, ce qui est plus propre.

Sinon tu peux reporter le bug dans la section Bugs afin d'avertir les développeurs Smile

++
Back to top
View user's profile Send private message Send e-mail
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Thu Nov 25, 2010 6:36 pm    Post subject: Reply with quote

Je reviens sur mon post car en fait ce n'est pas un bug mais une omission de ta part concernant le paramétrage de smarty.

En effet, les développeurs ont prévu de changer l'encodage via la constante "SMARTY_RESOURCE_CHAR_SET" (ligne 59-60 du fichier Smarty.class.php) qui est ensuite utilisé via la fonction php "mb_internal_encoding" (voir ligne 250 du fichier Smarty.class.php) qui elle modifie l'encodage des fonctions multi-octet.


A toi de définir cette constante Smile

Pour moi ce n'est pas un bug
Back to top
View user's profile Send private message Send e-mail
Voxen
Smarty Rookie


Joined: 25 Nov 2010
Posts: 14

PostPosted: Fri Nov 26, 2010 8:15 am    Post subject: Reply with quote

Ca marche, merci beaucoup !
Back to top
View user's profile Send private message
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Fri Nov 26, 2010 9:40 am    Post subject: Reply with quote

Pourrais tu mettres le tag [Résolu] dans le titre du post ?

Merci ! Smile
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP