[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / verifier / verifier / date.php
diff --git a/www/plugins/auto/verifier/verifier/date.php b/www/plugins/auto/verifier/verifier/date.php
new file mode 100644 (file)
index 0000000..f2a2e8a
--- /dev/null
@@ -0,0 +1,50 @@
+<?php\r
+\r
+// Sécurité\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+\r
+/**\r
+ * Une date au format JJ/MM/AAAA (avec séparateurs souples : espace / - .)\r
+ * Options :\r
+ * - format : permet de préciser le format de la date  jma pour jour/mois/année (par défaut), mja (pour mois / jour / année), amj (année/mois/jour)\r
+ * TODO : compléter les formats \r
+ * On pourrait faire mieux, genre vérifier les jours en fonction du mois\r
+ * Mais c'est pas très important, on reste simple\r
+ *\r
+ * @param string $valeur\r
+ *   La valeur à vérifier.\r
+ * @param array $options\r
+ *   tableau d'options [NON UTILISE].\r
+ * @return string\r
+ *   Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.\r
+ */\r
+function verifier_date_dist($valeur, $options=array()){\r
+       $erreur = _T('verifier:erreur_date_format');\r
+       if (!is_string($valeur))\r
+               return $erreur;\r
+\r
+       $ok = '';\r
+       // On tolère différents séparateurs\r
+       $valeur = preg_replace("#\.|/| #i",'-',$valeur);\r
+       \r
+       // On vérifie la validité du format\r
+       $format = isset($options['format']) ? $options['format'] : 'jma'; \r
+       \r
+       if ($format=='mja') {\r
+               if(!preg_match('#^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$#',$valeur)) return $erreur;\r
+               list($mois,$jour,$annee) = explode('-',$valeur);\r
+       } elseif ($format=='amj') {\r
+               if(!preg_match('#^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$#',$valeur)) return $erreur;\r
+               list($annee,$mois,$jour) = explode('-',$valeur);\r
+       } else {\r
+       // Format jma par défaut\r
+               if(!preg_match('#^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$#',$valeur)) return $erreur;\r
+               list($jour,$mois,$annee) = explode('-',$valeur);\r
+       }\r
+\r
+       // validité de la date\r
+       $erreur = _T('verifier:erreur_date');\r
+       if (!checkdate($mois, $jour, $annee)) return $erreur;\r
+       \r
+       return $ok;\r
+}\r