[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / verifier / verifier / telephone.php
diff --git a/www/plugins/auto/verifier/verifier/telephone.php b/www/plugins/auto/verifier/verifier/telephone.php
new file mode 100644 (file)
index 0000000..5261bb2
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+
+// Sécurité
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+/**
+ * Vérifie un numéro de téléphone. Pour l'instant seulement avec le schéma français.
+ *
+ * @param string $valeur
+ *   La valeur à vérifier.
+ * @param array $options
+ *   [INUTILISE].
+ * @return string
+ *   Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
+ */
+function verifier_telephone_dist($valeur, $options=array()){
+       $erreur = _T('verifier:erreur_telephone');
+       if (!is_string($valeur))
+               return $erreur;
+       $ok = '';
+
+       // On accepte differentes notations, les points, les tirets, les espaces, les slashes
+       $tel = preg_replace("#\.|/|-| #i",'',$valeur);
+       
+       if (preg_match("/^\+33/", $tel)) {
+               $options['pays'] = 'FR';
+               $tel = preg_replace('/^\+33/','0',$valeur);
+       }
+       if (preg_match("/^\+34/", $tel)) {
+               $options['pays'] = 'ES';
+               $tel = preg_replace('/^\+34/','',$valeur);
+       }
+       if (preg_match("/^\+41/", $tel)) {
+               $options['pays'] = 'CH';
+               $tel = preg_replace('/^\+41/','0',$valeur);
+       }
+
+       switch($options['pays']){
+               case 'CH':
+                       if (!preg_match("/^0[1-9]{9}$/",$tel)) return $erreur;
+                       break;
+               case 'ES':
+                       if (!preg_match("/^[69][0-9]{8}$/",$tel)) return $erreur;
+                       break;
+               case 'FR':
+                       if (!preg_match("/^0[1-9][0-9]{8}$/",$tel)) return $erreur;
+               default:
+                       // On interdit les 000 etc. mais je pense qu'on peut faire plus malin
+                       // TODO finaliser les numéros à la con
+                       if($tel == '0000000000') return $erreur;
+                       break;
+       }
+       
+       return $ok;
+}