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