You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

76 lines
2.5 KiB

[(#REM)
Zone de saisie de date utilsant le dateur de Bonux si présent.
Sur les sites en HTML5, utilise type="date"
sur le input, et type="text" par défaut pour les autres.
Pour tous on utilise class="date" et class="heure" pour activer le dateur.
La valeur fournie peut être :
- au format spip jj/mm/aaaa (date uniquement)
- au format SQL aaaa-mm-jj (date uniquement)
- au format SQL aaaa-mm-jj hh:mm:ss (date et heure)
- un tableau avec une entrée "date" et une entrée "heure" séparée, au format SQL (date et heure obligatoire)
Pour utiliser les heures, il faut utiliser l'option "horaire=oui".
La date est proposée à l'affichage au format jj/mm/aaaa.
La valeur retournée n'est pas nécessairement au format SQL.
Le cas échéant, il faut la normaliser avant enregistrement en base.
]
[(#REM) Initialisation de la valeur ]
#SET{autodater,''}
[(#ENV{class}|=={'autodater'}|oui)
#SET{autodater,#VAL{Y-m-d H:i:s}|date}
]
#SET{valeur,#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut,#GET{autodater}}}}}
[(#REM) Regex de date SQL ]
#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])?"}
[(#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) ]
[(#GET{valeur}|is_array|oui)
#SET{date, #GET{valeur/date}}
#SET{heure, #GET{valeur/heure}}
]
[(#REM) Si la valeur est une chaîne, on regarde si SQL ]
[(#GET{valeur}|is_string|oui)
[(#REM) Par défaut (date uniquement au format SPIP) la date c'est toute la valeur ]
#SET{date, #GET{valeur}}
#SET{heure, ''}
[(#REM) Si c'est bien une date SQL ]
[(#GET{valeur}|match{#GET{date_sql}}|oui)
[(#REM) Si la date est complètement 0, on met des valeurs vides ]
[(#GET{valeur}|=={0000-00-00 00:00:00}|oui)
#SET{date, ''}
#SET{heure, ''}
]
[(#GET{valeur}|=={0000-00-00 00:00:00}|non)
#SET{date, #GET{valeur}|affdate{d/m/Y}}
#SET{heure, #GET{valeur}|affdate{H:i}}
]
]
]
<p hidden id="[format_date_(#ENV{nom}|saisie_nom2name)]"><:saisies:format_date_attendu:></p>
#SET{describedby, #ENV{describedby}|concat{' ',format_date_#ENV{nom}|saisie_nom2name} }
[(#INCLURE{fond=saisies/input,
env,
nom=#ENV{nom}[(#ENV{horaire}|?{\[date\]})],
describedby=#GET{describedby},
valeur=#GET{date},
type=text,
class=[(#ENV{class}) ]date})]
[(#ENV{horaire}|oui)
[(#INCLURE{fond=saisies/input,
env,
nom=#ENV{nom}\[heure\],
valeur=#GET{heure},
size=4,
maxlength=5,
class=[(#ENV{class}) ]heure})]
]
[(#ENV{disable}|non|et{#ENV{readonly}|non})[(#INCLURE{fond=formulaires/dateur/inc-dateur, heure_pas=#ENV{heure_pas,30}})]]