SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 81 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 – 2417 commentaires

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

Envoi de fichiers

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

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)

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

Dernière modification de cette page le 8 février 2018

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 26 avril à 16:21, par Filipe En réponse à : Formidable, le générateur de formulaires

    Bonjour, j’ai un problème de mis en place de formulaire avec Formidable. Je réussi bel et bien construire le formulaire, lui faire appel sur un article. Mais juste après le remplir et envoyer les réponses, il y a un message d’erreur et les questions apparaissent dans le système toutes sans réponses. Comment faire pour corriger ce problème ?

    Amicalement

    Répondre à ce message

  • Le 23 mars à 14:55, par 1138 En réponse à : Formidable, le générateur de formulaires

    Javascript qui cafouille ?

    Bonjour.

    Je fais un formulaire avec des affichages conditionnels. Voir fichier YAML ci-joint (lien valable 7 jours).
    Il y a un champ avec 8 boutons radio. Selon celui qui est coché, cela devrait afficher un des huit autres champs (appelons-les « champs conditionnels »).

    Cela ne fonctionne pas. Les deux premiers champs conditionnels sont bien cachés mais les six autres sont là. Si je coche un des deux premiers radios, le champ correspondant ne s’affiche pas (sauf si je fais F5 !).

    De plus, certains éléments Javascripts de mon site ne fonctionnent plus sur l’article où je place mon formulaire. Exemple : l’onglet « Relecture temporaire ». De même, dans l’espace privé, quand je modifie l’article ou l’enregistre, l’Ajax ne modifie pas la colonne de gauche. Aucun souci, par contre, si je supprime ces affichages conditionnels.

    J’ai testé sur un autre site, c’est pareil. Avec deux navigateurs (Firefox et Vivaldi), c’est pareil. J’ai changé les clés des radios, pareil.

    Est-ce moi qui ai foiré ma syntaxe ou y a-t-il un problème avec le Javascript généré ?
    Si nécessaire, je peux envoyer une sauvegarde de la page html complète (et allégée) de l’article.

    Merci d’avance.

    1138.

    Spip 3.1.8 ; Formidable 3.7.1 ; Saisies 2.24.2 ; API de vérification 1.7.1 ; Bonux 3.4.6.

    • Le 23 mars à 15:04, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Dans ton troisième champ conditionné (et j’imagine les suivants)
      tu met

      @radio_1@="am0424"

      comme condition d’affichage, alors qu’il faudrait mettre

      @radio_1@=="am0424"
    • Le 23 mars à 15:11, par 1138 En réponse à : Formidable, le générateur de formulaires

      Bien vu ! C’était donc ma syntaxe (uniquement sur le 3e).

      Merci et bon week-end. 👍

    • Le 23 avril à 12:21, par Christophe Noisette En réponse à : Formidable, le générateur de formulaires

      Bonjour
      j’ai un souci identique.
      J’ai une première question (@checkbox_3@) dont l’intitulé est : « vous »
      et les réponses possibles

      choix1|êtes ou avez été abonné au journal
      choix2|avez acheté un journal à l'unité
      choix3|n'avez jamais acheté le journal

      j’ai donc ensuite trois « groupes de champs », un pour chaque réponse... J’aimerais que le groupe de champs 1 soit visible quand on fait le choix1, le groupe de champs 2 ... quand on fiat le choix 2.
      J’ai donc conditionné mes groupes de champs de la sorte

      @checkbox_3@=="êtes ou avez été abonné au journal"
      @checkbox_3@=="avez acheté un journal à l'unité"
      @checkbox_3@=="n'avez jamais acheté le journal"

      , formule que j’ai placé dans l’ongle ’affichage’ de mon groupe de champs à deux endroits : Affichage conditionnel et Affichage conditionnel lors du remplissage

      Mais quand je vais sur la page qui présente le formulaire, https://www.infogm.org/evaluation-du-journal-bimestriel-inf-ogm, je vois d’emblée les trois groupes de champs...

      Je ne vois pas où j’ai pu commettre une erreur, donc j’en appelle à vos lumières.
      Merci
      Christophe

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

      Christophe, tu utilises informatiquement le label humain. La vraie valeur enregistrées, c’est la clé identifiante. Tu mets ce que tu veux, mais toi tu l’as toi même mis dans ton exemple, « choix1 », etc.

    • Le 23 avril à 13:31, par Christophe Noisette En réponse à : Formidable, le générateur de formulaires

      merci j’ai donc modifié ma formule mais les groupes de champs restent tous visibles, indépendamment du remplissage de la condition. J’ai vidé le cache et essayé en navigation privée, en vain.

    • Le 23 avril à 14:56, par Christophe Noisette En réponse à : Formidable, le générateur de formulaires

      Je me réponds : j’avais copié ma formule dans les deux champs : si_affichage et si_affichage_remplissage... donc ca marche
      Par contre, je ne sais pas la valeur qui est renvoyé par un bouton « oui non » car si je mets

      @oui_non1@=="oui" ou "Oui"

      En fait je ne sais pas la valeur renvoyée par un tel champs.

    • Le 23 avril à 14:57, par Christophe Noisette En réponse à : Formidable, le générateur de formulaires

      Je me réponds : j’avais laissé la formule dans les deux champs si_affichage et si_affichage_remplissage
      En virant la formule du deuxième, ça marche.
      Merci

    • Le 23 avril à 15:00, par Maïeul En réponse à : Formidable, le générateur de formulaires

      1. Les dernières versions de formidable/saisies suppriment ce double champs qui posaient problème.
      2. Par défaut, oui/non renvoie :
      -  « on » si oui
      -  «  » si non

      Mais tu peux configurer cela. En fait, ce n’est pas vraiment une saisie conseillé, car non accessible. Il vaut mieux avoir des saisies explicites « Oui j’accepte telle condition » « non je refuse telle condition »

    • Le 23 avril à 15:05, par Christophe Noisette En réponse à : Formidable, le générateur de formulaires

      Je me réponds encore
      la valeur est « on » sans majuscule... pour oui.. Désolé d’avoir encombré le forum.

    Répondre à ce message

  • Le 6 décembre 2017 à 15:58, par Vero En réponse à : Formidable, le générateur de formulaires

    Bonjour et merci pour ce formidable plugin !

    Je souhaite associer des formulaires à certains objets. Le problème un peu bloquant que je rencontre est que la liaison est supprimée dès qu’on modifie l’objet ?

    -  > formidable_post_edition($flux) dans formidable_pipelines.php

    On peut apporter une modification à un objet sans souhaiter supprimer les liaisons ?
    (exemple avec les mots-clés)

    Merci d’avance pour votre retour

    • Le 6 décembre 2017 à 16:01, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Je n’ai jamais rencontré ce problème.

    • Le 22 décembre 2017 à 11:41, par Véronique CUOMO En réponse à : Formidable, le générateur de formulaires

      Bonjour Maïeul,

      Tu veux dire par là que lorsque tu associes un formulaire à un objet, la liaison n’est pas supprimée si tu modifies l’objet ?

    • Le 22 décembre 2017 à 14:43, par Maïeul En réponse à : Formidable, le générateur de formulaires

      exactement (autrement dit : je n’ai pas rencontré le problème que tu décris)

    • Le 13 avril à 16:26, par Véronique CUOMO En réponse à : Formidable, le générateur de formulaires

      Bonjour,

      Je reviens à la charge concernant le problème évoqué : quel que soit l’objet sur lequel je relie un formulaire, la liaison est supprimée dès que je modifie l’objet.

      Si je commente la fonction formidable_post_edition() du fichier formidable_pipelines.php, le problème ne se produit plus.

      A quoi sert ce pipeline ?

      Je suis vraiment très ennuyée par ce problème, merci pour votre aide

    • Le 17 avril à 10:56, par Maïeul En réponse à : Formidable, le générateur de formulaires

      C’est compliqué puisque je ne reproduis pas le problème. Il faudrait que tu puisse m’envoyer en privé une copie de la base + des plugins installé ainsi que les version PHP/mysql utilisés pour que je puisse essayer de debuguer.

    Répondre à ce message

  • Le 10 avril à 14:01, par jeanmarie En réponse à : Formidable, le générateur de formulaires

    Salut,

    est-ce quelqu’un à déjà été confronté à des disparitions de champs ?

    Je rencontre ce bug mais je n’arrive pas à bien le cerner : je crée un nouveau formulaire dans lequel j’ajoute un champs bloc de texte par ex. Si je clique sur le bouton Configurer de ce bloc, il disparait (= il est supprimé du formulaire).

    Le truc, c’est que ça ne le fait pas à chaque fois et je n’arrive pas bien à voir dans quelles conditions.

    La config : SPIP 3.1 et Formidable et à jour.

    Répondre à ce message

  • Le 10 avril à 15:14, par Rava En réponse à : Formidable, le générateur de formulaires

    Bonjour, depuis ce matin, j’ai ce message sur la page d’administration du formulaire
    ainsi que sur la page publiée. j’ai vidé le cache etc ... et

    Warning : in_array() expects parameter 2 to be array, null given in /homepages/4/d316519483/htdocs/tmp/cache/skel/html_1c4991a39b8d3f9182a70667674d7e32.php on line 78

    Merci de votre réponse

    Version SPIP 3.2.1 [23954]

    • Le 10 avril à 15:32, par Maïeul En réponse à : Formidable, le générateur de formulaires

      La version 2.25.0 du plugins saisies posait ce problème.

      La version 2.25.1 qui vient juste d’être envoyé sur la zone le corrige. Il sera disponible en zip vers 16h15, et en mise à jour automatique dans l’espace privé vers 18h15.

      Cela étant quand tu as des choses qui arrive comme cela du jour au lendemain, il est bon d’indiquer les modifications que tu avais fait peut avant. En l’occurence j’imagine une mise à jour de plugin.

    • Le 10 avril à 15:52, par Rava En réponse à : Formidable, le générateur de formulaires

      Je dirais qu’une info aurait été aussi bien sur les maj des plugins utilisés et des fois en incompatibilité « d’humeur » ! Oui en effet j’ai fait toutes les maj ce matin ... En tout cas merci pour ta réponse rapide qui servira à d’autres surement !!

    • Le 10 avril à 16:23, par Rava En réponse à : Formidable, le générateur de formulaires

      Passage en >> Saisies pour formulaires 2.25.1 - stable = OK nickel merci Maïeul !

    Répondre à ce message

  • Le 9 avril à 09:55, par bob En réponse à : Formidable, le générateur de formulaires

    Bonjour, existe-t-il un moyen d’ajouter un captcha à formidable ? Si oui, comment procéder ? Cela serait utile pour lutter contre le spam, même si certains trouvent la solution trop « dure ». Merci à vous.

    Répondre à ce message

  • Le 7 avril à 09:14, par Fennec72 En réponse à : Formidable, le générateur de formulaires

    Bonjour,

    Comment remplacer « (obligatoire) » par une « * » dans le label des champs obligatoires ?

    Merci d’avance,

    Cordialement,

    Hervé

    Répondre à ce message

  • Le 22 mars à 16:26, par DD En réponse à : Formidable, le générateur de formulaires

    Question bête : sur la pagre d’édition d’un article ?exec=article&id_article=1 je vois :
    « Il n’y a pour l’instant aucun formulaire. »
    Je clique sur « Ajouter un formulaire »
    J’en choisi un et je clique sur « ajouter ce formulaire »

    Et après.. il ne se passe rien.

    Lorsque je vais sur la page ?exec=article_edit&id_article=1 il y a bien à gauche
    « Formulaire utilisé : Liste des livres » avec un lien vers le formulaire.

    Est- qu’il est supposé ajouter ce formulaire via un modèle dans le texte de l’article ? Est-ce qu’il faut ajouter un plugin pour l’insertion de formulaires ?
    Est-ce qu’il faut modifier le squelette ?

    Merci
    dd

    Répondre à ce message

  • Le 3 avril à 07:49, par bersyl91 En réponse à : Formidable, le générateur de formulaires

    Bonjour,

    J’utilise Formidable depuis un moment et j’ai modifié récemment mon formulaire.

    J’ai maintenant 6 messages d’erreur qui apparaissent :

    Warning : Illegal offset type in isset or empty in /homepages/28/d389023540/htdocs/CB91/plugins/auto/formidable/v3.6.2/traiter/email.php on line 124

    Warning : Illegal offset type in isset or empty in /homepages/28/d389023540/htdocs/CB91/plugins/auto/formidable/v3.6.2/traiter/email.php on line 124

    Warning : Illegal offset type in isset or empty in /homepages/28/d389023540/htdocs/CB91/plugins/auto/formidable/v3.6.2/traiter/email.php on line 124

    Warning : Illegal offset type in isset or empty in /homepages/28/d389023540/htdocs/CB91/plugins/auto/formidable/v3.6.2/traiter/email.php on line 124

    Warning : Illegal offset type in isset or empty in /homepages/28/d389023540/htdocs/CB91/plugins/auto/formidable/v3.6.2/traiter/email.php on line 124

    Warning : Illegal offset type in isset or empty in /homepages/28/d389023540/htdocs/CB91/plugins/auto/formidable/v3.6.2/traiter/email.php on line 124

    Warning : Cannot modify header information - headers already sent by (output started at /homepages/28/d389023540/htdocs/CB91/plugins/auto/formidable/v3.6.2/traiter/email.php:126) in /homepages/28/d389023540/htdocs/CB91/ecrire/public/evaluer_page.php(51) : eval()’d code on line 15

    J’ai beaucoup de mal à comprendre le code. Il s’agit du bloc test :

    // Si la saisie est une liste de choix avec des clés et labels humains, on cherche le label humain
    if (
    isset($saisies_par_nom[$champ][’options’][’datas’])
    and $labels_data = saisies_aplatir_tableau(saisies_chaine2tableau($saisies_par_nom[$champ][’options’][’datas’]))
    and isset($labels_data[$valeurs[$champ]])
    )
    $valeurs_libellees[$champ] = $labels_data[$valeurs[$champ]] ;

    La ligne 124 est « and isset($labels_data[$valeurs[$champ]]) »

    Mais c’est quoi « une liste de choix avec des clés et labels humains » ?

    Un grand merci pour ce greffon indispensable !

    Bien cordialement,

    Répondre à ce message

  • Le 21 mars à 15:43, par JLuc En réponse à : Formidable, le générateur de formulaires

    Avec SPIP2.1, Formidable n’est pas compatible avec le plugin Bandeau (qui surcharge prive/javascript/gadget.js). Et même en enlevant Bandeau, je ne suis pas parvenu à le faire marcher.

    Répondre à ce message

Répondre à cet article

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

  • FancyBox

    25 mars 2009 – 416 commentaires

    Adaptation du script FancyBox pour jQuery en plugin SPIP. Liste des fonctionnalités reprise depuis le site original : ajoute un joli effet d’ombre portée sous la fenêtre possibilité de grouper les images pour naviguer dans les séries d’éléments (...)

  • Pub Banner : gestionnaire de bannières publicitaires

    28 juin 2011 – 135 commentaires

    Le plugin « PUB BANNER » est un gestionnaire complet de bannières publicitaires pour des squelettes SPIP. Il prend en charge tous les types de bannières et permet de leur attribuer des publicités (locales ou distantes, images ou Flash). Chaque (...)

  • Indexer : Installation et Configuration

    6 octobre 2014 – 42 commentaires

    Introduction Pour comprendre l’intérêt du plugin, nous invitons à lire l’article suivant Indexer : Introduction. Le fonctionnement de la boucle SPHINX est expliqué dans cet article : Indexer : La boucle SPHINX. La suite de l’article aborde uniquement (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2417 commentaires

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

  • Plugin SEO

    6 août 2009 – 231 commentaires

    SEO est un plugin qui ajoute la possibilité d’insérer manuellement où vous le souhaitez ou de manière automatique dans la partie de votre site web : meta tags, URL canonique, Google webmaster tools Meta Code et Google Analytics javascript. Il est (...)