Formidable, le générateur de formulaires

Un générateur de formulaires facilement configurable pour les non-informaticiennes et facilement extensible pour les développeur⋅euses.

Cette documentation est valable à partir de la version 6.1.0 de Formidable.

Introduction

Historiquement, deux plugins avaient déjà été développés précédemment pour gérer des formulaires :

  • Forms &Tables, qui n’a pas été complètement porté pour SPIP 2.
  • et spip-formulaire créé par artego mais qui n’était plus maintenu.

La question s’est donc posée : construire sur la base d’un des deux plugins ou repartir de zéro ?
Form &Table, très complet pour les utilisateurs, présentait l’inconvénient d’avoir un côté « fourre-tout » qui le rendait difficilement modifiable et difficile à personnaliser par les dévs.

Il a finalement été décidé de repartir de zéro pour proposer quelque chose :

  • de plus facile à utiliser pour les utilisateurs d’une part,
  • mais aussi de plus facile à personnaliser pour les développeur⋅euses.
    Avec le parti pris de se baser de préférence sur plusieurs petits plugins spécialisés et de tirer parti de la nouvelle norme CVT.

Interface utilisateur

L’utilisation basique de l’interface est abordée dans ce screencast : Mon premier formulaire pas à pas : c’est Formidable !

Appeler mon formulaire

Vous devez appeler le formulaire ayant le nom « formidable », en lui passant en paramètre l’identifiant de votre formulaire.

Dans un contenu

Utilisez le modèle <formulaire> classique : <formulaire|formidable|id=34> ou bien <formulaire|formidable|id=contact>

Dans un squelette


#FORMULAIRE_FORMIDABLE{34} ou bien #FORMULAIRE_FORMIDABLE{contact}

Afficher les résultats du formulaire

Dans un contenu

Utilisez le modèle <formulaire_analyse|id_formulaire=34>

Pré-remplir dynamiquement les champs d’un formulaire

À noter, vous avez la possibilité de surcharger dans l’appel, les valeurs par défaut des champs de votre formulaire. Pour cela, vous devez passer un tableau de nom=>valeur en deuxième paramètre. Vous pourrez trouver les noms de vos champs dans l’aide-mémoire situé sur la page de configuration des traitements.

Dans un contenu

Le tableau de valeurs dans un paramètre defaut sous forme d’une suite de chaînes « clé,valeur » séparée par des virgules :
<formulaire|formidable|id=contact|defaut=hidden1,valeur,input_5,autrevaleur>

Dans un squelette

Le tableau en deuxième paramètre :

#FORMULAIRE_FORMIDABLE{contact, #ARRAY{nom_du_champ, Ma valeur}}

C’est particulièrement utile pour remplir un champ caché avec une valeur dynamique venant du squelette :

#FORMULAIRE_FORMIDABLE{contact, #ARRAY{hidden_1, #ID_DOCUMENT}}

Autres options utilisable dans le squelette

Il est possible de passer des options comme troisième argument du formulaire, sous forme de tableau (#ARRAY).

Options possible comme troisième argument de #FORMULAIRE_FORMIDABLE
Nom de l’optionFonctionType
forcer_modif Permet de forcer la modification d’une réponse, même si non autorisé Booléen
id_formulaires_reponses Identifiant de la réponse à modifier Entier
no_ajax Désactiver l’ajax sur le formulaire Booléen
traiter_email_destinataires Destinataires pour le traitement Tableau (#ARRAY) d’emails ou liste d’emails séparés par des virgules
traiter_email_destinataires_methode Indique si traiter_email_destinataires doit remplacer les emails déjà configurés dans le traitement ou les ajouter Au choix 'remplacer' ou 'ajouter' (valeur par défaut)
url_redirect Url de redirection Chaine

Exemple d’un formulaire Formidable dont l’identifiant est contact_libre et dont l’email destinataire est dans le champ email de la table de votre objet #EMAIL de la table spip_contacts ….

<div class="ajax">
#FORMULAIRE_FORMIDABLE{contact_libre,'',#ARRAY{traiter_email_destinataires,#EMAIL}}
</div>

Case unique

Pour rendre obligatoire la réponse oui à une case unique (pour la validation de conditions d’utilisation par exemple), il faut simplement rendre le champ obligatoire.

Courriels de notification

Une option des traitements proposés permet d’envoyer un mail de notification automatiquement, à chaque saisie d’un formulaire.

Le squelette par défaut employé pour la mise en forme de ces mails est plugins/formidable/notifications/formulaire_email.html. Vous pouvez le copier dans le répertoire ’notifications’ de votre squelette et l’y modifier à votre guise. Cette modification vaudra pour tous les formulaires.

Pour utiliser un squelette spécifique pour les mails de notification de l’un seulement des formulaires définis avec Formidable, il suffit d’ajouter son squelette dans le répertoire ’notifications’ de votre dossier squelettes, mais en ajoutant l’identifiant.

IDENTIFIANT étant l’identifiant du formulaire défini dans Formidable, les squelettes doivent se nommer :
formulaire_IDENTIFIANT_email.html pour le mail aux destinataires
formulaire_IDENTIFIANT_accuse.html pour l’accusé de réception du visiteur

Conservation des IP

Les adresse IP des personnes répondant aux formulaires sont stockées en base de donnée. Depuis la version 1.5 (SPIP 3) / 0.7 (SPIP < 3), elle sont automatiquement hashé, de manière à ce que l’IP ne soit plus reconnaissable, au bout de 124 jours (environ 4 mois).

Pour changer ce délai, vous pouvez redéfinir la constante _CNIL_PERIODE dans votre fichier mes_options.php.

Par exemple :

define('_CNIL_PERIODE', 24*3600);

permet de hasher les IP toutes les 24 heures.

Si vous voulez désactiver le hashage, mettez la valeur à 0.

Envoi de fichiers

Lire l’article complémentaire : Envoyer des fichiers avec un formulaire Formidable.

Mise en forme des saisies

Le plugin ne prévoit aucun réglage de mise en forme des saisies : c’est à chaque squelette d’avoir ses styles. Il respecte cependant la convention d’écriture des formulaire SPIP. Il permet d’ajouter des classes spécifiques sur les saisies.

Affichage des réponses sous forme de tableau

Le plugin Formidable Tablesorter permet d’afficher sous forme de tableau les réponses, dans l’espace privé, avec possibilité de tri et de filtre.

Voir aussi sur le wiki


-  Complément de doc et exemples sur les boucles et balises de formidable
-  Exemples de stylage CSS d’un formulaire Formidable
-  todoFormidable
-  Formidable, présentation aux Grottes (2010)

Discussion

166 discussions

  • 3

    Bonjour,
    Je viens de créer mon premier formulaire, et c’est super bien.
    J’ai un soucis avec le nom du bouton de validation à la fin du formulaire qui s’appelle « nom du p »
    qui est le nom que j’avais mis sur mon premier champ avant de le changer.
    Comment peut-on changer cela ?

    • hein ? nom du premier champ ? il n’y a pas d’affection du nom du premier champ au bouton de validation.

      Lorsque tu modifie le formulaire tu a tout en haut une option « configurer les options globales ». C’est là où tu peux modifier le bouton de validation.

    • Un grand Merci. Je n’avais pas vu cette option que j’ai cherchée longtemps.
      J’ai du faire une erreur lors de ma premier essai.
      Merci aussi pour ce plugin formidable.
      Peux-t-on faire avec une base indépendante de spip pour utiliser sur un ordinateur avec un navigateur ?
      Cordialement

    • Peux-t-on faire avec une base indépendante de spip pour utiliser sur un ordinateur avec un navigateur ?

      pas compris la question, mais formidable fonctionne avec SPIP uniquement (après il existe des logiciels spécialisé pour créer des formulaires en ligne, en dehors de tout site)

    Répondre à ce message

  • 3

    Bonjour

    Je rencontre un problème avec la configuration des traitements.

    J’ai un formulaire dont les données sont modifiables et je ne coche pas la case « Ne pas envoyer d’email en cas de modification d’une réponse déjà enregistrée. »

    Je m’attends donc à recevoir un email à chaque modification. Or je ne le reçois qu’à chaque premier remplissage, pas aux mises à jour.

    Voilà le code du formulaire. Qu’ai-je mal renseigné ?

    id_formulaire: '20'
    identifiant: droits_a_limage
    titre: 'Droits à l''image'
    descriptif: ''
    css: ''
    message_retour: 'Votre réponse a bien été enregistrée.'
    saisies:
      - { options: { label: 'Mon identité', nom: fieldset_1 }, identifiant: '@5e3bf7f4d119e', verifier: {  }, saisie: fieldset, saisies: [{ options: { label: 'Nom et prénom', type: text, readonly: on, size: '40', autocomplete: defaut, nom: input_1 }, identifiant: '@5e3bf2ed87f0a', verifier: {  }, saisie: input }] }
      - { options: { label: 'Mes autorisations', nom: fieldset_2 }, identifiant: '@5e3bf8105ce06', verifier: {  }, saisie: fieldset, saisies: [{ options: { texte: 'J''autorise le LESIA / Observatoire de Paris-PSL   à publier mon image et/ou ma voix sur les supports numériques suivants :', nom: explication_1 }, identifiant: '@5e3bf2f463ff1', verifier: {  }, saisie: explication }, { options: { label: 'Sites en accès restreint au domaine de l’Observatoire', nom: fieldset_4 }, identifiant: '@5e3bfa749c8b6', verifier: {  }, saisie: fieldset, saisies: [{ options: { label: 'Annuaire interne de l’Observatoire', valeur_oui: on, nom: oui_non_2 }, identifiant: '@5e3bf3671d9ff', verifier: {  }, saisie: oui_non }] }, { options: { label: 'Sites en accès restreint aux membres du LESIA', nom: fieldset_5 }, identifiant: '@5e3bfa9e670d7', verifier: {  }, saisie: fieldset, saisies: [{ options: { label: 'Trombinoscope sur l’Intranet du LESIA ', valeur_oui: on, nom: oui_non_1 }, identifiant: '@5e2ac34278cce', verifier: {  }, saisie: oui_non }, { options: { label: 'Intranet du LESIA ', valeur_oui: on, nom: oui_non_3 }, identifiant: '@5e3bf3a7d5188', verifier: {  }, saisie: oui_non }, { options: { label: 'Photothèque du LESIA ', valeur_oui: on, nom: oui_non_4 }, identifiant: '@5e3bf3c2c9266', verifier: {  }, saisie: oui_non }] }, { options: { label: 'Sites publics', nom: fieldset_6 }, identifiant: '@5e3bfae3bdee6', verifier: {  }, saisie: fieldset, saisies: [{ options: { label: 'Site web du LESIA', valeur_oui: on, nom: oui_non_5 }, identifiant: '@5e3bf3e97cfb0', verifier: {  }, saisie: oui_non }, { options: { label: 'Page Twitter du LESIA', valeur_oui: on, nom: oui_non_6 }, identifiant: '@5e3bf54d37cfe', verifier: {  }, saisie: oui_non }, { options: { label: 'Page Facebook du LESIA', valeur_oui: on, nom: oui_non_7 }, identifiant: '@5e3bf55c3cf36', verifier: {  }, saisie: oui_non }, { options: { label: 'Page Linkedin du LESIA', valeur_oui: on, nom: oui_non_8 }, identifiant: '@5e3bf5759b193', verifier: {  }, saisie: oui_non }] }] }
      - { options: { label: Modifications, nom: fieldset_3 }, identifiant: '@5e3bf855576d9', verifier: {  }, saisie: fieldset, saisies: [{ options: { texte: 'Je peux modifier à tout moment les droits accordés sur ce formulaire.', nom: explication_2 }, identifiant: '@5e3bf5c36d07a', verifier: {  }, saisie: explication }, { options: { label: 'Date de la dernière modification', defaut: 'Sera mis à jour automatiquement', heure_pas: '30', readonly: on, nom: date_1 }, verifier: { type: date, options: { normaliser: datetime } }, identifiant: '@5e3bf5a5888e3', saisie: date }] }
    traitements:
      enregistrement: { moderation: posteriori, multiple: '', modifiable: on, effacement: '', effacement_delai: '', identification: id_auteur, variable_php: '', unicite: '', message_erreur_unicite: '', anonymiser: '', ip: '', invalider: on, resume_reponse: '', analyse_exclure_champs: '' }
      email: { modification_reponse: '', champ_sujet: 'Droit à l''image modifié pour @input_1@', champ_sujet_valeurs_brutes: '', exclure_champs_email: '', pj: '', masquer_liens: '', activer_ip: '', masquer_champs_vides: '', destinataires_plus: florence.henry@obspm.fr, destinataires_selon_champ: '', champ_courriel_destinataire_form: '', champ_courriel: '', activer_vrai_envoyeur: '', champ_nom: '', activer_accuse: '', sujet_accuse: '', texte_accuse: '', masquer_valeurs_accuse: '', courriel_envoyeur_accuse: '', nom_envoyeur_accuse: '' }
    public: non
    statut: publie
    maj: '2020-02-06 14:39:29'
    apres: formulaire
    url_redirect: ''
    date_creation: '2020-02-06 12:24:34'
    

    Répondre à ce message

  • 1

    Hello,

    Juste pour signaler si vous rencontrez ce problème que le plugin Massicot fait planter l’affichage des formulaires dans l’espace privé.

    Répondre à ce message

  • 5

    Bonjour,
    Je constate un problème avec l’export Excel des réponses, cela génère un CSV à la place. Avez-vous une idée ?
    Bien à vous,
    JuL

    • ca a toujours été un peu foireux ce truc. Il faudrait essayer voir si c’est mieux avec le plugin https://plugins.spip.net/spout_spipcsv.html?compatible_spip=3.2

    • Bonjour,
      Merci pour le lien vers spout. Pour moi c’est mieux !

      J’en profite pour poser une question qui me hante depuis que j’utilise Formidable : quel est le meilleur moyen (SPIP si possible) pour exporter des données de réponses Formidable concaténées (c’est à dire issues de plusieurs formulaires du même site) en un seul fichier csv ou xls ?
      Genre exporter toutes les réponses d’un utilisateur X identifé.
      J’ai vu qu’il y avait le plugin requeteur SQL mais si l’on change un champ du formulaire il faut refaire la requête.
      Merci

    • Je vois mal comment ça serait possible car chaque formulaire peut avoir des champs différents donc des colonnes totalement différentes dans le tableur résultant.

    • Peut-on envisager de rétablir malgré tout l’export XLS, cela fonctionnait il y a quelques mois de cela.
      Merci

    • Je ne connais pas comment il fonctionnait. Je vais voir avec une personne qui sait peut être.

    Répondre à ce message

  • 5

    Bonjour,
    Est-il possible d’automatiser la dépublication d’un formulaire lorsqu’un nombre maximum de réponses serait atteint ? J’ai vu qu’il existe un plugin de gestion d’inscriptions à un événement mais je n’ai pas besoin d’autant d’options.
    Je pense qu’il faut conditionner l’intégration du formulaire dans le squelette directement en checkant le nombre de réponses mais il existe peut-être un moyen plus simple qui ne demande pas la personnalisation du squelette à ce seul formulaire ?

    • Pour le moment il n’existe pas d’options pour cela. Donc oui, la solution la plus simple est un squelette personnalisé.

    • Ok, merci pour cette réponse super rapide.

    • Dans le même ordre d’idée, je cherche un moyen simple d’envoyer une unique notification par mail juste après la publication de la 50e réponse.

    • C’est vraiment très spécifique là !
      Du coup il faudrait créer votre propre traitement, et donc faire un peu de php.

    • C’est ce qu’il me semblait aussi. Merci pour la réponse une fois encore rapide et merci aussi pour ce plugin qui porte bien son nom !

    Répondre à ce message

  • 3

    Bonjour à tous,

    Je viens de mettre en ligne mon formulaire et je me rend compte que l’affichage est différent. Pas de contour gris pour les titres. Chaque choix sont à la ligne. Bref je n’ai aucune mise en forme tout est en brut à la ligne.
    Si je fais f12 j’ai une erreur : bulles_blanches.png

    • Ce plugin ne s’occupe d’absolument rien de graphique, il ne fait que générer des formulaires en suivant la norme de structuration des formulaires de SPIP. Après c’est à ton thème graphique de styler les formulaires.

    • ok et le thème graphique est géré ou ?
      Désolé mais cette question qui peut paraître simple mais je viens de récupérer la gestion du site et je ne connais du tout le fonctionnement de SPIP :)

    • Les thème graphiques sont la plupart du temps livrés avec le squelette (mais par fois c’est différent).

      Celui-ci peut être distribué/installé de manières différentes, selon l’historicité de ton site et la capacité de la personne qui le gérait avant. Mais en gros
      1. Soit c’est un plugin qui est installé
      2. Soit c’est un contenu dans le dossier squelettes

      La vrai question qui se pose est : quelle indication faut-il te donner pour t’aider. Connus tu un peu de HTML/CSS ?
      Et surtout pour nous aider à t’aider, un lien serait bienvenu.

    Répondre à ce message

  • 9

    Grand merci pour les dernières modifications : la fonctionnalité de modification des réponses est vraiment très utile pour traiter et suivre la relation aux internautes (il semble que cette fonctionnalité vienne juste d’être ajoutée ?). Il reste semble-t-il toutefois une incompatibilité suite à ces derniers développements, avec l’extension de duplication des formulaires (je ne sais pas si vous l’avez remarqué).

    Une future évolution qui serait également extraordinaire (sauf çà ce que ce soit moi qui ne sache pas faire en l’état de l’extension), serait de pouvoir envoyer par publipostage courriel des formulaires avec certains champs préremplis par des informations des inscrits aux listes de diffusion (nom, courriel). Là, nous toucherions à la perfection en matière d’outil de personnalisation de la relation !

    • Je n’ai compris ni le problème sur la duplication, ni la demande d’évolution

    • Pour la compatibilité, le message de l’interface privée est :
      « Impossible d’activer le plugin ../plugins/auto/formifusion/v1.0.7
      Nécessite le plugin FORMIDABLE en version ≤ 3.*.*. »

      Pour l’évolution suggérée : Il s’agirait par exemple d’envoyer des courriels contenant un formulaire où l’adresse courriel ne serait plus à saisir, puisque cette information serait déjà préremplie avec l’adresse de destination du courriel, ce qui fait moins de saisie au destinataire.
      Cela permettrait par exemple aussi de s’adresser à lui par son prénom, puisque nous pourrions afficher ce prénom dans une phrase inscrite dans un champ descriptif du formulaire.

    • Il s’agit de l’extension de fusion, pas de duplication de formulaire. C’est lié au changement de numéro de version dans formidable (qui implique spip 3.1 minimum désormais). J’ai modifié le plugin formidable_fusion pour dire qu’il est compatible avec la version 4.0.0. La nouvelle version sera disponible sous peu.

      je ne comprend toujour pas le besoin. Il s’agit d’envoyer un lien vers un formulaire pre rempli ? ou bien de proposer de répondre par courriel avec des valeurs pré rempli. C’est vraiment pas clair du tout le besoin...

    • Il s’agit effectivement de proposer de répondre par courriel avec des valeurs pré-remplies (cela l’extension Formidable le propose déjà pour une valeur fixe en dur), mais paramétrable en fonction du destinataire du courriel (la valeur pré-remplie s’adapte à l’adresse courriel et au nom de l’inscrit à la lettre de diffusion qui reçoit le courriel).

    • Je n’y connais rien en terme de publipostage, mais dans tous les cas je commencerais par regarder du coté des outils de newlettrer de spip. Quoi qu’il en soit, je n’aurais pas le temps de dévelloper un tel outil.

    • Merci.

      Je vous précise quand même en regardant votre travail, que vous avez déjà fait ce type de développement avec l’extension « Formidable : abonnements à des listes de diffusion », pour les inscriptions par Mailsubscribers. En effet, vous savez dans cette extension alimenter @email@ et @nom@ dans les inscriptions aux listes.

      Pour la fonctionnalité que je propose, il « suffirait » (je sais, c’est plus facile à dire qu’à faire :-) de faire le chemin inverse : comme les variables @email@ et @nom@ sont déjà récupérables dans chaque courriel envoyé par liste de diffusion (ces variables affichent leur valeur lorsqu’elles sont insérées dans le corps d’une infolettre), il faudrait juste que les formulaires Formidables acceptent également de les interpréter (balise spécifique ?), lorsque le formulaire est édité dans le corps d’un publipostage.
      Note : J’ai bien essayé en l’état mais cela ne fonctionne pas, car @email@ mis en valeur par défaut dans un champ de formulaires Formidables s’affiche alors ’@email@’ dans le courriel, et non par la valeur qui correspond au destinataire de l’infolettre.

      Bonne journée !

    • lorsque le formulaire est édité dans le corps d’un publipostage

      On est d’accord que cette phrase ne veut rien dire ? À aucun moment un formulaire ne peut être utilisé dans un email…

      Moi je n’ai toujours pas compris ce que tu cherches à faire (« répondre par courriel » ? là non plus ça ne veut rien dire, à quel moment on peut répondre à un formulaire par courriel ?)

    • RastaPopoulos,

      Bah si : essaye d’insérer ta balise de formulaire formidable (

      <?php include_once("/opt/nursit/sys/home/nursit/matrice/public/4.2/07/spip/ecrire/balise/formulaire_.php"); if ($lang_select = "fr") $lang_select = lang_select($lang_select); inserer_balise_dynamique(balise_FORMULAIRE__dyn(arguments_balise_dyn_depuis_modele('FORMULAIRE_FORMIDABLE'), 'xxx'), array('', '', '', '', 'fr', '1')); if ($lang_select) lang_select(); ?>

      ) dans une infolettre, tu verras que les destinataires reçoivent un message qui contient le formulaire :-)

      Amicalement.

    • Ce n’est pas parce que tu le vois que ça peut MARCHER. Je le répète : à aucun moment un formulaire, censé être lié à des comportements PHP sur le serveur, ne peut marcher dans ton client email qui n’a RIEN à voir avec le serveur. Par ailleurs, ce n’est même pas forcément visible, car chacun reçoit les emails comme il le désire, et on peut très bien dire qu’on ne veut voir que les emails en mode texte, donc non le formulaire ne s’affiche même pas dans ce cas. Les emails c’est juste de la lecture.

    Répondre à ce message

  • 3

    Bonjour ,
    j’ai un soucis avec un champs type « grille de questions » : les cases cochées ne sont pas transmises (ni sauvées) (versions SPIP 3.2.5 [24404], formidable 3.47 et 48).
    Et si on met ce champ « obligatoire », l’utilisateur ne peut pas envoyer son formulaire.

    Sans doute lié, il est mis dans l’onglet « utilisation » que :
    Vous devez indiquez un choix par ligne sous la forme « cle|Label du choix »
    et si je mets des ’"’ en fin de ligne, ils apparaissent à l’écran. (voir copie écran.
    merci de votre aide.

    • il ne faut pas mettre de guillemet (ni en fin, ni en début de ligne). de plus évitez les virgules et espaces dans vos clès, mettre plutot des _ si vous devez séparer les choses.

    • Merci Maieul et bonne année !
      Cela marche parfaitement avec ces explications.
      Je suggère de mettre dans la prochaine version de l’explication de l’onglet « utilisation » , corrigeant la terminaison aussi de ’indiquer’ (’z’ au lieu de ’r’) sur toutes les explications en passant :
      Vous devez indiquer un choix par ligne sous la forme : cle_sans espaces|Label du choix
      William

    • bah heu non, les guillemets par définition indiquent une citation, donc on n’est pas censé les reprendre

    Répondre à ce message

  • 7

    J’ai un problème persistant : je coche sur la page ?exec=formulaire_edit&id_formulaire=2&configurer=traitements
    Effacer régulièrement les résultats les plus anciens
    et j’indique un nombre de jours ex 160 pour « Nombre de jours avant effacement »

    mais cela n’est pas pris en compte. Je suis obligée d’aller effacer les enregistrements dans la base et les fichiers joints sur le serveur (là par exemple j’ai 8 mois de réponse alors que je veux que les plus récentes de 160 jours.

    Les réponses sont toutes à « proposées » car n’ont pas vocation à être publiques
    Plugins à jour avec SPIP 3.2.7 [24473]

    Merci

    • très étrange, il n’y a pas de raison que cela ne fonctionne pas. Peux tu me dire si dans « liste des travaux » (menu maintenance) tu a bien une tache « formidable_effacer_enregistrements » et qu’est-ce qu’il se passe si tu l’applique manuellement. Par ailleurs as tu des messages de logs PHP (niveau serveur) ?

      (ps : tu peux aussi mettre les réponses à la corbeille, elles sont supprimées au bout de 24h)

    • Merci pour ta réponse rapide.
      J’ai lancé les travaux du cron mais cela n’efface rien.
      Je ne trouve pas de error.log

      Je vais effacer les anciens enregistrements dans la base directement (il y en a plusieurs centaines).

    • non, efface les en mettant à la poubelle, pas directement dans la base, cela permet de s’assurer de la cohérence.

      Du reste, si il y a un bug, il faut le résoudre. Peux tu m’envoyer l’export yaml de ton formulaire ? Peux tu activer temporairemnet l’affichage des erreurs et des warnings, puis faire un test par cron ?

    • Mon yaml est là : https://framadrop.org/r/ByvTk_R_DF#+6/orTBBZzRfcfcdrb/ikA+4//CyW0zxtXkCxoTkDnQ=

      Peux-tu me dire quel fichier de log je dois regarder ?
      J’ai par exemple dans dans jq.log :

      debug 	
          Fichier : ecrire/inc/queue.php
          Ligne : 401
          Fonction : queue_schedule()
          JQ schedule end time 1578320489

      et

      debug 	
          Fichier : ecrire/inc/utils.php
          Ligne : 1010
          Fonction : cron()
          cron !
    • HUM. En tout cas chez moi ca marche. Moi il me faudrait les logs de PHP. En gros on dirait qu’il y a un bug au niveau PHP, donc ces là que cela doit être logué. Eventuellement les logs sql.log.

      Tu est en mysql ou sqlite ?

    • J’ai réussi : il y avait quelques réponses isolées de plus d’un an qui étaient toujours en base. Je les ai supprimées à la mano et maintenant le cron supprime bien les réponses de plus de 6 mois. Il devait y avoir un blocage quelque part.
      Merci

    • j’avoue mal comprendre pourquoi des vieilles réponses bloquait le cron qui se contentait de faire un requete sql. Mais l’essentiel est que cela soit résolu

    Répondre à ce message

  • 10

    Bonjour

    Lors de l’utilisation d’un formulaire qui récupèrent les réponses à un sondage pour des paniers de légumes, les adhérents donnent un minimum de renseignements nom/courriel/type de panier.
    Or je m’aperçois que dans l’interface d’administration seul les noms (+liens) des auteurs du site apparaissent dans le récapitulatif des réponses (cf copie écran), les autres réponses restent sans nom … il faut cliquer sur la réponse pour accéder à toutes les infos dont le nom.
    Est ce normal ? ou j’ai omis de paramétrer quelque chose ?

    Grand merci pour ce petit bijou de plug-in
    Bertrand

    • Oui c’est normal : Formidable ne peut pas deviner tout seuls les champs pertinent à afficher.

      Mais lors de la configuration de l’enregistrement, tu peux définir une option « affichage résumé de la réponse » pour dire quel champ afficher ici.

    • Génial !
      Exactement ce que je voulais ! On peut même combiner plusieurs champs :-)
      C’est le champ utilisateur/adresse IP qui me posait problème et que je cherchais à modifier. Je n’avais pas vu la subtilité « Affichage résumé de la réponse ».

      Merci encore

      PS : j’ai l’impression que j’ai un bug d’affichage ou bien c’est dans le plug-in ? (voir copie d’écran)
      Dans l’écran de Configurer les traitements, la tête de chapitre Enregistrer les résultats est en dessous des réglages …

    • c’est plus ou moins un bug d’affichage, ca depend comment on voit les choses.

      la flèche point le legend du fieldset, alors que le cercle entoure le pseudo label de la case. Du coup on a l’impression qul’info est dupliqué, alors qu’en fait nom. Il faudrait plutot supprimer ce qui est entouré dans le cercle, qui n’a guère de sens en terme d’accessibilité

    • Ben OK sauf que tout le reste du formulaire utilise une nomenclature ; tête de chapitre, puis réglages… donc ça me paraissait logique sauf là :-)
      Bertrand

    • ca se discute. L’idée est qu’on choisi les traitement, puis on les règles, ce qui n’est pas le cas ailleurs. Techniquement on pourrait faire ainsi, mais c’est pas si simple.

    • ouais, ce serait possible, mais ca impliquerait une migration de la structure du formulaire et des données + des tests qui en découle. Bref un sacré sac de nœud avec des risques de bugs potentiels pour une plus value limitée.

    • Faut bien comprendre qu’il y a 2 étapes
      1) le choix du traitement (ce que tu tappel « réglage »)
      2) le réglage du traitement (ce qui amène une « tete de chapitre » a apparaite, si le traitement est coché)

      Si je supprime ce qui est entouré en cercle, ca fait bizarre parce qu’on a des label hyper long. Si je déplace la case à cocher sous la « tete de chapitre », faut beaucoup de code pour ne pas afficher la suite des résultats. Bref, pas convaincu et pas envie de passer du temps sur ca.

    • Comme tu dis le faux label qui n’est pas de la case ne sert à rien. On pourrait l’enlever et mettre « pleine_largeur » sur la saisie, et du coup sans marge inutile sur le côté gauche. Et du coup aussi enlever la marge gauche non standard qu’il y a sur « .option_traiter ». Après avoir fait ça, pour mieux distinguer les lignes des traitements racines (les deux cases à cocher de base du départ), il faudrait peut-être les mettre avec un fond d’une autre couleur, un truc comme ça…

      Cf capture. Je ne dis pas que c’est avec cette couleur qu’il faudrait mettre (et sans bordure je pense, juste le background), mais sur le principe, ça permet de bien mettre en avant du premier coup d’œil les choix « racines », de leur configuration respective, sans ajouter d’encadrement de partout (c’est mal, fuck les bordures et cadres partout).

    • oui j’avais testé d’enlever le faux label, mais j’était pas hyper convaincu en terme de rendu. Tu veux que je commite et que tu complète avec ta couleur ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom