Configuration des traitements de Formidable

Une fois le formulaire et les champs créés formidable propose de « configurer les traitements »
Cet article vise à préciser ou compléter quand ça semble nécessaire certains choix présents.

Le premier choix consiste à savoir si on veut :

  • « Poster par courriel le résultat du formulaire à une liste de destinataires »,
  • « Enregistrer les résultats du formulaire dans la base de données »

Les choix ne sont pas exclusifs.

Poster par courriel le résultat du formulaire à une liste de destinataires.

Une fois coché ce choix une série de champs est proposée, répartis en cinq groupes :

Destinataires du courriel

  • Sujet du courriel
  • Contenu du courriel
  • Destinataires du courriel
  • Expéditeur du courriel
  • Accusé de réception

Sujet du courriel

Il est possible de personnaliser le Sujet du courriel avec les @raccourcis@ (sinon il sera construit automatiquement) et de choisir de n’y mettre que des Valeurs brutes si le mail doit être traité par un robot et non un humain.

Contenu du courriel

Possibilités de personnalisation :
-  *Champs à exclure du contenu du message ;
-  * Faut-il « Joindre les fichiers dans le courriel »,
-  * « Masquer les liens d’administration dans le courriel »
-  * « Envoyer l’adresse IP de l’envoyeur aux destinataires »
-  * Masquer les champs vide

Concernant les Champs à exclure du contenu du message, comme indiqué dans le placeholder les champs doivent être exclus sous la forme « input_3,selection_2 »
Depuis la révision 110166 il est possible d’exclure les champs sous la forme @raccourcis@

** Destinataires du courriel

Trois choix possibles : Destinataires, Destinataires supplémentaires, Destinataires en fonction d’un champ.
Le premier choix Destinataires ne pourra comprendre que des champs de type « hidden » ou « destinataires ». Le type de champ Destinataires permet de choisir parmi une liste de rédacteurs du site quels seront ceux qui sont informés du remplissage du formulaire.

Le champ Destinataires supplémentaires permet, comme son nom l’indique, d’envoyer un formulaire à un ou plusieurs destinataires en fournissant des adresses directement dans le champ.

Enfin, Destinataires en fonction d’un champ permet d’envoyer le formulaire à des interlocuteurs différents en fonction des choix. Attention toutefois pour que ça fonctionne bien il faut que soit proposé un mail pour chaque choix, ou, s’il y a des choix non définis ici, qu’un destinataire soit défini par ailleurs.

Expéditeur du courriel

Trois champs possibles Courriel de l’envoyeur, faut-il « Insérer le courriel de l’envoyeur dans le champ « From » » et le Nom de l’envoyeur
Courriel de l’envoyeur : ne pas oublier de renseigner ce champ si on utilise le message de confirmation ou accusé de réception

Accusé de réception

L’accusé de réception ne peut être demandé que si le courriel de l’envoyeur est préalablement renseigné. Alors il devient possible de cocher Envoyer aussi un courriel à l’adresse de l’envoyeur avec un message de confirmation.
Il est ensuite possible de définir le Sujet de l’accusé de réception, de préciser un Courriel de l’accusé de réception et de forcer un Nom de l’expéditeur de l’accusé de réception

Enregistrer les résultats du formulaire dans la base de données

Une fois cette case cochée un certain nombre de champs s’affichent qui permettent de :

  • Définir, à partir des champs, un label pour les réponses dans la liste des réponses
  • Multiple : Une même personne peut répondre plusieurs fois.
  • Modifiable : Les visiteurs peuvent modifier leurs réponses après coup.
  • Résultats anonymes (ne pas garder de traces de l’identifiant des personnes ayant répondu).
  • Enregistrer les IPs (masquées après un délai de garde)

Il est également possible de décider si la modération de l’enregistrement a lieu à priori ou à posteriori.

Si on utilise l’analyse proposée par formidable définir si on souhaite exclure des champs de cette analyse.

Il est possible de demander d’effacer de la table les résultats les plus anciens. Une fois la case cochée il sera possible de définir le nombre de jours pendant lesquels on garde l’enregistrement avant d’effacer.

On peut enfin prévoir de rafraîchir le cache à chaque enregistrement de réponses. Cela est utile si les réponses sont publiques, ou bien si on veut afficher publiquement le nombre de réponses.

Dernière modification de cette page le 17 mars 2019

Discussion

9 discussions

  • 4

    Bonjour,

    Dans un formulaire, sur l’écran des traitements, dans la zone « Expéditeur du courriel », liste déroulante « Courriel de l’envoyeur », je n’ai pas le champ email existant dans mon formulaire ce qui fait que je ne peux pas choisir d’envoyeur et consécutivement pas d’accusé de réception.

    Dans ce menu déroulant c’est un peu bizarre, j’ai 2 ligne blanches (non consécutives), et 2 lignes dont les titres correspondent aux 2 fieldset que j’ai dans le formulaire et c’est tout, aucun autre champ possible, c’est comme si cela ne ramenait pas la liste des champs.

    En dehors de ça le formulaire (un peu compliqué) fonctionne, ça stocke bien en base, ça envoie bien l’email à une adresse désignée, mais jute impossible de faire cet accusé de réception ... c’est tout à jour 3.2.4, plugins à jour ...

    Un second formulaire dans le même site a le même souci sauf que là j’ai bien le bon nombre de lignes d’options blanches et que avec un « examiner element » j’arrive à retrouver le champ email (value de l’option).

    Une idée de ce qui pourrait causer ce phénomène ?

    Merci par avance !
    Pierre

    • Non, aiucune idée comme cela. Il faudrait m’envoyer par mail (monprenom@monprenom.net) un export yaml du formulaire qui pose problème...

    • Bonjour,
      Ok je vous envoie ça ! J’ai continué à réfléchir, une piste que je subodore (par comparaison avec les autres formulaires nombreux que j’ai cité), ce site utilise le sélecteur d’événements qui vient avec Agenda ...
      Pierre.

    • Ok, j’ai pu regarder rapidement.

      VOus avieu deux groupes de champs
      -  « Toutes les formations Zedd »
      -  « Merci de remplir le formulaire (champs * obligatoires) »

      Mais le second était une sous entrée du premier, au lieu de le suivre. Ce n’est sans doute pas ce que vous souhaitez, ce n’est pas bon en terme d’accessibilité d’avoir des fieldsest imbriqués, et pour implémenter cela au niveau du selecteur de champ, ce serait galère pour un interet limité.

      Donc je vous propose de corriger cela. Editer le second groupe de champ, et modifier « position du champ ».

      Par ailleurs, votre selecteur d’evenement devrait avoir un label (en terme d’accessibilité). Si vous n’avez qu’un champ dans un groupe de champ, alors autant supprimer ce groupe de champs.

    • Bonjour,

      Ok je comprends (ça n’est pas moi qui ait créé le formulaire), donc la mauvaise imbrication des fieldset empêchait la création d’une liste cohérente de champs dans l’écran des traitements, ok assez logique. C’est vrai que les manips sur ces fieldset en glissé-déposé sont souvent un peu difficiles, on ne pense pas assez à utiliser « Position du champ ».

      Pour le fieldset qui contient le sélecteur d’évènement, oui il n’y a qu’un seul champ à la construction du formulaire (le sélecteur d’évènement) par contre cela génère un paquet d’input checkbox sur le site public donc je préfère que ça soit regroupé dans un fieldset pour des raisons de css (en flex), ça me permet de présenter le formulaire en 2 colonnes.
      Oui pour le label, on se contente du label du fieldset et on a ensuite des labels pour chaque input checkbox.

      En tous cas grand merci pour avoir pris le temps de regarder, c’est cool !

      Pierre.

    Répondre à ce message

  • 3

    Limiter le nombre de réponses totales
    Bonjour et tout d’abord grand merci pour ce formidable outil.
    Je me posais la question de savoir s’il y avait moyen de fixer un nombre maximal de réponses pour un formulaire donné ? L’idée serait d’utiliser formidable pour simuler un système de réservation à une réunion où il y aurait par exemple une jauge d’accès de 20 places...

    • Et que ce passe-t-il si le total est atteint ?

      parce qu’il y a plusieurs manière de faire, Une solution simple serairt de mettre dans un modèle l’appel au formulaire, en affichant le formulaire en fonction du nombre total de réponse deja enregistré,

    • Merci Maïeul de ta réponse si rapide.
      J’avais en tête ce contournement que je vais mettre en oeuvre.
      En fait, ma question est venue en regardant ce qui existait comme solution SPIP et hors-SPIP. J’ai été regarder du côté de framaforms qui propose des formulaires vraiment très semblables à ceux de formidable et qui comportent un panneau de configuration proposant une limitation de soumissions. Du coup, comme je trouve les deux outils très voisins, je me demandais s’il y avait qqpart dans formidable un tiroir caché (hi, hi, hi) qui m’aurait échappé.
      Merci encore

    • le problème c’est que le traitement « enregistré » est une possible parmi d’autres. Donc je serais réticent à mettre cela directement dans formidable.

      Pour les cas où tu veux le même formulaire pour plusieurs occurences d’un même evenemnets, tu peux utiliser https://contrib.spip.net/Choix-d-evenements + https://contrib.spip.net/Formulaire-de-participation-a-un-evenement-avec

    Répondre à ce message

  • 1
    Deni Forest

    J’ai créé un formulaire avec plusieurs cases à cocher. Est-il possible, avec FORMIDABLE que les mots cochés soient envoyés au groupe de mots-clés X et que ceux-ci deviennent des mots-clés ?
    Si OUI comment ?

    • Bonjour,

      formidable est conçu principalement pour des formulaires de contact. Cette fonctionnalité n’existe pas dans formidable. Il serait éventuellement possible de dévelloper un plugin pour faire cela, mais il faut des connaissances PHP.

    Répondre à ce message

  • 5

    Bonjour à tous,

    Est-il possible de faire en sorte que si un champ de mon formulaire n’est pas complété celui-ci n’apparait pas dans le mail que je reçois ? Pour l’instant j’ai juste « sans réponse » pour chaque champ non complété, c’est pas très grave mais ce serait plus lisible :)

    Merci d’avance si vous pouvez m’aider

    • je crois que j’ai commité il y a pas longtemps une modif qui fait cela nativement (donc pas une config)

    • Merci pour votre réponse. je pense avoir compris mais je ne suis malheureusement pas un habitué du langage développeur :/ (j’ai déjà entendu le terme « commité » quelque part :) )
      Si j’ai bien compris il devrait le faire automatiquement, j’ai fait une maj du plugin Formidable mais rien ne change, je reçois toujours « sans réponse » pour chaque champs non complétés.

    • Oui, désolé pour le patois.

      Commiter = apporter une modification au code d’un projet. Dans le cadre des plugins SPIP, en général un commit provoque une nouvelle version du plugin.

      Mais du coup mon souvenir n’était pas forcément exact. Je regarde ce qu’il en est et vous tiens au courant.

    • voilà
      En fait ce que j’avais apporté comme modification, c’était pour ne pas avoir « sans réponse » pour les @champ_xx@, donc pas pour le corps de mail.

      La nouvelle version 3.33.0 apporte une nouvelle option pour masquer aussi dans le corps du mail (personnellement : j’aime bien savoir que la personne n’a pas répondu, alors qu’elle avait la possibilité de répondr,e notamment parce que je joue beaucoup sur les afficher_si)

    • Super, merci à vous pour cette adaptation.

      Je peux comprendre que certaines personnes souhaitent savoir qu’un champ n’a pas été complété. Dans mon cas, le formulaire en question est un bon de commande, chaque champ renseigne la quantité de chaque objet renseigné dans le label. Donc si la personne ne commande pas un des objets je n’ai pas besoin que l’objet soit renseigné dans le mail.

      Bonne journée et encore merci pour votre apport pour mon formulaire :)

    Répondre à ce message

  • 2

    Bonjour,

    je m’arrache les cheveux pour récupérer dans mon formulaire (recap_form) une variable javascript (textetotal) issue d’un calcul réalisé dans le même article à partir de données envoyées par une page appelante ; je n’arrive pas à l’assigner à un champ caché (hidden1). Par contre je peux la faire apparaître dans un champ « explication ». Qui n’est pas un input, non ?

    Comment puis je récupérer cette variable ?
    J’ai créé un squelette spécifique pour cet article avec le formulaire, et j’ai appelé le formulaire dedans, avec #FORMULAIRE_FORMIDABLErecap_form, #ARRAYhidden1,

    <script language="javascript">document.write(textetotal);</script>

    Evidemment rien ne s’affiche après le titre du champ caché, dans le mail.

    Merci de votre aide,

    Zab

    • peut être plus clair comme ça :

      #FORMULAIRE_FORMIDABLE{recap_form, #ARRAY{@hidden1@,<script language="javascript">document.write(textetotal);</script>}}

    • hum, y’a pas de fonction « edit » ?

      je voulais écrire :

      #FORMULAIRE_FORMIDABLE{recap_form, #ARRAY{hidden1,<script language="javascript">document.write(textetotal);</script>}}

    Répondre à ce message

  • 1

    Bonjour,
    est-il possible d’avoir deux traitements différents : email à chaque enregistrement et enregistrement dans une base de donnée ?
    Merci

    • oui les traitements sont cumulatifs. Il suffit de cocher et configurer chacun d’entre eux.

    Répondre à ce message

  • 1

    Bonjour,

    Je tente de chainer 2 formulaires proprement ... J’ai simplement besoin de récupérer dans une seconde page par ex. l’identifiant du premier formulaire, à partir de là je peux faire une boucle pour récupérer les données dont j’aurais besoin.

    Je vois 2 pistes pour l’instant :

    -  réussir à passer une variable d’environnement lors de la validation du premier formulaire à la seconde page, je vais tester voir si un #ENV avec le nom d’un des champs du premier formulaire retourne quelque chose. Malheureusement je ne pense pas qu’il soit possible de récupérer l’id de la réponse qui doit être créé après la validation

    -  réussir à ajouter une valeur au cookie de session avec un #SESSION_SET ou un bout de PHP (mais bon j’ai dit proprement ... hum) quelque part ...

    Pensez vous qu’une de ces 2 pistes soit possible ?

    Pierre

    • tu pourrais configurer le premier formulaire pour qu’après il rediriger vers la page du second, en passant comme paramètre d’url l’identifiant du premier.

      En soit on pourrait mettre 2 raccourics dans cette config permettant de mettre l’id réponse et l’id de formulaire.... faut juste prendre le temps de le coder.

    Répondre à ce message

  • 6

    Bonjour,
    j’ai exactement le même besoin.
    J’ai surchargé le fichier notifications/formulaire_accuse.html en ajoutant dans le squelette une ligne contenant : "réponse n°#ENV{id_formulaires_reponse}, mais cela ne fonctionne pas.
    Quelle est la bonne façon de procéder ?
    Merci beaucoup d’avance,
    Manu

    • Quel besoin ?

      formulaire_accuse.html est pour l’accusé de réception envoyé à la personne qui poste le formulaire.

      formulaire_email.html est pour l’email envoyé aux administrateurs du site.

      C’est de la que bient le eproblème peut être ?

    • ton mail sur la liste m’a permis de mieux comprendre ton problème : c’est bien dans l’accusé de réception que tu veux l’id de réponse,
      La version 3.17.0 fournit désormais l’id en argument du squelette formulaire_accuse.html.

    • Merci de ta réponse.
      J’ai besoin que ces deux mails (l’accusé de réception ainsi que le mail envoyé au site) comportent cette information.
      Mon souci est de savoir comment récupérer la valeur de id_formulaires_reponse pour l’intégrer dans chacun de ces mails.
      Pour voir ce qui existait dans l’environnement, j’ai mis [<pre> (#ENV**|unserialize|print_r{1})</pre>]dans formulaire_accuse.html. Pas de trace de id_formulaires_reponse dans ce qui est retourné du coup je suis un peu perdu.

    • Ah, nos deux mails se sont croisés !
      Je viens de mettre à jour formidable et du tout, c’est OK pour l’accusé de réception : on récupère bien l’id de la réponse. Parfait !
      Du coup, est-ce qu’il ne serait pas intéressant d’avoir cette même fonctionnalité dans formulaire_email ? On aurait ainsi quelque chose de cohérent : l’expéditeur et l’administrateur du site auraient une information commune permettant de faciliter l’exploitation des réponses ? Qu’en penses-tu ?

    • c’est deja dans formulaire_email

    • Ah, oui, effectivement (et désolé du dérangement sur ce coup-là)
      Merci infiniment, et ça se confirme à chaque fois, SPIP, c’est chouette !

    Répondre à ce message

  • 5

    Bonjour, quelqu’un peux m’expliquer comment afficher id_formulaire_reponse dans le mail de confirmation formidable ? Je voudrais bien avoir un id de chaque email recu.
    Merci

    • Tu peux surcharger le squelettes de notification en copiant le squelettes notifications/formulaire_email.html dans ton dossier de squeklettes (en reprenant la hierarchie).

      Ensuites tu peux récuperer via #ENV{id_formulaires_reponse}

    • Merci beaucoup Maïeul, ça marche à merveille !!!

    • Comment créer un lien de réponse à l’expediteur du formulaire dans le mail réçu ? j’ai essayé avec ce code :
      mailto:#ENVemail_formulaires_reponse mais ça ne marche pas.

    • La version 3.15.0, juste commité sur la zone, permet d’utiliser
      #ENV{courriel_envoyeur} et #ENV{nom_envoyeur}

    • Merci beaucoup

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

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