[PLUGINS] +les plugins de bases
[ptitvelo/web/www.git] / www / plugins / saisies / saisies / date.html
1 [(#REM)
2 Zone de saisie de date utilsant le dateur de Bonux si présent.
3 Sur les sites en HTML5, utilise type="date"
4 sur le input, et type="text" par défaut pour les autres.
5 Pour tous on utilise class="date" et class="heure" pour activer le dateur.
6
7 La valeur fournie peut être :
8 - au format spip jj/mm/aaaa (date uniquement)
9 - au format SQL aaaa-mm-jj (date uniquement)
10 - au format SQL aaaa-mm-jj hh:mm:ss (date et heure)
11 - un tableau avec une entrée "date" et une entrée "heure" séparée, au format SQL (date et heure obligatoire)
12
13 Pour utiliser les heures, il faut utiliser l'option "horaire=oui".
14
15 La date est proposée à l'affichage au format jj/mm/aaaa.
16 ]
17
18 [(#REM) Initialisation de la valeur ]
19 #SET{valeur,#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}
20
21 [(#REM) Regex de date SQL ]
22 #SET{date_sql,"[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]( [0-9][0-9]:[0-9][0-9]:[0-9][0-9])?"}
23
24 [(#REM) Si la valeur est un tableau, on considère que c'est date et heure dans un format déjà reconnu (j/m/a ou SQL) ]
25 [(#GET{valeur}|is_array|oui)
26 #SET{date, #GET{valeur}|table_valeur{date}}
27 #SET{heure, #GET{valeur}|table_valeur{heure}}
28 ]
29
30 [(#REM) Si la valeur est une chaîne, on regarde si SQL ]
31 [(#GET{valeur}|is_string|oui)
32 [(#REM) Par défaut (date uniquement au format SPIP) la date c'est toute la valeur ]
33 #SET{date, #GET{valeur}}
34 #SET{heure, ''}
35
36 [(#REM) Si c'est bien une date SQL ]
37 [(#GET{valeur}|match{#GET{date_sql}}|oui)
38 [(#REM) Si la date est complètement 0, on met des valeurs vides ]
39 [(#GET{valeur}|=={0000-00-00 00:00:00}|oui)
40 #SET{date, ''}
41 #SET{heure, ''}
42 ]
43 [(#GET{valeur}|=={0000-00-00 00:00:00}|non)
44 #SET{date, #GET{valeur}|affdate{d/m/Y}}
45 #SET{heure, #GET{valeur}|affdate{H:i}}
46 ]
47 ]
48 ]
49
50 [(#INCLURE{fond=saisies/input,
51 env,
52 nom=#ENV{nom}[(#ENV{horaire}|?{[date]})],
53 valeur=#GET{date},
54 type=#HTML5|?{date,text},
55 class=[(#ENV{class}) ]date})]
56 [(#ENV{horaire}|oui)
57 [(#INCLURE{fond=saisies/input,
58 env,
59 nom=#ENV{nom}[heure],
60 valeur=#GET{heure},
61 size=4,
62 maxlength=5,
63 class=[(#ENV{class}) ]heure})]
64 ]
65 [(#ENV{disable}|non|et{#ENV{readonly}|non})[(#INCLURE{fond=formulaires/dateur/inc-dateur, heure_pas=#ENV{heure_pas,30}})]]