[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / verifier / verifier / decimal.php
1 <?php
2
3 // Sécurité
4 if (!defined("_ECRIRE_INC_VERSION")) return;
5
6 /**
7 * Vérifie qu'un entier cohérent peut être extrait de la valeur
8 * Options :
9 * - min : valeur minimale acceptée
10 * - max : valeur maximale acceptée
11 *
12 * @param string $valeur
13 * La valeur à vérifier.
14 * @param array $options
15 * Si ce tableau associatif contient une valeur pour 'min' ou 'max', un contrôle supplémentaire sera effectué.
16 * @return string
17 * Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
18 */
19 function verifier_decimal_dist($valeur, $options=array()){
20 $erreur = _T('verifier:erreur_decimal');
21
22 // Pas de tableau ni d'objet
23 if (is_numeric($valeur) and $valeur == floatval($valeur)){
24 // Si c'est une chaine on convertit en flottant
25 $valeur = floatval($valeur);
26 $ok = true;
27 $erreur = '';
28
29 if (isset($options['min']))
30 $ok = ($ok and ($valeur >= $options['min']));
31
32 if (isset($options['max'])){
33 $ok = ($ok and ($valeur <= $options['max']));
34 }
35
36 if (!$ok){
37 if (isset($options['min']) and isset($options['max']))
38 $erreur = _T('verifier:erreur_entier_entre', $options);
39 elseif (isset($options['max']))
40 $erreur = _T('verifier:erreur_entier_max', $options);
41 else
42 $erreur = _T('verifier:erreur_entier_min', $options);
43 }
44 }
45
46 // On vérifie le nombre de décimales après la virgule
47 if ($nb_decimales = $options['nb_decimales'] and round($valeur, $nb_decimales) != $valeur){
48 $erreur = _T('verifier:erreur_decimal_nb_decimales', array('nb_decimales' => $nb_decimales));
49 }
50
51 return $erreur;
52 }
53
54 ?>