Skip to content
Extraits de code Groupes Projets
Valider 6b09f6ef rédigé par yffic@lefourneau.com's avatar yffic@lefourneau.com
Parcourir les fichiers

Vérification d'un code couleur, uniquement en hexa pour l'instant. Et...

Vérification d'un code couleur, uniquement en hexa pour l'instant. Et normalisation en rajoutant éventuellement un dièse.
parent 147fa4e0
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -26,6 +26,8 @@ lang/verifier_sk.php -text
test/verifier.html -text
verifier/code_postal.php -text
verifier/comparaison_champ.php -text
verifier/couleur.php -text
verifier/couleur.yaml -text
verifier/date.php -text
verifier/date.yaml -text
verifier/decimal.php -text
......
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/verifier/lang/
if (!defined('_ECRIRE_INC_VERSION')) return;
$GLOBALS[$GLOBALS['idx_lang']] = array(
// V
'verifier_description' => 'Fournit une fonction unique <code>verifier($valeur, $type, $options)</code> permettant de tester la validité d\'une valeur.',
'verifier_nom' => 'API de vérification',
'verifier_slogan' => 'Une API générique pour vérifier une valeur'
);
?>
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/verifier/lang/
if (!defined('_ECRIRE_INC_VERSION')) return;
$GLOBALS[$GLOBALS['idx_lang']] = array(
// V
'verifier_description' => 'Fournit une fonction unique <code>verifier($valeur, $type, $options, &$valeur_normalisee)</code> permettant de tester la validité d\'une valeur.',
'verifier_nom' => 'API de vérification',
'verifier_slogan' => 'Une API générique pour vérifier une valeur'
);
?>
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/verifier/lang/
if (!defined('_ECRIRE_INC_VERSION')) return;
$GLOBALS[$GLOBALS['idx_lang']] = array(
// E
'erreur_code_postal' => 'Ce code postal est incorrect.',
'erreur_comparaison_egal' => 'La valeur doit être égale au champ "@nom_champ@"',
'erreur_comparaison_egal_type' => 'La valeur doit être égale et de même type que le champ "@nom_champ@"',
'erreur_comparaison_grand' => 'La valeur doit être supérieure au champ "@nom_champ@"',
'erreur_comparaison_grand_egal' => 'La valeur doit être supérieure ou égale au champ "@nom_champ@"',
'erreur_comparaison_petit' => 'La valeur doit être inférieure au champ "@nom_champ@"',
'erreur_comparaison_petit_egal' => 'La valeur doit être inférieure ou égale au champ "@nom_champ@"',
'erreur_date' => 'La date n\'est pas valide.',
'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_nondispo' => 'L\'adresse de courriel <em>@email@</em> est déjà utilisée.',
'erreur_entier' => 'La valeur doit être un entier.',
'erreur_entier_entre' => 'La valeur doit être comprise entre @min@ et @max@.',
'erreur_entier_max' => 'La valeur doit être inférieure à @max@.',
'erreur_entier_min' => 'La valeur doit être supérieure à @min@.',
'erreur_id_document' => 'Cet identifiant de document n\'est pas valide.',
'erreur_inconnue_generique' => 'Le format n\'est pas correct.',
'erreur_numerique' => 'Le format du nombre n\'est pas valide.',
'erreur_regex' => 'Le format de la chaîne n\'est pas valide.',
'erreur_siren' => 'Le numéro de SIREN n\'est pas valide.',
'erreur_siret' => 'Le numéro de SIRET n\'est pas valide.',
'erreur_taille_egal' => 'La valeur doit comprendre exactement @egal@ caractères.',
'erreur_taille_entre' => 'La valeur doit comprendre entre @min@ et @max@ caractères.',
'erreur_taille_max' => 'La valeur doit comprendre au maximum @max@ caractères.',
'erreur_taille_min' => 'La valeur doit comprendre au minimum @min@ caractères.',
'erreur_telephone' => 'Le numéro n\'est pas valide.',
'erreur_url' => 'L\'adresse <em>@url@</em> n\'est pas valide.',
'erreur_url_protocole' => 'L\'adresse saisie <em>(@url@)</em> doit commencer par @protocole@',
'erreur_url_protocole_exact' => 'L\'adresse saisie <em>(@url@)</em> ne commence pas par un protocole valide (http:// par exemple)',
// N
'normaliser_option_date' => 'Normaliser la date ?',
'normaliser_option_date_aucune' => 'Non',
'normaliser_option_date_en_datetime' => 'Au format «Datetime» (pour SQL)',
// O
'option_decimal_nb_decimales_label' => 'Nombre de décimales après la virgule',
'option_email_disponible_label' => 'Adresse disponible',
'option_email_disponible_label_case' => 'Vérifier que l\'adresse n\'est pas déjà utilisée par un utilisateur',
'option_email_mode_5322' => 'Vérification la plus conforme aux standards disponibles',
'option_email_mode_label' => 'Mode de vérification des courriels',
'option_email_mode_normal' => 'Vérification normale de SPIP',
'option_email_mode_strict' => 'Vérification moins permissive',
'option_entier_max_label' => 'Valeur maximum',
'option_entier_min_label' => 'Valeur minimum',
'option_regex_modele_label' => 'La valeur doit correspondre au masque suivant',
'option_siren_siret_mode_label' => 'Que voulez-vous vérifier ?',
'option_siren_siret_mode_siren' => 'le SIREN',
'option_siren_siret_mode_siret' => 'le SIRET',
'option_taille_max_label' => 'Taille maximum',
'option_taille_min_label' => 'Taille minimum',
'option_url_mode_complet' => 'Vérification complète de l\'url',
'option_url_mode_label' => 'Mode de vérification des urls',
'option_url_mode_php_filter' => 'Vérification complète de l\'url via le filtre FILTER_VALIDATE_URL de php',
'option_url_mode_protocole_seul' => 'Vérification uniquement de la présence d\'un protocole',
'option_url_protocole_label' => 'Nom du protocole à vérifier',
'option_url_type_protocole_exact' => 'Saisir un protocole ci-dessous :',
'option_url_type_protocole_ftp' => 'Protocoles ftp : ftp ou sftp',
'option_url_type_protocole_label' => 'Type de protocole à vérifier',
'option_url_type_protocole_mail' => 'Protocoles mail : imap, pop3 ou smtp',
'option_url_type_protocole_tous' => 'Tous protocoles acceptés',
'option_url_type_protocole_web' => 'Protocoles web : http ou https',
// T
'type_date' => 'Date',
'type_date_description' => 'Vérifie que la valeur est une date au format JJ/MM/AAAA. Le séparateur est libre (&quot;.&quot;, &quot;/&quot;, etc).',
'type_decimal' => 'Nombre décimal',
'type_decimal_description' => 'Vérifie que la valeur est un nombre décimal, avec la possibilité de restreindre entre deux valeurs et de préciser le nombre de décimales après la virgule.',
'type_email' => 'Adresse de courriel',
'type_email_description' => 'Vérifie que l\'adresse de courriel a un format correct.',
'type_email_disponible' => 'Disponibilité d\'une adresse de courriel',
'type_email_disponible_description' => 'Vérifie que l\'adresse de courriel n\'est pas déjà utilisé par un autre utilisateur du système.',
'type_entier' => 'Nombre entier',
'type_entier_description' => 'Vérifie que la valeur est un entier, avec la possibilité de restreindre entre deux valeurs.',
'type_regex' => 'Expression régulière',
'type_regex_description' => 'Vérifie que la valeur correspond au masque demandé. 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_siren_siret' => 'SIREN ou SIRET',
'type_siren_siret_description' => 'Vérifie que la valeur est un numéro valide du <a href="http://fr.wikipedia.org/wiki/SIREN">Système d’Identification du Répertoire des ENtreprises</a> français.',
'type_taille' => 'Taille',
'type_taille_description' => 'Vérifie que la taille de la valeur correspond au minimum et/ou au maximum demandé.',
'type_telephone' => 'Numéro de téléphone',
'type_telephone_description' => 'Vérifie que le numéro de téléphone correspond à un schéma reconnu.',
'type_url' => 'URL',
'type_url_description' => 'Vérifie que l\'url correspond à un schéma reconnu.'
);
?>
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/verifier/lang/
if (!defined('_ECRIRE_INC_VERSION')) return;
$GLOBALS[$GLOBALS['idx_lang']] = array(
// E
'erreur_code_postal' => 'Ce code postal est incorrect.',
'erreur_comparaison_egal' => 'La valeur doit être égale au champ "@nom_champ@"',
'erreur_comparaison_egal_type' => 'La valeur doit être égale et de même type que le champ "@nom_champ@"',
'erreur_comparaison_grand' => 'La valeur doit être supérieure au champ "@nom_champ@"',
'erreur_comparaison_grand_egal' => 'La valeur doit être supérieure ou égale au champ "@nom_champ@"',
'erreur_comparaison_petit' => 'La valeur doit être inférieure au champ "@nom_champ@"',
'erreur_comparaison_petit_egal' => 'La valeur doit être inférieure ou égale au champ "@nom_champ@"',
'erreur_couleur' => 'Le code couleur 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_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_nondispo' => 'L\'adresse de courriel <em>@email@</em> est déjà utilisée.',
'erreur_entier' => 'La valeur doit être un entier.',
'erreur_entier_entre' => 'La valeur doit être comprise entre @min@ et @max@.',
'erreur_entier_max' => 'La valeur doit être inférieure à @max@.',
'erreur_entier_min' => 'La valeur doit être supérieure à @min@.',
'erreur_id_document' => 'Cet identifiant de document n\'est pas valide.',
'erreur_inconnue_generique' => 'Le format n\'est pas correct.',
'erreur_numerique' => 'Le format du nombre n\'est pas valide.',
'erreur_regex' => 'Le format de la chaîne n\'est pas valide.',
'erreur_siren' => 'Le numéro de SIREN n\'est pas valide.',
'erreur_siret' => 'Le numéro de SIRET n\'est pas valide.',
'erreur_taille_egal' => 'La valeur doit comprendre exactement @egal@ caractères.',
'erreur_taille_entre' => 'La valeur doit comprendre entre @min@ et @max@ caractères.',
'erreur_taille_max' => 'La valeur doit comprendre au maximum @max@ caractères.',
'erreur_taille_min' => 'La valeur doit comprendre au minimum @min@ caractères.',
'erreur_telephone' => 'Le numéro n\'est pas valide.',
'erreur_url' => 'L\'adresse <em>@url@</em> n\'est pas valide.',
'erreur_url_protocole' => 'L\'adresse saisie <em>(@url@)</em> doit commencer par @protocole@',
'erreur_url_protocole_exact' => 'L\'adresse saisie <em>(@url@)</em> ne commence pas par un protocole valide (http:// par exemple)',
// N
'normaliser_option_date' => 'Normaliser la date ?',
'normaliser_option_date_aucune' => 'Non',
'normaliser_option_date_en_datetime' => 'Au format «Datetime» (pour SQL)',
// O
'option_couleur_normaliser_label' => 'Normaliser le code couleur ?',
'option_couleur_type_hexa' => 'Code couleur au format héxadécimal',
'option_couleur_type_label' => 'Type de vérification à effectuer',
'option_decimal_nb_decimales_label' => 'Nombre de décimales après la virgule',
'option_email_disponible_label' => 'Adresse disponible',
'option_email_disponible_label_case' => 'Vérifier que l\'adresse n\'est pas déjà utilisée par un utilisateur',
'option_email_mode_5322' => 'Vérification la plus conforme aux standards disponibles',
'option_email_mode_label' => 'Mode de vérification des courriels',
'option_email_mode_normal' => 'Vérification normale de SPIP',
'option_email_mode_strict' => 'Vérification moins permissive',
'option_entier_max_label' => 'Valeur maximum',
'option_entier_min_label' => 'Valeur minimum',
'option_regex_modele_label' => 'La valeur doit correspondre au masque suivant',
'option_siren_siret_mode_label' => 'Que voulez-vous vérifier ?',
'option_siren_siret_mode_siren' => 'le SIREN',
'option_siren_siret_mode_siret' => 'le SIRET',
'option_taille_max_label' => 'Taille maximum',
'option_taille_min_label' => 'Taille minimum',
'option_url_mode_complet' => 'Vérification complète de l\'url',
'option_url_mode_label' => 'Mode de vérification des urls',
'option_url_mode_php_filter' => 'Vérification complète de l\'url via le filtre FILTER_VALIDATE_URL de php',
'option_url_mode_protocole_seul' => 'Vérification uniquement de la présence d\'un protocole',
'option_url_protocole_label' => 'Nom du protocole à vérifier',
'option_url_type_protocole_exact' => 'Saisir un protocole ci-dessous :',
'option_url_type_protocole_ftp' => 'Protocoles ftp : ftp ou sftp',
'option_url_type_protocole_label' => 'Type de protocole à vérifier',
'option_url_type_protocole_mail' => 'Protocoles mail : imap, pop3 ou smtp',
'option_url_type_protocole_tous' => 'Tous protocoles acceptés',
'option_url_type_protocole_web' => 'Protocoles web : http ou https',
// T
'type_couleur' => 'Couleur',
'type_couleur_description' => 'Vérifie que la valeur est un code couleur.',
'type_date' => 'Date',
'type_date_description' => 'Vérifie que la valeur est une date au format JJ/MM/AAAA. Le séparateur est libre (&quot;.&quot;, &quot;/&quot;, etc).',
'type_decimal' => 'Nombre décimal',
'type_decimal_description' => 'Vérifie que la valeur est un nombre décimal, avec la possibilité de restreindre entre deux valeurs et de préciser le nombre de décimales après la virgule.',
'type_email' => 'Adresse de courriel',
'type_email_description' => 'Vérifie que l\'adresse de courriel a un format correct.',
'type_email_disponible' => 'Disponibilité d\'une adresse de courriel',
'type_email_disponible_description' => 'Vérifie que l\'adresse de courriel n\'est pas déjà utilisé par un autre utilisateur du système.',
'type_entier' => 'Nombre entier',
'type_entier_description' => 'Vérifie que la valeur est un entier, avec la possibilité de restreindre entre deux valeurs.',
'type_regex' => 'Expression régulière',
'type_regex_description' => 'Vérifie que la valeur correspond au masque demandé. 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_siren_siret' => 'SIREN ou SIRET',
'type_siren_siret_description' => 'Vérifie que la valeur est un numéro valide du <a href="http://fr.wikipedia.org/wiki/SIREN">Système d’Identification du Répertoire des ENtreprises</a> français.',
'type_taille' => 'Taille',
'type_taille_description' => 'Vérifie que la taille de la valeur correspond au minimum et/ou au maximum demandé.',
'type_telephone' => 'Numéro de téléphone',
'type_telephone_description' => 'Vérifie que le numéro de téléphone correspond à un schéma reconnu.',
'type_url' => 'URL',
'type_url_description' => 'Vérifie que l\'url correspond à un schéma reconnu.'
);
?>
<paquet
prefix="verifier"
categorie="outil"
version="0.1.13"
etat="test"
compatibilite="[2.0.10;3.0.99]"
logo="images/verifier-128.png"
documentation="http://www.spip-contrib.net/Verifier,1505"
>
<nom>API de v&#233;rification</nom>
<!-- Une API générique pour vérifier une valeur -->
<auteur lien="http://www.ldd.fr">Les Développements Durables</auteur>
<licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
<traduire module="verifier" reference="fr" gestionnaire="salvatore" />
<pipeline nom="verifier" action="verifier_verifier" inclure="verifier_pipelines.php" />
<utilise nom="yaml" />
</paquet>
<paquet
prefix="verifier"
categorie="outil"
version="0.1.14"
etat="test"
compatibilite="[2.0.10;3.0.99]"
logo="images/verifier-128.png"
documentation="http://www.spip-contrib.net/Verifier,1505"
>
<nom>API de v&#233;rification</nom>
<!-- Une API générique pour vérifier une valeur -->
<auteur lien="http://www.ldd.fr">Les Développements Durables</auteur>
<licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
<traduire module="verifier" reference="fr" gestionnaire="salvatore" />
<pipeline nom="verifier" action="verifier_verifier" inclure="verifier_pipelines.php" />
<utilise nom="yaml" />
</paquet>
......@@ -9,12 +9,12 @@
<auteur>[Les Développements Durables->http://www.ldd.fr]</auteur>
<icon>images/verifier-128.png</icon>
<licence>GPL v3</licence>
<version>0.1.13</version>
<version>0.1.14</version>
<etat>test</etat>
<description>
<multi>
[fr]Fournit une fonction unique <code>verifier($valeur, $type, $options)</code> permettant de tester la validit&#233; d'une valeur.
[en]Provides a unique function <code>verifier($value, $type, $options)</code> to test the validity of a value.
[fr]Fournit une fonction unique <code>verifier($valeur, $type, $options, &$valeur_normalisee)</code> permettant de tester la validit&#233; d'une valeur.
[en]Provides a unique function <code>verifier($value, $type, $options, &$valeur_normalisee)</code> to test the validity of a value.
</multi>
</description>
<prefix>verifier</prefix>
......
<?php
// Sécurité
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Vérifie la validité d'un code couleur
*
* @param string $valeur
* La valeur à vérifier.
* @param array $options
* type => hexa,...
* normaliser => oui ou rien
* @param null $valeur_normalisee
* Si normalisation a faire, la variable sera rempli par la couleur normalisee.
* @return string
* Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
*/
function verifier_couleur_dist($valeur, $options=array(), &$valeur_normalisee=null){
$erreur = _T('verifier:erreur_couleur');
if (!is_string($valeur))
return $erreur;
$ok = '';
switch ($options['type']){
case 'hexa':
default:
if (!preg_match(",^#[a-f0-9]{6}$,i", $valeur))
if ($options['normaliser'] and preg_match(",^[a-f0-9]{6}$,i", $valeur))
$valeur_normalisee = "#".$valeur ;
else
return $erreur;
break;
}
spip_log("valeur $valeur valeur_normalisee $valeur_normalisee options ".print_r($options,true),"couleur");
return $ok;
}
?>
\ No newline at end of file
titre: '<:verifier:type_couleur:>'
description: '<:verifier:type_couleur_description:>'
options:
-
saisie: 'radio'
options:
nom: 'type'
label: '<:verifier:option_couleur_type_label:>'
datas:
hexa: '<:verifier:option_couleur_type_hexa:>'
defaut: 'hexa'
-
saisie: 'oui_non'
options:
nom: 'normaliser'
label: '<:verifier:option_couleur_normaliser_label:>'
defaut: ''
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter