Formidable 6.2.0 Erreur d’exécution.File […]/auto/saisies/v5.5.0/inc/saisies_lister.php Line 605

Bonjour,
Avec spip 4.2.11, php 7.4.33, saisie 5.5.0, la 1ere étape (configurer le formulaire) du 1er formulaire, l’enregistrement retourne des messages d’erreur :
1 Erreur(s) dans le squelette (modale)
Erreur d’exécution …/plugins/auto/formidable/v6.2.0/formulaires/formidable.html | File […]/plugins/auto/saisies/v5.5.0/inc/saisies_lister.php Line 605 : Argument 1 passed to saisies_dont_avec_option() must be of the type array, null given, called in […]/tmp/cache/skel/html_2ee8d51ca17049ab26893cc08d248cd8.php on line 110

Sur la page d’édition du formulaire :
Aucun traitement n’est activé. Ce formulaire ne traitera aucune donnée.
Erreur d’exécution …/plugins/auto/formidable/v6.2.0/formulaires/formidable.html

Dans l’export YALM :
id_formulaire: ‹ 1 ›
identifiant: contact
titre: ‹ Nous écrire ›
descriptif: ‹  ›
css: ‹  ›
message_retour: ‹  ›
saisies: ‹  ›
traitements: ‹  ›
public: non
apres: formulaire
url_redirect: ‹  ›
statut: prop
date_creation: ‹ 2024-04-26 11:39:10 ›
maj: ‹ 2024-04-26 11:51:13 ›

La configuration de Formidable seule l’option « article » est cochée dans « Lier les formulaires aux contenus ».
Une idée ?
Cordialement

Il semble y avoir un comportement bizarre.
La configuration du formulaire peut être validée sans message d’erreur, seulement après avoir configuré les traitements.

Je ne comprend pas à quel moment tu as cela, sauf si tu fais un formulaire entièrement sans saisies, ce qui n’est pas un cas d’usage normal :slight_smile:

peux tu tester fix: Permettre à `saisies_dont_avec_option()` de recevoir des valeurs nulles (!416) · Requêtes de fusion · spip-contrib-extensions / saisies · GitLab

Bonjour Maïeul,
Pour débusquer où est caché le Malin :
Configuration générale de formidable (/ecrire/?exec=configurer_formidable) :
Lier les formulaires aux contenus = articles
Aller sur la page d’un article :
par exemple (/ecrire/?exec=article&id_article=25)
y a le bouton : Ajouter un formulaire
puis le lien : Créer et associer un formulaire :
(/ecrire/?exec=formulaire_edit&new=oui&associer_objet=article%7C25&redirect=.%2F%3Fexec%3Darticle%26id_article%3D25)
Dans le formulaire de création d’un nouveau formulaire :

  • Saisir un titre
  • Saisir un identifiant
  • enregistrer
    Là s’affichent les messages d’erreur.
    Pour rattraper le coup, il faut aller sur :
  1. Configurer les champs
    (/ecrire/?exec=formulaire_edit&id_formulaire=4&configurer=champs)
    créer au moins 1 champ
  2. Configurer les traitements
    (ecrire/?exec=formulaire_edit&id_formulaire=4&configurer=traitements)
    Dans : Choix des traitements
    Configurer au moins un des deux traitements :
    soit : Enregistrer les résultats du formulaire dans la base de données
    soit Envoyer un courriel
    et enregistrer
    Là, plus de message, le fonctionnement logique et habituel est rétabli.
    Cordialement

Bonjour Maïeul,
Dans inc/saisies_lister.php, ligne 605, double déclaration de la fonction :
saisies_dont_avec_option()
ligne 619, manque l’accolade fermante de la fonction.
j’ai fais un essai, ça ne déloge pas le Malin :wink:

Pour info : /saisies/tests/ListerTest.php n’est pas présent dans le paquet du plugin.
Cordialement

Je répond rapidement

  1. Créer et associer un formulaire :

Effectivement créer et associer le formulaire ne va pas jusqu’au bout du processus, en ne faisant que la création du formulaire, pas les étapes suivantes d’aller vers la création des saisies. Bon mais en fait on peut très bien corriger cela dès maintenant, j’avais ouverte un PR mais je l’ai pas fusionné. Cela sera pour la prochaine sortie de formidable

  1. Dans inc/saisies_lister.php, ligne 605, double déclaration de la fonction :
    saisies_dont_avec_option() :

je pense que tu n’a pas su appliquer la PR : les lignes en rouge sont à supprimer, les lignes en vert à ajouter ; mais plus simplement tu peux aussi télecharger le zip de la branche

  1. Pour info : /saisies/tests/ListerTest.php n’est pas présent dans le paquet du plugin.

oui, car cela ne concerne que du dev, donc c’est normal que cela ne soit pas installés avec le paquet en mode non git : cela ne servirait à rien