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.

updated on 17 March 2019

Discussion

11 discussions

  • 9

    Bonjour
    J’ai crée un formulaire en français et un formulaire en anglais, à l’identique
    J’ai ensuite insérer “formulaire|formidable|id=formcontact1” et “formulaire|formidable|id=formcontact2>”dans 2 articles
    Sans doute pas le plus rapide mais je débute....
    j’ai crée un squelette “contact” et une boucle sur ces 2 articles avec lang
    Cela fonctionne
    Par contre lorsque je fais un test le formulaire en français fonctionne mais celui en anglais renvoie l’erreur “There are errors in the fields below, please check your inputs”
    J’ai tout vérifier et ils sont identiques dans les champs et dans les traitements
    Je suis un peu perdue

    Merci de votre aide

    • tu a les 2 formulaires qui s’affichent en même temps ? cela peut être la cause du problème. Est-ce que deja lorsque tu teste les formulaires, seuls, depuis l’espace privé ca marche?

    • Je me suis mal exprimée je crois
      Dans la version française j’ai bien le formulaire français qui fonctionne et dans la version anglaise le formulaire en anglais s’affiche bien mais renvoie l’erreur après validation

    • certes, mais est-ce que les articles sont affichés ou pas en même temps?

      Quid si tu essaie de soumettre le formulaire directement depuis l’espace privé.

    • non ils ne s’affichent pas en même temps
      Cela dépend de la langue choisie sur le site
      Ma boucle est

      <BOUCLE_articles(ARTICLES){id_article IN 213,214} {lang}>
      #TEXTE
      </BOUCLE_articles>

      et j’ai créé un formulaire par article avec un nom différent
      C’est peut-être plus parlant
      Je n’ai pas su intégrer directement dans mon squelette le choix des langues avec

    • bon, bah vous avez répondu à une de mes questions. La seconde est : est-ce que le formulaire marche directement dans l’espace privé?

    • je viens de tester et non il ne fonctionne pas non plus

    • donc le problème se situe bien au niveau du formulaire. pouvez vous me l’envoyer en .yaml ?

    • Oui bien sur

      id_formulaire: ’3’
      identifiant: formcontact2
      titre: ’Formulaire de contact’
      descriptif: ’’
      css: ’’
      message_retour: “Thank you, your message has been sent.\r\nDross engineering’s team”
      saisies:
      -
      options: label: Society, type: text, size: ’40’, autocomplete: defaut, nom: input_1
      identifiant: ’@5d4d616c6456c’
      verifier:
      saisie: input
      -
      options: label: ’Last Name’, type: text, size: ’40’, autocomplete: defaut, nom: input_6
      identifiant: ’@5d5fcbba5f854’
      verifier:
      saisie: input
      -
      options: label: ’First Name’, type: text, size: ’40’, autocomplete: defaut, nom: input_5
      identifiant: ’@5d5fcbb3b8a05’
      verifier:
      saisie: input
      -
      options: label: Address, type: text, size: ’40’, autocomplete: defaut, nom: input_4
      identifiant: ’@5d5fcbb215b01’
      verifier:
      saisie: input
      -
      options: label: City, type: text, size: ’40’, autocomplete: defaut, nom: input_7
      identifiant: ’@5d5fcbc881bf4’
      verifier:
      saisie: input
      -
      options: label: Country, type: text, size: ’40’, autocomplete: defaut, nom: input_3
      identifiant: ’@5d5fcbaa26cdc’
      verifier:
      saisie: input
      -
      options: label: ’Phone number’, type: text, size: ’40’, autocomplete: defaut, nom: input_2
      identifiant: ’@5d5fcb9cb1ff0’
      verifier:
      saisie: input
      -
      options: label: ’email address’, type: text, size: ’40’, autocomplete: defaut, nom: email_1
      identifiant: ’@5d5fcbd1e0743’
      verifier:
      saisie: email
      -
      options: label: Subject, type: text, size: ’40’, autocomplete: defaut, nom: input_8
      identifiant: ’@5d5fcbd50f293’
      verifier:
      saisie: input
      -
      options: label: ’Text of your message’, rows: ’5’, cols: ’40’, nom: textarea_1
      identifiant: ’@5d5fcbdcdb1ee’
      verifier:
      saisie: textarea
      -
      options: datas: “By checking this box, I agree that the information entered will be stored and used in the context of the business relationship that may result.\r\n”, choix_alternatif_label: ’Autre choix’, obligatoire: on, nom: checkbox_1
      identifiant: ’@5d5fd1d6dd3f5’
      verifier:
      saisie: checkbox
      -
      options: texte: ’By submitting this form, I agree that the data entered will be used by Dross Engineering to respond to my request for information on Dross Engineering products and / or services.’, nom: explication_1
      identifiant: ’@5d5fd33d79be1’
      verifier:
      saisie: explication
      traitements:
      email:
      champ_sujet: ’’
      champ_sujet_valeurs_brutes: ’’
      exclure_champs_email: ’’
      pj: ’’
      masquer_liens: ’’
      activer_ip: ’’
      masquer_champs_vides: ’’
      destinataires_plus: bcollet@dross-engineering.com
      destinataires_selon_champ: ’’
      champ_courriel_destinataire_form: ’’
      champ_courriel: ’’
      activer_vrai_envoyeur: on
      champ_nom: ’@FORMULAIRE@’
      activer_accuse: ’’
      sujet_accuse: ’’
      texte_accuse: ’’
      masquer_valeurs_accuse: ’’
      courriel_envoyeur_accuse: ’’
      nom_envoyeur_accuse: ’’
      public: non
      apres: rien
      url_redirect: ’’
      statut: publie
      date_creation: ’2019-08-14 21:36:28’
      maj: ’2019-09-02 10:46:51’
      composition: ’’
      composition_lock: ’0’

    • Bonjour
      J’ai testé le formulaire en effaçant un par un les champs
      et il a fonctionné lorsque j’ai effacé le champ case à cocher et explication
      J’ai ensuite recréé ces champs et il fonctionne
      Je ne comprends bien pourquoi mais il fonctionne c’est le principal
      Merci pour vos réponses
      Bonne journée

    Reply to this message

  • 2

    Bonjour,

    J’ai fait un formulaire dans lequel j’ai un champ “destinataire” de type adresse email.
    Le raccourci est @email_1@
    Je voudais que l’email saisi dans le champ “destinataire” soit destinataire du mail de traitement.

    Dans la partie “Configurer les traitements”, au niveau de “Destinataire”, je ne comprends pas où je peux insérer le raccourci @email_1@

    Merci

    • Ce n’est volontairement pas possible. En effet, cela reviendrait à permettre à n’importe qui d’envoyer des emails à n’importe qui depuis votre site, et donc à en faire un vecteur de spam.

      En revanche, ce qu’il est possible de faire c’est de prévoir un destinataire que vous connaissez deja, envoyé par l’email @email_1@, et d’envoyer un accusé de réception à l’expediteur de ce mail.

    • Bonjour,
      Merci beaucoup pour votre réponse

    Reply to this message

  • 4
    Pierrot

    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...

    • Pierrot

      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.

    • Pierrot

      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.

    Reply to this 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

    Reply to this 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.

    Reply to this 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 :)

    Reply to this 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>}}

    Reply to this 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.

    Reply to this 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.

    Reply to this 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 !

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom