|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
Voxen Smarty Rookie
Joined: 25 Nov 2010 Posts: 14
|
Posted: Thu Nov 25, 2010 4:34 pm Post subject: Bug avec replace |
|
|
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 |
|
Gowser Smarty Pro
Joined: 19 Feb 2008 Posts: 104 Location: Nantes (France)
|
Posted: Thu Nov 25, 2010 6:32 pm Post subject: |
|
|
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
++ |
|
Back to top |
|
Gowser Smarty Pro
Joined: 19 Feb 2008 Posts: 104 Location: Nantes (France)
|
Posted: Thu Nov 25, 2010 6:36 pm Post subject: |
|
|
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
Pour moi ce n'est pas un bug |
|
Back to top |
|
Voxen Smarty Rookie
Joined: 25 Nov 2010 Posts: 14
|
Posted: Fri Nov 26, 2010 8:15 am Post subject: |
|
|
Ca marche, merci beaucoup ! |
|
Back to top |
|
Gowser Smarty Pro
Joined: 19 Feb 2008 Posts: 104 Location: Nantes (France)
|
Posted: Fri Nov 26, 2010 9:40 am Post subject: |
|
|
Pourrais tu mettres le tag [Résolu] dans le titre du post ?
Merci ! |
|
Back to top |
|
|
|
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
|