Skip to content
Extraits de code Groupes Projets
Valider 20551d89 rédigé par rastapopoulos@spip.org's avatar rastapopoulos@spip.org
Parcourir les fichiers

Vérifier une valeur décimale, y compris en vérifiant le nombre de chiffres après la virgule.

parent bfeef887
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -10,6 +10,8 @@ test/verifier.html -text ...@@ -10,6 +10,8 @@ test/verifier.html -text
verifier/code_postal.php -text verifier/code_postal.php -text
verifier/date.php -text verifier/date.php -text
verifier/date.yaml -text verifier/date.yaml -text
verifier/decimal.php -text
verifier/decimal.yaml -text
verifier/email.php -text verifier/email.php -text
verifier/email.yaml -text verifier/email.yaml -text
verifier/entier.php -text verifier/entier.php -text
......
...@@ -9,6 +9,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( ...@@ -9,6 +9,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'erreur_code_postal' => 'Ce code postal est incorrect.', 'erreur_code_postal' => 'Ce code postal est incorrect.',
'erreur_date' => 'La date n\'est pas valide.', 'erreur_date' => 'La date n\'est pas valide.',
'erreur_date_format' => 'Le format de la date n\'est pas accepté.', 'erreur_date_format' => 'Le format de la date n\'est pas accepté.',
'erreur_decimal' => 'La valeur doit être un nombre décimal.',
'erreur_decimal_nb_decimales' => 'Le nombre ne doit pas avoir plus de @nb_decimales@ chiffres après la virgule.',
'erreur_email' => 'L\'adresse de courriel <em>@email@</em> n\'a pas un format valide.', 'erreur_email' => 'L\'adresse de courriel <em>@email@</em> n\'a pas un format valide.',
'erreur_email_nondispo' => 'L\'adresse de courriel <em>@email@</em> est d&eacute;j&agrave; utilis&eacute;e.', 'erreur_email_nondispo' => 'L\'adresse de courriel <em>@email@</em> est d&eacute;j&agrave; utilis&eacute;e.',
'erreur_entier' => 'La valeur doit &ecirc;tre un entier.', 'erreur_entier' => 'La valeur doit &ecirc;tre un entier.',
...@@ -28,6 +30,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( ...@@ -28,6 +30,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'erreur_url' => 'L\'adresse n\\\'est pas valide.', 'erreur_url' => 'L\'adresse n\\\'est pas valide.',
// O // O
'option_decimal_nb_decimales_label' => 'Nombre de d&eacute;cimales apr&egrave;s la virgule',
'option_email_disponible_label' => 'Adresse disponible', 'option_email_disponible_label' => 'Adresse disponible',
'option_email_disponible_label_case' => 'V&eacute;rifier que l\'adresse n\'est pas d&eacute;j&agrave; utilis&eacute;e par un utilisateur', 'option_email_disponible_label_case' => 'V&eacute;rifier que l\'adresse n\'est pas d&eacute;j&agrave; utilis&eacute;e par un utilisateur',
'option_email_mode_5322' => 'V&eacute;rification la plus conforme aux standards disponibles', 'option_email_mode_5322' => 'V&eacute;rification la plus conforme aux standards disponibles',
...@@ -46,11 +49,13 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( ...@@ -46,11 +49,13 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// T // T
'type_date' => 'Date', 'type_date' => 'Date',
'type_date_description' => 'V&eacute;rifie que la valeur est une date au format JJ/MM/AAAA. Le s&eacute;parateur est libre (&quot;.&quot;, &quot;/&quot;, etc).', 'type_date_description' => 'V&eacute;rifie que la valeur est une date au format JJ/MM/AAAA. Le s&eacute;parateur est libre (&quot;.&quot;, &quot;/&quot;, etc).',
'type_decimal' => 'Nombre &agrave; d&eacute;cimal',
'type_decimal_description' => 'V&eacute;rifie que la valeur est un nombre d&eacute;cimal, avec la possibilit&eacute; de restreindre entre deux valeurs et de pr&eacute;ciser le nombre de d&eacute;cimales apr&egrave;s la virgule.',
'type_email' => 'Adresse de courriel', 'type_email' => 'Adresse de courriel',
'type_email_description' => 'V&eacute;rifie que l\'adresse de courriel a un format correct.', 'type_email_description' => 'V&eacute;rifie que l\'adresse de courriel a un format correct.',
'type_email_disponible' => 'Disponibilit&eacute; d\'une adresse de courriel', 'type_email_disponible' => 'Disponibilit&eacute; d\'une adresse de courriel',
'type_email_disponible_description' => 'V&eacute;rifie que l\'adresse de courriel n\'est pas d&eacute;j&agrave; utilis&eacute; par un autre utilisateur du syst&egrave;me.', 'type_email_disponible_description' => 'V&eacute;rifie que l\'adresse de courriel n\'est pas d&eacute;j&agrave; utilis&eacute; par un autre utilisateur du syst&egrave;me.',
'type_entier' => 'Entier', 'type_entier' => 'Nombre entier',
'type_entier_description' => 'V&eacute;rifie que la valeur est un entier, avec la possibilit&eacute; de restreindre entre deux valeurs.', 'type_entier_description' => 'V&eacute;rifie que la valeur est un entier, avec la possibilit&eacute; de restreindre entre deux valeurs.',
'type_regex' => 'Expression r&eacute;guli&egrave;re', 'type_regex' => 'Expression r&eacute;guli&egrave;re',
'type_regex_description' => 'V&eacute;rifie que la valeur correspond au masque demand&eacute;. Pour l\'utilisation des masques, reportez-vous à <a href="http://fr2.php.net/manual/fr/reference.pcre.pattern.syntax.php">l\'aide en ligne de PHP</a>.', 'type_regex_description' => 'V&eacute;rifie que la valeur correspond au masque demand&eacute;. Pour l\'utilisation des masques, reportez-vous à <a href="http://fr2.php.net/manual/fr/reference.pcre.pattern.syntax.php">l\'aide en ligne de PHP</a>.',
......
<?php
// Sécurité
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Vérifie qu'un entier cohérent peut être extrait de la valeur
* Options :
* - min : valeur minimale acceptée
* - max : valeur maximale acceptée
*
* @param string $valeur La valeur à vérifier.
* @param array $option Si ce tableau associatif contient une valeur pour 'min' ou 'max', un contrôle supplémentaire sera effectué.
* @return string Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
*/
function verifier_decimal_dist($valeur, $options=array()){
$erreur = _T('verifier:erreur_decimal');
// Pas de tableau ni d'objet
if (is_numeric($valeur) and $valeur == floatval($valeur)){
// Si c'est une chaine on convertit en flottant
$valeur = floatval($valeur);
$ok = true;
$erreur = '';
if (isset($options['min']))
$ok = ($ok and ($valeur >= $options['min']));
if (isset($options['max'])){
$ok = ($ok and ($valeur <= $options['max']));
}
if (!$ok){
if (isset($options['min']) and isset($options['max']))
$erreur = _T('verifier:erreur_entier_entre', $options);
elseif (isset($options['max']))
$erreur = _T('verifier:erreur_entier_max', $options);
else
$erreur = _T('verifier:erreur_entier_min', $options);
}
}
// On vérifie le nombre de décimales après la virgule
if ($nb_decimales = $options['nb_decimales'] and round($valeur, $nb_decimales) != $valeur){
$erreur = _T('verifier:erreur_decimal_nb_decimales', array('nb_decimales' => $nb_decimales));
}
return $erreur;
}
?>
titre: '<:verifier:type_decimal:>'
description: '<:verifier:type_decimal_description:>'
options:
-
saisie: 'input'
options:
nom: 'min'
label: '<:verifier:option_entier_min_label:>'
verifier:
type: 'decimal'
-
saisie: 'input'
options:
nom: 'max'
label: '<:verifier:option_entier_max_label:>'
verifier:
type: 'decimal'
-
saisie: 'input'
options:
nom: 'nb_decimales'
label: '<:verifier:option_decimal_nb_decimales_label:>'
verifier:
type: 'entier'
min: 0
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter