Skip to content

possible problème de compatibilité saisie/verifier pour les dates

en PHP 8 il semblerait que la saisie date avec l'option horaire ne soit plus compatible avec le verifier date pour cause de typage des données envoyées :

  • la saisie
[(#SAISIE{date,truc_date}{horaire=oui})]

génère un double input name="truc_date[date]" et name="truc_date[heure]" cf https://git.spip.net/spip-contrib-extensions/saisies/src/branch/master/saisies/date.html#L60

Les données POSTées pour truc_datesont donc du type Array ['date' => '2022-04-20', 'heure' => '13:33'] ce qui n'est pas compatible avec le vérifier date qui pourrait être appelé sur la valeur truc_date par

$truc_date = _request('truc_date');
$verifier = charger_fonction('verifier', 'inc/');
$verifier($truc_date,'date', ['normaliser' => 'datetime'], $truc_date); 

toutes les instructions du style $date .= ' 23:59:59'; de la L155 et suivantes provoquent un "Warning: Array to string conversion" cf https://git.spip.net/spip-contrib-extensions/verifier/src/branch/master/verifier/date.php#L153

Plusieurs solutions semblent possibles mais n'étant ni un spécialiste de Saisies ni de Vérifier je pose ce ticket pour lancer le débat sur celui de ces 2 plugins qu'il est préférable de patcher...