SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 227 visiteurs en ce moment

Accueil > Interactivité, échanges > Formulaires > Formidable > Formidable, le générateur de formulaires

Formidable, le générateur de formulaires

23 janvier 2012 – par RastaPopoulos – 2149 commentaires

164 votes

Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs.

Introduction

L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins avaient déjà été développés précédemment pour remplir cette fonction :

  • Forms &Tables, qui n’a pas été complètement porté pour SPIP 2.
  • et spip-formulaire créé par artego mais qui n’est 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éveloppeurs.

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

Installation

Le plugin nécessite les plugins suivants :

Il faut installer le plugin jQuery UI pour pouvoir déplacer les champs à la souris pendant la création d’un formulaire.

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 depuis un squelette

À noter que dans un squelette, 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.

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

Champs oui-non et case unique

Pour rendre obligatoire la réponse « oui » à un champ de type oui-non ou 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 :

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

Voir aussi sur le wiki

-  Complément de doc et exemples sur les boucles et balises de formidable
-  todoFormidable
-  Formidable, présentation aux Grottes (2010)

Voir en ligne : http://plugins.spip.net/formidable

Dernière modification de cette page le 21 juillet 2016

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 28 avril à 17:17, par ngweb En réponse à : Formidable, le générateur de formulaires

    Bonjour,
    y a t-il une doc de dispo pour rajouter des traitements à formidable ? Je voudrais alimenter une table personnalisée avec les résultats d’un formulaire.
    Merci :)

    • Le 28 avril à 17:25, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      Non il n’y a pas de doc, mais ce n’est pas vraiment fait pour ça. Par eilleurs, il y a déjà un plugin qui fait ça : FormiTable :
      https://zone.spip.org/trac/spip-zone/browser/_plugins_/formitable
      (jamais utilisé et il faut sûrement le relire et le mettre à jour pour 3.X)

      Sinon il faut s’inspirer des traitements existants, un fichier PHP avec le traitement, et un fichier YAML du même nom qui le décrit en lui donnant un titre et en décrivant optionnellement des champs de configuration pour ce traitement (ce qui génère l’interface).

    Répondre à ce message

  • Le 20 avril à 11:00, par ploufplouf En réponse à : Formidable, le générateur de formulaires

    Bonjour,

    Je dois faire des formulaires et injecter les réponses dans une autre appli. Le problème que je rencontre c’est que je ne peux pas nommer ou plutôt indexer les champs (input, textarea ou autre) comme je le souhaite pour obtenir une cohérence de mes exports.

    Ex. :
    Formulaire 1 :
    Nom : Input_1
    Prénom : Input_2
    Nom de jeune fille : Input_3

    Formulaire 2 :
    Nom : Input_1
    Prénom : Input_2
    Date de naissance : Input_4

    Le problème c’est que sur le formulaire 2 la date de naissance va prendre automatiquement Input_3 alors que je voudrais un Input_4.

    Il me semble que un post avait déjà été publié sur cette possibilité mais je ne l’ai pas retrouvé.

    Cette possibilité est-elle abandonnée ?

    Merci

    Répondre à ce message

  • Le 20 décembre 2016 à 19:35, par Claude En réponse à : Formidable, le générateur de formulaires

    Bonjour Rastapoloulos,

    J’ai installé ton plugin le week-end dernier (sur Spip 3.0.20), et je te remercie du joli travail que tu nous offres !

    J’interviens en amateur dans une asso humanitaire (Biologie Sans Frontières www.bsf.asso.fr) qui a des fiches de compétence à gérer (plusieurs 100aines), ce qui correspond aux compétences de personnes susceptibles de partir en interventions pour aider au développement de la santé.

    Dans ce contexte, j’aurais aimé à court terme avoir tes réponses sur les sujets ci-après :
    1- as-tu une doc détaillée qui présente toutes les fonctions de paramétrage etc...
    2- qu’est censé faire la modération a posteriori (aucun enregistrement va dans l’onglet « A modérer »
    3- que fait « Modifiable : Les visiteurs peuvent modifier leurs réponses après coup. » ? je ne vois pas de différence avec ou sans cette coche (l’enregistrement est (r)ajouté en base et non modifié).
    4- Comment fait-on pour réafficher le formulaire vide après une utilisation ?

    5- notre besoin est de disposer d’une gestion avec recherche (sur critères de filtrage), modification (un enregistrement) et suppression (dans l’espace privé ou public) : as-tu des exemples de codes, des conseils ou avis à me donner ?

    J’ai vu que tu proposais des services payants ; cela peut m’intéresser.

    NB : j’ai essayé de t’écrire par le formulaire présent à https://contrib.spip.net/RastaPopoulos, mais « erreur technique »

    Merci d’avance
    Claude

    • Le 18 avril à 23:06, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      1) non

      2) à modérer c’est quand on coche qu’on veut modérer à priori justement, les réponses ne sont plus censées être en statut publié

      3) quand on accepte modifiable, il ne faut pas permettre de plusieurs réponses à la fois, et dans ce cas, quand un visiteur revient, il est censé se voir afficher sa réponse déjà d’avant, et il peut la modifier… en tout cas c’était comme ça ya 7 ans… depuis il y a eu des centaines de commits de plein de contributeurices, et je n’ai jamais eu besoin donc jamais retesté

      4) ya une option pour ça dans la config générale du formulaire, sur quoi afficher après

      5) Ce plugin n’est pas du tout prévu pour gérer une fausse table virtuelle pour se faire une base de données perso. On peut arriver à certaines choses en bidouillant, mais ce n’est pas conçu pour ça.

    Répondre à ce message

  • Le 4 avril à 12:55, par 1138 En réponse à : Formidable, le générateur de formulaires

    Bonjour, les spipeur⋅se⋅s !

    Par défaut, les champs Explication ne sont pas envoyés par e-mail. Or, j’aimerais pouvoir activer cette possibilité pour certains de ces champs.

    Y a-t-il un moyen de faire ça ? Ou avez-vous une astuce à me proposer ?

    Merci d’avance. :-)

    Répondre à ce message

  • Le 3 avril à 11:52, par Jacques34 En réponse à : Formidable, le générateur de formulaires

    Bonjour,
    2 problèmes liés à ce plugin :
    a) espace privé, ’voir la réponse’ affiche bien les bons labels mais pas les valeurs ( tous affichent : ’Sans réponse’ alors que le mail que je reçois affiche bien les valeurs, et que la table MySql est bien remplie ) ?
    b) espace privé, ’exporter les réponses’ ( excel ou csv ) m’affiche les réponses dans le navigateur et non en téléchargement ?

    1 problème d’ordre général :
    c) espace public : je suis obligé d’ajouter index.php au bout de mon URL pour afficher la page d’accueil

    Merci de votre aide.
    Jacques

    • Le 4 avril à 12:58, par Maïeul En réponse à : Formidable, le générateur de formulaires

      a) je ne reproduis pas
      b) cela pourrait dépendre du navigateur et / ou du serveur
      c) ca c’est bizarre, mais c’est lié à SPIP en général, pas au plugin. Sand doute pb de config serveur.

    Répondre à ce message

  • Le 31 janvier à 09:55, par G Fontaine En réponse à : Formidable, le générateur de formulaires

    Bonjour,
    Je reviens vers vous car j’ai un souci pour télécharger le fichier csv des réponses du formulaire que j’ai créé.
    Le questionnaire comprend 37 questions dont majoritairement des boutons radio (à cinq choix)
    La table `spip_formulaires_reponses_champs` contient actuellement 96724 lignes correspondant à 2862 réponses
    J’ai essayé de placer un .htaccess à la racine du site avec :
    php_value max_execution_time 900
    php_value memory_limit 1024M
    mais cela ne change rien.
    J’obtiens toujours la page « La connexion a été réinitialisée.
    La connexion avec le serveur a été réinitialisée pendant le chargement de la page. »
    Merci de votre aide

    • Le 27 mars à 00:56, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      J’avoue que je n’ai jamais eu à tester ça avec vraiment plein plein de réponses, donc difficile pour moi de reproduire pour le moment. Mais c’est sûr qu’il y a des améliorations à faire pour gérer ce genre de cas…

    Répondre à ce message

  • Le 1er février à 18:02, par Phil En réponse à : Formidable, le générateur de formulaires

    Bonjour,
    Un grand merci pour votre formidable plugin.
    Toutefois, j’ai une question :
    Comment faire pour insérer du code dans le

    après validation du formulaire ? J’aurais besoin de faire apparaitre un code de suivi Google après une utilisation d’un formulaire coté public ! Merci Phil
    • Le 27 mars à 00:49, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      Aucune idée désolé. Peut-être faudrait-il faire un sous plugin qui s’insère dans le traitement et qui rajoute du JS demandé par Google dans le message de confirmation à la fin…

    Répondre à ce message

  • Le 26 mars à 03:57, par Pierre29 En réponse à : Formidable, le générateur de formulaires

    Le résultat de l’envoi du formulaire m’arrivant de façon un peu décousue par email,
    j’ai tenté de créer un champ en tête de formulaire qui regroupe l’ensemble des données que je récolte dans les autres champs du formulaire.
    Ce champ est de type « Bloc de texte »
    Dans valeur par défaut, j’y ai mis :


    Nom : @input_2@ @input_1@
    Email : @input_3@
    Téléphone : @input_5@
    Code Postal : @input_4@
    Linky déjà installé ? @oui_non_1@
    Situation du compteur électrique : @radio_1@
    Type d’habitat : @radio_2@
    Propriétaire ou Locataire : @radio_3@

    Votre demande :
    @textarea_1@

    Votre point de vue
    @textarea_2@


    Dans utilisation, j’ai :
    Désactiver le champ : Non
    Désactiver mais poster : Oui
    Lecture seule : Non

    L’explication du 2e paramètre « Désactiver mais poster », à savoir « Identique à l’option précédente mais poste quand même la valeur dans un champ caché. »
    m’a laissé croire que le contenu de ce champ allait m’être posté en tête des valeurs du formulaire.
    En fait, je ne le reçois pas.
    Ai-je loupé quelque chose ?
    Est-il possible qu’un champ de type Bloc de texte puisse contenir des données issues elles-même de champs bloc de texte ?
    Est-il possible de reformater l’ensemble des données collectées dans un champ invisible à la saisie qu’on pourrait recevoir par email ?
    Est si oui, est-ce qu’au contraire les champs qui ont été affichées à la saisie du formulaire peuvent ne pas être expédiées au propriétaire du formulaire ?

    Merci de vos lumières

    • Le 26 mars à 12:53, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Salut,

      je ne pense pas que le valeur des champs soient interprétées, et donc que tu puisse obtenir ainsi les résultats que tu souhaite.

      Du reste, je ne comprend pas en quoi les réponses t’arrivent de façon décousues… elles arrivent dans l’ordre des champs dans le formulaire, et c’est, me semble-t-il, le plus pratique. Je ne vois pas en quoi d’ailleurs ton remplissage est différent.

      Si tu veux pas avoir de retour ligne entre le titre de la saisie et son résultat, tu met dans le fichier mes_options.php la ligne suivante :

      define('_SAISIES_AFFICHAGE_COMPACT',true);

    Répondre à ce message

  • Le 21 mars à 23:28, par jlgenet En réponse à : Formidable, le générateur de formulaires

    Bonjour
    J’ai créé un formulaire de satisfaction.
    Lorsque les personnes inscrites sur le site y répondent j’ai une erreur « L’adresse de courriel wxett@abc.fr est déjà utilisée. »
    Can you help me ?
    Merci
    JLuc

    Répondre à ce message

  • Le 17 mars à 01:15, par Pierre29 En réponse à : Formidable, le générateur de formulaires

    Petit souci dans l’affichage des boutons radio du formulaire , le libellé apparaît au-dessous du bouton et non pas à droite.
    Le site tourne avec SPIP 3.1.4 et le squelette Squelette ViaSPIP 3.1
    Où puis-je intervenir pour remettre ça d’aplomb ?
    Merci d’avance pour vos suggestions et aide.
    Pierre

    • Le 17 mars à 11:03, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      Formidable n’a aucune sorte de rapport avec le thème graphique, il ne fait rien du tout. Donc c’est à ton thème graphique de gérer l’affichage des formulaires (venant de Formidable ou pas, peu importe) correctement.

    • Le 18 mars à 01:40, par Pierre29 En réponse à : Formidable, le générateur de formulaires

      Merci pour cette précision.
      Cependant, je suis un peu perdu pour localiser la feuille css responsable de cet affichage et pour savoir quoi mettre pour corriger ce saut de ligne entre le bouton et son libellé.
      Le code source est dans l’image jointe.

      Je n’ai pas réussi à localiser la class « radio » dans les feuilles de style css ni à savoir sur laquelle agir, celle du squelette utilisé, une autre ?

      J’ai beau potasser ceci :
      https://openclassrooms.com/courses/apprenez-a-creer-votre-site-web-avec-html5-et-css3/les-formulaires-8
      je n’ai pas trouvé comment corriger.
      Si quelqu’un peut me mettre sur la piste, je lui en serai reconnaissant.

    • Le 19 mars à 19:59, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      bah c’est surtout les .choix label qu’il faut mettre en display: inline; en gros…

      Mais si tu utilises un squelette/thème partagé, tu devrais surtout dire à son auteur de corriger ce problème d’affichage (si c’est toujours maintenu évidemment…).

    • Le 21 mars à 07:54, par Pierre29 En réponse à : Formidable, le générateur de formulaires

      Merci beaucoup !
      C’est bien mieux ! Problème corrigé : https://stoplinkynonmerci.org/spip.php?page=contact

      J’ai ajouté comme suggéré la ligne :
      .choix label display : inline ; /* Message posté par RastaPopoulos à la suite de l’article « Formidable, le générateur de formulaires »

      dans le fichier /squelettes-dist/form.css

      Il ne me reste plus qu’à trouver comment laisser un peu d’espace en chaque champ pour aérer un peu le formulaire et le rendre un peu lisible :
      https://stoplinkynonmerci.org/spip.php?page=contact

      À ce propos, si vous connaissez des liens vers ce formulaire en service, peut-être pourrais-je y trouver des idées pour améliorer la présentation du mien...

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • CleverMail

    20 janvier 2010 – 635 commentaires

    CleverMail est un plugin permettant d’envoyer des lettres d’informations à des abonnés depuis SPIP. Issu au départ d’un développement libre complètement indépendant de SPIP, il a connu une première version pour SPIP 1.9 avant d’être complètement réécris (...)

  • SPMC : Squelette par mot clé V2.0

    21 septembre 2009 – 48 commentaires

    Ce plugin prend la suite de squelette par mot clef V1.92 qui ne fonctionnait plus sous SPIP 2.0.x. Avec l’accord de Mortimer qui n’a plus le temps de le maintenir, je prend donc la suite. Présentation du plugin « Squelette par mot clé V2.0 » Le (...)

  • Sarka-SPIP 3

    15 septembre 2009 – 211 commentaires

    Si la lignée 3 de Sarka-SPIP a été l’occasion de refaire presque entièrement le code du squelette elle continue à évoluer et à s’améliorer au fil des versions. Nous ne saurions trop conseiller aux nouveaux utilisateurs - et aussi aux anciens - (...)

  • Paiement avec Formidable

    16 février 2015 – 53 commentaires

    Ce plugin « Paiement avec Formidable » permet d’ajouter une étape de paiement à la fin de la saisie d’un formulaire créé par le plugin Formidable. Il le complète et nécessite par ailleurs le plugin bank qui gère l’interface technique avec les prestataires (...)

  • Spip2Spip

    21 février 2008 – 159 commentaires

    Spip2spip permet de synchroniser le contenu de plusieurs sites SPIP entre eux en étendant le principe de la syndication thématique. Les articles d’un SPIP sont récopiés d’un site à l’autre en conservant leur formatage (...)

Ça spipe par là