[PLUGINS] ~maj globale
[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
24 // Pas de tableau ni d'objet
25 if (is_numeric($valeur) and $valeur == floatval($valeur)) {
26 // Si c'est une chaine on convertit en flottant
27 $valeur = floatval($valeur);
28 $ok = true;
29 $erreur = '';
30
31 if (isset($options['min'])) {
32 $ok = ($ok and ($valeur >= $options['min']));
33 }
34
35 if (isset($options['max'])) {
36 $ok = ($ok and ($valeur <= $options['max']));
37 }
38
39 if (!$ok) {
40 if (isset($options['min']) and isset($options['max'])) {
41 $erreur = _T('verifier:erreur_entier_entre', $options);
42 } elseif (isset($options['max'])) {
43 $erreur = _T('verifier:erreur_entier_max', $options);
44 } else {
45 $erreur = _T('verifier:erreur_entier_min', $options);
46 }
47 }
48 }
49
50 // On vérifie le nombre de décimales après la virgule
51 if (isset($options['nb_decimales']) and $nb_decimales = $options['nb_decimales'] and round($valeur, $nb_decimales) != $valeur) {
52 $erreur = _T('verifier:erreur_decimal_nb_decimales', array('nb_decimales' => $nb_decimales));
53 }
54
55 return $erreur;
56 }