Erreur d’exécution ../plugins/auto/saisies/v4.7.0/saisies-vues/date.html #257

Open
opened 3 months ago by Cdesign · 13 comments
Collaborator

Bonjour
j'ai un petit problème en php 8.1 et en 7.4 avec Spip 4.1.7 (et 4.1.9)
dans un formulaire formidable le champs Date provoque une erreur

Erreur d’exécution ../plugins/auto/saisies/v4.7.0/saisies-vues/date.html
File /ecrire/inc/filtres.php Line 3265 : Argument 1 passed to filtre_match_dist() must be of the type string or null, array given

merci pour votre aide
Natacha

Bonjour j'ai un petit problème en php 8.1 et en 7.4 avec Spip 4.1.7 (et 4.1.9) dans un formulaire formidable le champs Date provoque une erreur Erreur d’exécution ../plugins/auto/saisies/v4.7.0/saisies-vues/date.html File /ecrire/inc/filtres.php Line 3265 : Argument 1 passed to filtre_match_dist() must be of the type string or null, array given merci pour votre aide Natacha
Owner

Peut-on avoir l'export YAML du formulaire (pas le temps d me pencher sur ce bug avant 2 semaines, dans tous les cas).

Peut-on avoir l'export YAML du formulaire (pas le temps d me pencher sur ce bug avant 2 semaines, dans tous les cas).
Owner

Est-ce que dans ce fichier tu peux ajouter (ou tout remplacer) un [(#ENV{valeur}|var_dump)] pour savoir ce que ça reçoit à cette endroit ?

Est-ce que dans ce fichier tu peux ajouter (ou tout remplacer) un `[(#ENV{valeur}|var_dump)]` pour savoir ce que ça reçoit à cette endroit ?
Poster
Collaborator

le fichier yaml n'est pas accepté en pj

la zone concernée

options: { horaire: oui, label: 'Date of evaluation', explication: 'The date of your evaluation of the files of the candidate.', obligatoire: on, info_obligatoire: '[Mandatory]', nom: date_1 }
verifier: [{ type: date, options: { normaliser: datetime, vider_date_nulle: non } }]
identifiant: '@63e3e4a0987f0'
saisie: date

le var_dump sur un test en local dans saisies-vues/date.html

string(19) "2023-03-06 18:30:00" array(2) { ["date"]=> string(0) "" ["heure"]=> string(0) "" }

date et heure

le fichier yaml n'est pas accepté en pj la zone concernée options: { horaire: oui, label: 'Date of evaluation', explication: 'The date of your evaluation of the files of the candidate.', obligatoire: on, info_obligatoire: '[Mandatory]', nom: date_1 } verifier: [{ type: date, options: { normaliser: datetime, vider_date_nulle: non } }] identifiant: '@63e3e4a0987f0' saisie: date le var_dump sur un test en local dans saisies-vues/date.html string(19) "2023-03-06 18:30:00" array(2) { ["date"]=> string(0) "" ["heure"]=> string(0) "" } date et heure
Owner

Ok donc l'erreur est logique si ça sort le format array de la date/heure.

Maintenant pourquoi à un moment t'as ça au "bon" format SQL (string contenant tout), et de l'autre en tableau. Le var_dump ça fait le résultat de deux saisies différentes ?

Ok donc l'erreur est logique si ça sort le format array de la date/heure. Maintenant pourquoi à un moment t'as ça au "bon" format SQL (string contenant tout), et de l'autre en tableau. Le var_dump ça fait le résultat de deux saisies différentes ?
Poster
Collaborator

var dump après avoir désactiver l'heure et modifié la réponse
string(19) "2023-03-06 00:00:00" array(2) { ["date"]=> string(0) "" ["heure"]=> string(0) "" }

dans la table spip_formulaires_reponses_champs j'ai date_1 => 2023-03-06 00:00:00
pas d'autre ligne date

Erreur d’exécution ../plugins/auto/saisies/v4.7.0/saisies-vues/date.html | File […]/ecrire/inc/filtres.php Line 3265 : Argument 1 passed to filtre_match_dist() must be of the type string or null, array given, called in […]/ecrire/public/composer.php(96) : eval()'d code on line 34

var dump après avoir désactiver l'heure et modifié la réponse string(19) "2023-03-06 00:00:00" array(2) { ["date"]=> string(0) "" ["heure"]=> string(0) "" } dans la table spip_formulaires_reponses_champs j'ai date_1 => 2023-03-06 00:00:00 pas d'autre ligne date Erreur d’exécution ../plugins/auto/saisies/v4.7.0/saisies-vues/date.html | File […]/ecrire/inc/filtres.php Line 3265 : Argument 1 passed to filtre_match_dist() must be of the type string or null, array given, called in […]/ecrire/public/composer.php(96) : eval()'d code on line 34
Owner

Est-ce qu'on pourrait avoir le YAML total pour reproduire le problème, histoire de pas naviguer à l'aveugle ?

Est-ce qu'on pourrait avoir le YAML total pour reproduire le problème, histoire de pas naviguer à l'aveugle ?
Poster
Collaborator

Bonjour
le voici
j'ai ajouté l'extension txt pour pouvoir le télécharger

précision
SPIP 4.1.7
PHP Version 7.4.33
c'est dans la lecture des réponses que s'affiche l'Erreur d’exécution
Natacha

Bonjour le voici j'ai ajouté l'extension txt pour pouvoir le télécharger précision SPIP 4.1.7 PHP Version 7.4.33 c'est dans la lecture des réponses que s'affiche l'Erreur d’exécution Natacha
Poster
Collaborator

Bonjour
avez vous pu reproduire le problème constaté ?
merci
bon wd
Natacha

Bonjour avez vous pu reproduire le problème constaté ? merci bon wd Natacha
Owner

Non désolé, pas encore eu le temps de m'y pencher.

Non désolé, pas encore eu le temps de m'y pencher.
Owner

Cela previent de "schedule of the interview" qui est une saisie conditionnée mais où tu as coché la case "uniquement lors du remplissage", si bien qu'on tente de l'afficher avec rien, et c'est là où ca semble buguer.

Cela previent de "schedule of the interview" qui est une saisie conditionnée mais où tu as coché la case "uniquement lors du remplissage", si bien qu'on tente de l'afficher avec rien, et c'est là où ca semble buguer.
Owner

Et donc @rastapopoulos le problème vient du fait qu'on est dans une contradiction entre

  1. La saisie est masqué par afficher_si -> elle ne passe pas par l'étape des vérifs
  2. Mais l'API des vérifs fait la normalisation, si bien que la normalisation qui devait transformer le tableau en chaine n'a pas lieu
  3. Et en même temps on n'est sur du afficher_si_avec_post et donc on stocke quand même en base.
  4. Si bien que en base on n'a stocké un tableau json type {"date":"","heure":""}

Là comme cela je ne vois pas trop comment gérer sans devoir faire une séparation net et propre dans vérifier entre la normalisation et la vérification.

Et donc @rastapopoulos le problème vient du fait qu'on est dans une contradiction entre 1. La saisie est masqué par afficher_si -> elle ne passe pas par l'étape des vérifs 2. Mais l'API des vérifs fait la normalisation, si bien que la normalisation qui devait transformer le tableau en chaine n'a pas lieu 3. Et en même temps on n'est sur du `afficher_si_avec_post` et donc on stocke quand même en base. 4. Si bien que en base on n'a stocké un tableau json type {"date":"","heure":""} Là comme cela je ne vois pas trop comment gérer sans devoir faire une séparation net et propre dans vérifier entre la normalisation et la vérification.
Poster
Collaborator

Bonjour à tous
voici le retour de mon client

En fait c’est une erreur de ma part en configurant le champs. Il est en effet inutile d’afficher la programmation de l’interview si la case qui demande celle-ci n’est pas activée

Merci
bonne journée
Natacha

Bonjour à tous voici le retour de mon client > En fait c’est une erreur de ma part en configurant le champs. Il est en effet inutile d’afficher la programmation de l’interview si la case qui demande celle-ci n’est pas activée Merci bonne journée Natacha
Owner

oui mais il n'empeche qu'il y a quand même un bug, car d'autres pourraient vouloir.

oui mais il n'empeche qu'il y a quand même un bug, car d'autres pourraient vouloir.
Sign in to join this conversation.
No Milestone
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: spip-contrib-extensions/saisies#257
Loading…
There is no content yet.