Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-03-2010 13:00:21

Blount
Membre
Date d'inscription: 23-06-2009
Messages: 98
Site web

Zend_Filter_NormalizedToLocalized dans un formulaire

Bonjour à tous.

Je rencontre un souci avec ce module. Première je fais un test :

Code:

$filter = new Zend_Filter_NormalizedToLocalized(array('precision' => 2, 'locale' => new Zend_Locale('fr_FR')));
$value = $filter->filter('15999.90');
var_dump($value);  // string '15 999,90' (length=10)
$filter = new Zend_Filter_LocalizedToNormalized(array('precision' => 2, 'locale' => new Zend_Locale('fr_FR')));
$value = $filter->filter($value);
var_dump($value);  // string '15999.90' (length=8)

Maintenant je filtre seulement avec LocalizedToNormalized sur mono champ de formulaire :

Code:

var_dump($form->getElement('prix')); // string '15 999,00' (length=9)
$filter = new Zend_Filter_LocalizedToNormalized(array('precision' => 2, 'locale' => new Zend_Locale('fr_FR')));
$value = $filter->filter($form->getElement('prix'));
var_dump($value);  // string '15 999,00' (length=9)

Premier constat, on s'aperçoit que cela ne fonctionne pas dans le second cas.

Second constat, et pas le moindre, on peut s'apercevoir que dans le premier cas, la chaine localisé fait 10 octets, alors que cette même chaîne tapée à la main dans le formulaire fait 9 octets (7 chiffres, un espace et une virgule).

En regardant dans le code HTML lui même, je constate que l'espace dans le premier exemple est de type " ", alors que dans le second cas, c'est un espace normal.

Ma conclusion, est-ce que cette espace n'est pas un espace forcé, permettant de ne pas avoir de retour à la ligne ?
J'ai essayé de mettre un filtre pour remplacer le simple espace par cette espace (j'ai copié/collé), mais sans résultat.

Pourriez-vous me venir en aide ?

Merci d'avance.

Hors ligne

 

#2 20-03-2010 15:22:00

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: Zend_Filter_NormalizedToLocalized dans un formulaire

Bonjour, cela a été discuté ici : http://framework.zend.com/issues/browse/ZF-9242 et là : http://framework.zend.com/issues/browse/ZF-7175

Des modifications auraient été faites, mais cela n'apparaît pas dans la dernière version de ZF, peut-être plus tard ? En attendant on peut remplacer les espaces entrés par \xC2\xA0

Hors ligne

 

#3 20-03-2010 15:34:55

Blount
Membre
Date d'inscription: 23-06-2009
Messages: 98
Site web

Re: Zend_Filter_NormalizedToLocalized dans un formulaire

Ok merci. Je testerai ça alors.

J'ai pas lu les deux liens, pas trop le temps et comme c'est en anglais, je vais pas comprendre tout ^^

Mais c'est étonnant de voir ces caractères au lieu de l'espace.

Hors ligne

 

#4 23-03-2010 13:50:48

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: Zend_Filter_NormalizedToLocalized dans un formulaire

En résumé le développeur a expliqué que l'espace blanc insécable était dans les spécifications de la locale. Cet espace prend deux caractères en UTF8 et un seul en iso (0xA0).

Dans l'autre discussion il aurait fait des modifications mais je ne sais pas ce qu'il a fait exactement et ce n'est pas encore officiel au vu de la version qu'il a mentionné.

En tous cas son conseil de modifier les espaces fonctionne.

Il y a également une remarque pertinente au sujet des personnes qui se servent du pavé numérique et entrent les chiffres sans espaces ou avec le point au lieu de la virgule, ce qui ne simplifie pas notre tâche.

Dernière modification par Zartan (23-03-2010 13:54:19)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages