SPIP-Contrib

SPIP-Contrib

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

288 Plugins, 197 contribs sur SPIP-Zone, 171 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 – 2180 commentaires

168 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 26 juin à 17:29, par DD En réponse à : Formidable, le générateur de formulaires

    Une disparition pas inquiétante mais bizarre :
    Dans un formulaire j’ai deux champs date (avec horaires) obligatoires et sur la page : ?exec=formulaires_reponse&id_formulaires_reponse=xx

    Ces 2 champs n’apparaissent plus (depuis au moins le 15 mai dernier)

    Plugin à jour et SPIP 3.0.25

    Répondre à ce message

  • Le 21 juin à 12:12, par Bruno En réponse à : Formidable, le générateur de formulaires

    grand merci pour ce plugin,
    il fonctionne sans pb.
    J’ai plusieurs formulaires
    Cependant est-il possible, pour chacun d’eux, de définir une mise page spécifique
    (ex le champ nom et le champ prénom sur la même ligne...)
    par exemple de créer des « squelettes » mettant en page les champs, un squelette par formulaire

    D’avance merci
    Bruno

    • Le 21 juin à 12:18, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      Le plugin ne s’est jamais occupé de la mise en forme, il ne fait que générer du HTML (et les traitements ensuite). Tout est balisé avec des classes CSS permettant de cibler, donc à toi ou ton thème graphique de faire ça si pour tel ou tel formulaire tu veux styler différemment.

    • Le 21 juin à 14:41, par Bruno En réponse à : Formidable, le générateur de formulaires

      re bonjour
      et merci pour votre réponse, et votre rapidité
      Bruno

    Répondre à ce message

  • Le 16 juin à 16:58, par Syd En réponse à : Formidable, le générateur de formulaires

    Bonjour

    J’ai posé la question sur la liste user, mais je n’ai pas trop de réponse…

    J’utilise un champ checkbox dans un formulaire.
    Je voudrais pouvoir filtrer les réponses dans un listing en fonction des valeurs présentes dans l’environnement via un menu liste sur la page.

    Mais je n’arrive pas à lister dans un array les réponses à la checkbox.

    Il me faudrait un tableau du genre :

    valeur1 Réponse 1
    Réponse 6
    valeur2 Réponse 3
    Réponse 7
    Réponse 8
    valeur3 Réponse 2

    Mais je n’y arrive pas avec les balises de formidable.
    [(#VOIR_REPONSE{checkbox_1, valeur_uniquement}|brut)]
    me renvoie un array qui ne contient que les valeurs :
    valeur1
    valeur2
    valeur3

    [(#VOIR_REPONSE{checkbox_1, valeur_uniquement})]
    Avec valeur_uniquement, ça retourne bien les réponses, mais en html avec un habillage liste

    • .

      [(#VOIR_REPONSE{checkbox_1, valeur_uniquement}|textebrut)]
      me renvoie une string de toutes les réponses :
      Ma réponse 1 Ma réponse 6 Ma réponse 3 Ma réponse 7 Ma réponse 8 Ma réponse 2
      Je ne vois pas comment je pourrais en faire un #ARRAY.

      J’ai peut-être raté ou mal compris quelque chose…
      Une idée ?
      Merci

    Répondre à ce message

  • Le 7 juin à 18:39, par Alberto En réponse à : Formidable, le générateur de formulaires

    Bonsoir.
    Dois-je construire un formulaire de vote en ligne pour une petite association, qui doit être en mesure de voter que les personnes qui ont accès au site.
    Utiliser le plugin « Acces Restreint 3.0 » je suis en mesure de faire le carnet d’adresses privé qui sera effectué le vote, mais je ne peux pas vous assurer que chaque utilisateur correspond à une voix.
    Avez-vous des suggestions ?
    Merci !

    Répondre à ce message

  • Le 18 mai à 12:55, par Julien En réponse à : Formidable, le générateur de formulaires

    jQuery UI 1.8.21

    Mon spip juste upgradé en 3.1.4 a un jQuery UI en 1.8.21. Il semblerait que la fonction curCSS ne soit plus dans cette version de JQuery UI, mais toujours utilisé dans formidable 3.4.0 SVN [104163] ... du coup le drag&drop ne marche plus pour l’ordre des champs... $.curCSS is not a function !

    Une idée pour corriger ceci ?

    Répondre à ce message

  • Le 17 mai à 16:39, par Pinchart En réponse à : Formidable, le générateur de formulaires

    J’utilise ce plug-in pour permettre aux visiteurs de compléter les champs de ma rubrique « agenda », constituée d’articles. Mais comment puis-je passer du résultat de l’encodage du formulaire à un article dans cette rubrique ?

    Répondre à ce message

  • Le 17 mai à 15:45, par Julien En réponse à : Formidable, le générateur de formulaires

    FORMULAIRE MODIFIABLE

    Je souhaite qu’un auteur puisse remplir plusieurs fois un même formulaire, mais puisse modifier ensuite ces réponses. J’ai vu que pour avoir un formulaire modifiable, il fallait mettre une réponse unique, donc cela me bloque...
    Existe-t-il une noisette, un modèle, un truc pour afficher le formulaire avec ces réponses préremplies (en passant comme paramètre id_formulaires_reponse) et d’enregistrer les modifications ? (comme ce que fait le plugin automatiquement avec un formulaire modifiable, mais en lui passant l’id de la réponse à modifier).

    Merci de votre aide.
    Julien

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

      Non il n’y a rien de cela qui existe.

    • Le 17 mai à 16:26, par Julien En réponse à : Formidable, le générateur de formulaires

      Question en plus : le choix de faire un INSERT ou un UPDATE au post du formulaire se fait donc lors de la validation, en comparant le type de traitement (réponse unique ou non) et si on a déjà une réponse enregistrée ?

      Rien à voir du coup avec la variable formulaire_action_args ?

      Aucun moyen de se connecter qq part dans les fonctions de formidable, avec un peu de php en plus pour parvenir à mettre à jour une réponse ?

      Merci.
      Julien

    • Le 17 mai à 16:44, par Julien En réponse à : Formidable, le générateur de formulaires

      Sinon voici une piste pour ceux que ça motive :
      -  formulaire en réponse multiple
      -  pour un auteur donné, afficher que la réponse la plus récente, avec un lien en modification
      -  dans la page de modification, préremplir le formulaire avec les valeurs de la réponse la plus récente. On a ainsi l’impression de modifier sa propre réponse, avec en plus du versionning !

    Répondre à ce message

  • Le 17 mai à 11:21, par Pinchart En réponse à : Formidable, le générateur de formulaires

    Bonjour.
    Comment peut-on permettre à l’utilisateur d’uploader une illustration ?
    Patrick

    Répondre à ce message

  • 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:19, par Maïeul En réponse à : Formidable, le générateur de formulaires

      non, pas de documentation pouir ce point, à ma connaissance.

      Mais s’il s’agit de créer un formulaire pour remplir une table, je fabriquerai plutôt un nouvel objet avec le plugin « la fabrique ». C’est nettement fait pour.

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

    • Le 3 mai à 12:29, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Ou alors utiliser « la Fabrique » pour créer ton propre objet editorial, avec son formulaire maison.

    Répondre à ce message

  • Le 11 mai à 18:57, par DD En réponse à : Formidable, le générateur de formulaires

    Bonjour,
    Y a t-il moyen avec Formidable lorsque l’on a 2 champs date dans un formulaire de forcer le deuxième à avoir une date égale ou ultérieure au premier champ ?
    Merci

    dd

    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

  • Rubriqueur

    1er octobre 2014 – 19 commentaires

    Créer rapidement une arborescence complète de rubriques et d’articles Ce plugin permet de créer rapidement une arborescence complète de rubriques et d’articles à partir d’une simple liste saisie dans un formulaire. L’arborescence peut être créée à la (...)

  • Slick

    17 mai – commentaires

    Intégration à SPIP du carrousel Slick : https://kenwheeler.github.io/slick/ Fonctions de Slick Son utilisation permet d’afficher une liste d’éléments défilants, en l’occurrence ici une série de photographies. Par les configurations proposées, il est (...)

  • BootStrap pour SPIP

    18 mars 2015 – 37 commentaires

    Documentation source http://spipr.nursit.com/bootstrap Présentation BootStrap est un framework qui facilite et accélère le développement Front-End. Il inclue une base CSS très complète (au format LESS) configurée à partir d’un (...)

  • ScolaSPIP 4

    19 janvier 2016 – 198 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • Import ICS 2 et supérieur (agenda distant)

    2 août 2016 – 52 commentaires

    La version 2 du plugin « import ICS » en reprend la principale fonctionnalité, à savoir l’ajout automatique d’évènements distants dans la liste des évènements d’un site. À la différence de la première version, elle ne dépend pas du plugin « Séminaire » et est (...)

Ça spipe par là