SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Interactivité, communication > Forms & Tables

plugin Forms : création de formulaires

mercredi 25 octobre 2006, par Cedric Morin, Franck Ducas, L’instit. Dernier ajout samedi 10 mai 2008

Toutes les versions de cet article :


Documentation basique du plugin Forms pour son volet création de formulaires.

Il y a d’autres usages et possibilités (sondages et code avec unserialize), qui seront détaillés dans d’autres articles.


Installation et activation du plugin

Comme pour tous les plugins (voir Les plugins), vous avez installé ce plugin par ftp puis vous l’avez activé dans l’interface de gestion des plugins (Configuration > Gestion des Plugins > cocher la case "Formulaires") :

Initialisation du formulaire

  1. Passez la souris sur "Edition" puis cliquez sur l’icône "Formulaires et sondages" ;
  2. Cliquez sur "Créer un nouveau formulaire" ;
  3. Donnez un titre, éventuellement un descriptif, et indiquez une adresse email où seront envoyées les réponses au formulaire rempli en ligne par vos utilisateurs ;
  4. choisissez "Ce formulaire n’est pas un sondage" (c’est le seul exemple abordé dans ce document) puis validez ; La validation initialise la création du formulaire. Vous pourrez ensuite aborder la seconde phase, celle de la définition des champs du formulaire.
  5. la même page s’affiche donc apres la validation, mais en bas vous trouverez un sélecteur des types de champs que vous pourrez afficher dans votre formulaire.

Création des champs de saisie

Choisissez les champs dont vous avez besoin, nommez les, puis ajoutez chaque élément, un par un ; voici le détail des champs possibles :

    1. ligne de texte crée un champ de saisie sur une seule ligne
    2. texte crée un champ de saisie sur plusieurs lignes
    3. adresse mail crée un champ de saisie d’adresse mail avec la mention "Veuillez entrer une adresse e-mail valide (de type vous@fournisseur.com)"
    4. adresse web crée un champ de saisie d’adresse web avec la mention "Veuillez entrer une adresse Web valide (de type http://www.monsite.com/...)". D’autre part, on peut choisir de vérifier la validité du site.
    5. choix unique insère un choix entre autant d’item que l’on souhaite de style "bouton radio" un seul bouton pourra être coché.
    6. choix multiple insère les classiques choix à cocher avec possibilités de plusieurs choix (cases carrées). Pour ces deux derniers types de champs, le changement est proposé après la création du champ pour transformation d’un type vers l’autre.
    7. fichier à télécharger permet à l’utilisateur de joindre un fichier. Le concepteur du formulaire fixe la taille maxi en ko du fichier.
    8. mots-clés ajoute automatiquement une liste de cases à cocher de type "choix multiples" correspondants à tous les mots-clés d’un groupe de mots-clés. Le choix entre les groupes de mots-clés est proposé au concepteur du formulaire. ex : j’ai un groupe de mots-clés nommé "Thématiques". En choisissant ce groupe lors de la création du formulaire, j’insère automatiquement une série de cases à cocher avec tous les mots-clés de ce groupe, soit Communauté, Culture, Développement, Licences libres, Logiciels libres.
    9. nouveau bloc de questions crée un nouveau cadre qui entourera tous les champs qui suivront jusqu’à l’insertion d’un autre champ "bloc de questions"
    10. message d’explication insère un texte de votre choix, donc par exemple pour écrire vos questions ou commenter votre formulaire.

Il est possible de modifier l’ordre des champs en cliquant sur les flèches "monter" ou "descendre" en vis à vis de chacun. Un apercu du formulaire est visible dans le cartouche, en cliquant sue le petit triangle devant APPARENCE DU FORMULAIRE

Lorsque vous avez intégré tous les composants souhaités , cliquez sur "Retour" en haut de la page. Votre formulaire est créé. Pour le publier il faut maintenant l’inclure dans un article

Vous insérez donc ce formulaire dans un article, à la manière d’une insertion d’image : lorsque vous créez ou modifiez un article, vos formulaires se trouvent à gauche de votre article et vous n’avez qu’à coller le code du formulaire voulu dans le corps de votre article (comme pour une image <img1>)
Ex : Dans ce site, <form1> inséré dans un article donnera le formulaire comme ceci :

Afficher un formulaire dans un squelette

Vous pouvez également afficher un formulaire directement dans les squelettes en utilisant la notation suivante :

[(#MODELE{form}{id_form=1})]

Afficher un sondage dans un squelette

Pour afficher un sondage, il faudra procéder en deux étapes et utiliser un <INCLURE> pour bien gérer le cache.

1) Créer un squelette par exemple sondage.html

#CACHE{0}
[(#MODELE{form}{id_form=1})]

2) Inclure ce squelette ou vous voulez (disons sur la page d’accueil)

<INCLURE{fond=sondage}>

Vous pouvez consulter les réponses que vos utilisateurs ont envoyées :

  • En consultant l’interface privé : en passant votre souris sur "Forum", puis sur "Suivi des réponses" (les réponses sont sur le même mode que les signatures des pétitions).
  • En recevant les réponses par email : Si vous avez indiqué une adresse mail dans la configuration de votre formulaire (plus haut), vous recevrez également le contenu du formulaire par mail (pour autant que votre serveur vous autorise à envoyer des mails).
  • En Exportant les réponses au format CSV : Vous avez également la possibilité de télécharger le fichier des données collectées au format csv pour excel. Sur la page Edition > Formulaire et sondage > Votre Formulaire : une fois que votre formulaire est publié et que vous avez collecté des réponses, apparait à gauche de l’interface de modification du formulaire, un bloc de consultation des réponses
    • > voir les réponses (consultation modération cf forum) -> télécharger les réponses (récupération de l’ensemble des données sous forme d’un fichier csv pour excel)

Récupérer les informations du formulaire dans une boucle

Vous pouvez récupérer les infos générales de vos formulaires en utilisant la boucle suivante :

  • Soit « FORMS » = le nom de la table
  • #TITRE = le titre du formulaire

Un exemple complet de l’utilisation des boucles de formulaires est visible dans le plugin, dans le squelette de génération du formulaire (formulaires/forms.html)

Les balises disponibles sont #DESCRIPTIF, #SONDAGE (attention ne sera plus supporté dans forms2), #EMAIL (données serialisées, non utilisable simplement), #CHAMPCONFIRM (nom du champ email dont la valeur est utilisee pour envoyer un mail de confirmation), et #TEXTE (texte pour l’envoi du mail de confirmation)

Pour accéder aux informations concernant les champs des formulaires, 2 autres boucles sont utilisées :

La boucle FORMS_CHAMPS permet d’acceder aux infos d’un champ :

Cet exemple simplifie issu de formulaires/forms_structure.html affiche l’input des champs de type ligne d’un formulaire

La boucle FORMS_CHAMPS_CHOIX permet d’acceder aux choix possibles pour un champ etendu de type choix multiple ou unique. Voici un autre exemple simplifié, issu de formulaires/forms_champs_multiple.html

Récupération des données des formulaires créés via des boucles

Les réponses au formulaire sont elles stockées dans la table spip_reponses et spip_reponses_champs. Pour une réponse donnée, vous avez un enregistrement dans spip_reponses, associé a n enregistrements de spip_reponses_champs ayant le meme id_reponse. Donc vous pouvez éventuellement récupérer les réponses par des boucles sur ces tables. Toutefois, les données des champs de type choix ne sont pas stockées en clair mais en tant que numero de choix (à peu de choses près), et il faut utiliser les boucles decrites ci-dessus pour les interpreter. Un exemple de squelette affichant une réponse en clair est fourni avec le plugin (forms_reponse.html, a la racine du plugin). Ces boucles sont d’un niveau d’utilisation avancées du fait de leurs interdependances.

Utiliser la fonctionnalité de liaison (dépendance) entre plusieurs formulaires

Il est possible de rendre un formulaire dépendant du remplissage d’un autre formulaire : c’est le rôle du champ "Formulaires obligatoires pour la saisie de celui-ci" de l’onglet Propriété d’un formulaire. Cette fonctionnalité permet typiquement de faire quelque chose du style :

  • l’utilisateur arrive sur un article qui présente un premier formulaire (<form1> pour cet exemple) : il le rempli et le valide.
  • une fois cette validation faite, l’article se ré-affiche avec un deuxième formulaire (<form2> par ex.) qu’il peut alors remplir (le premier formulaire n’est plus visible).
  • une fois celui-ci validé, un troisième formulaire s’affiche (<form3>).

Mode opératoire :

  • créer les 3 formulaires
  • dans le champ Formulaires obligatoires pour la saisie de celui-ci de <form2>, on indique 1 (le numéro du formulaire de l’étape 1).
  • dans le champ Formulaires obligatoires pour la saisie de celui-ci de <form3>, on indique 1,2 (le numéro du formulaire de l’étape 1 et de celui de l’étape 2, séparés par une virgule).
  • Créer l’article qui contiendra l’enchaînement de ces 3 formulaires (un seul article), et mettre dans le texte de celui-ci <form3> uniquement !
    L’idée c’est que pour que <form3> s’affiche, il sera nécessaire d’avoir rempli <form1> puis <form2>, qui seront automatiquement insérés à la place de <form3> l’un après l’autre. Il ne faut donc pas faire d’appel direct au modèles <form1> et <form2>.

Remarques

P.-S.

La version pour spip 1.9.1 est disponible en telechargement sur la zone.

Spip 1.9.2

La nouvelle version du plugin s’appelle forms&tables. Elle est compatible 1.9.1 & 1.9.2, et est en téléchargement ici

Avertissements

  • Aucune version du plugin disponible n’est compatible avec les versions de développement ou stables postérieures à la version 1.9.2.
  • De ce fait, le plugin n’est pas compatible PostgreSQL
  • Le portage pour la prochaine version stable de SPIP sera fait après la sortie de la dite version

Documents joints


Répondre à cet article

  • problème d’affichage dans la partie privée

    31 mars 2008 13:24, par Mehdi

    Bonjour,

    J’utilise SPIP depuis bientôt un an dans sa version 1.9.1, et j’ai créé des sondages grâce à ce plugin ma foi fort sympathique. Des sondages qui s’affichent parfaitement dans la partie publique ; par contre l’accès à la partie privée pour vérifier les résultats, pour modifier un question ou ajouter un champ est inaccessible. De même l’accès aux articles est impossible : une erreur s’affiche, Allowed memory size of 8388608 bytes exhausted (tried to allocate 64 bytes) in /data/village/sanchopanzalemag/sancho-panza_fr/www/ecrire/public/phraser_html.php on line 274. Ca semble correspondre à un problème de mémoire, mais la ligne du fichier change quand j’actualise la page, ce qui fait que je ne sais pas ou je devrai modifier le fichier. Quelqu’un aurait il une piste ?

    Mehdi

    Répondre à ce message

    Retour au début des forums

  • plugin Forms : création de formulaires

    24 février 2008 14:58, par Rano

    Bonjour à tous J´ai un gros soucis avec ce plug in très pratique. En effet à l´envoi d´un formulaire sur le site, les mails sont archivés correctements mai sle serveur ne semble pas envoyer les requêtes par mail.

    je suis sur la 1.9.2b [9381] avec les plugs in couteau suisse, enluminure, cfg, recherche étendue, recommander à un amis ( qui fonctionne parfaitement pour l´envoie des mails) barre typo V2

    y a t-il bcp dans mon cas et surtout une solution à ce problème car au niveau serveur cela semble fonctionner correctement.

    Salutations

    Répondre à ce message

    Retour au début des forums

  • Plusieurs envois par IP

    19 avril 2008 13:37, par sancho

    Bonjour,

    Fonctionnement impeccable du plugin’. J’ai mis en ligne des formulaires qui fonctionnent très bien. Seulement, pour l’un d’eux, j’ai effectué une partie sur papier, et j’aimerais rentrer les résultats sur le site. Or forcément, il n’est pas possible de remplir plus de 2 questionnaires d’un même pc. J’imagine que ca vient de l’ip, mais je ne sais pas comment modifier ce critère.

    Est ce que quelqu’un aurait une idée du comment faire pour temporairement ouvrir le droit d’un IP pour une réponse multiple ? (spip 1.9.2d)

    Merci pour votre aide.

    Répondre à ce message

    Retour au début des forums

  • Problème avec les CSS

    5 mai 2008 17:40, par Marc

    Bonjour.

    J’ai installé avec succès le plugin. Seul problème, l’apparence des formulaires sur le site public. Impossible d’aligner les éléments ou de dimensionner la largeur des champs de saisie. Voir sur : http://www.sqy-sportnature.fr/spip.php ?article14 Ce qui m’ennuie, c’est la largeur du champ texte qui dépasse largement celle de ma zone de saisie apparente. Quoi modifier exactement dans quel fichier CSS ? Merci par avance.

    Répondre à ce message

    • Problème avec les CSS 5 mai 2008 17:47, par Marc

      Complément d’info et autre piste possible : en regardant le code de la page générée avec Firebug sous Firefix, je vois que le champ de saisie de texte a pour valeur cols="80", ce qui semble être la cause de la trop grande largeur de ce hamp de formulaire. Où et comment modifier la valeur de "cols" qui semble être générée dynamiquement ?

      Merci par avance pour cexu qui maîtrisent le sujet.

      Répondre à ce message

      • Problème avec les CSS 7 mai 2008 12:57, par Jean-Pierre

        Bonjour,

        Le style des formulaires est géré par forms_et_tables/spip_forms.css. Il suffit de faire un appel dans le <head> de la page qui contient le formulaire vers ce fichier css et régler ensuite les différents paramètres.

        Répondre à ce message

        • Problème avec les CSS 7 mai 2008 14:30, par Marc

          En effet, je n’avais pas inclus la ligne qui appelait le CSS. J’ai toutefois toujours le problème avec la largeur du champs Texte. Pourquoi le formulaire génère t-il par défaut une valeur de 80 pour "cols=" ?

          Répondre à ce message

          • Problème avec les CSS 8 mai 2008 14:52, par dd

            Je ne sais pas "pourquoi" mais tu peux changer les valeurs dans ta css spip_forms.css :

            .spip_forms form textarea.formo, .spip_forms form textarea.forml{width:250px; height: 80px;}

            dd

            Répondre à ce message

    Retour au début des forums

  • plugin Forms et anti-spam

    29 avril 2008 17:53, par Bayfan

    Bonjour, Ce plugin est génial, pratique, efficace. Dommage simplement qu’il n’ait pas de protection anti-spam. J’ai peur d’être rapidement la cible des robots. Est-il compatible avec des captchas existant ?

    Répondre à ce message

    Retour au début des forums

  • Bonjour,

    j’ai installé la dernière version de forms & tables sur mon site (spip 1.9.2 b). Je peux créer des tables et des champs, cependant, lorsque j’ajoute des données, il m’est bien retourné le message "Votre saisie a été enregistrée" mais les données apparaissent vide dans l’administration. Tout se passe comme si rien ne s’écrivait dans la base, une donnée vide est enregistrée. Pour information, mon site tourne avec php5 et les plugins suivants :
    - accès restreint 2.0
    - Agenda pour SPIP 1.9.2
    - Escoitar Gis Plugin
    - SPIP-Listes
    - Squelette par mot clef
    - Walma
    - Widget Calendrier
    - GoogleMap Api

    J’ai fait un test en désactivant tous les autres plugins mais toujours le même problème. Existe-t-il une incompatibilité avec php5 ?

    Merci pour vos réponses.

    Répondre à ce message

    Retour au début des forums

  • plugin Forms : création de formulaires

    18 avril 2008 10:00, par Laurentg001

    Bonjour, Je voudrais savoir comment ajouter un bouton pour imprimer directement les messages un par un depuis la page listant les messages envoyés depuis le formulaire ?

    Et aussi, je ne voudrais définir automatiquement le titre, la rubrique, l’auteur de l’article que lorsque je crée un article à partir du message.

    Quelqu’un a-t-il une solution ? Merci. :-)

    Répondre à ce message

    Retour au début des forums

  • plugin Forms : return path ?

    14 avril 2008 13:29, par sebmicoud

    Bonjour à vous,

    j’ai un petit souci avec la réception des formulaires par mail depuis quelques semaines. J’ai contacté mon hébergeur (France Telecom) qui m’a indiqué que les mails étaient bloqués car considérés comme spam. Le seul moyen d’assurer un envoi serait de définir un return path pour les formulaires envoyés grâce au plugin forms&tables.
    Auriez-vous des suggestions pour configurer le plugin en ajoutant un return path ? Je vous remercie par avance pour votre aide précieuse.
    Pour info, le site Internet fonctionne avec Spip 1.9.2b [9381] et le plugin forms_et_tables_1_9_1 version 0.301

    Répondre à ce message

    • plugin Forms : return path ? 15 avril 2008 15:49, par sebmicoud

      je me réponds moi même si ça jamais ça peut aider quelqu’un. Pour que les messages envoyés via les formulaires (réalisés grâce au plugin forms&tables) ne soient pas bloqués comme spam par le serveur de France telecom, j’ai du déclarer un return path dans le fichier inc/envoyer_mail de spip (version 1.9.2).

      Ainsi, il suffit de compléter les lignes suivantes :

      case ’online’ :
      return @email(’webmaster’, $email, $sujet, $texte) ;
      default :
      return @mail($email, $sujet, $texte, $headers) ;

      avec : ’-fvotreadresse@fournisseur.fr’

      case ’online’ :
      return @email(’webmaster’, $email, $sujet, $texte, ’-fvotreadresse@fournisseur.fr’) ;
      default :
      return @mail($email, $sujet, $texte, $headers, ’-fvotreadresse@fournisseur.fr’) ;


      Bon courage !

      Répondre à ce message

    Retour au début des forums

  • Comment recréer les tables dans la base de donnée

    25 janvier 2008 15:05, par Fabrice

    Bonjour,

    Lors d’une migration de Spip 1.9.1 à 1.9.2c, j’avais supprimé mes plugins pour installer les plugins récents dont "Forms & Tables" du 21/01/08. Dans l’espace privé, après activation de F & T, apparu "INSERT HEAD double occurrence", les champs n’apparaissaient plus dans l’aperçu des formulaires, leur description était doublée. Dans les articles la page Erreur 404 s’affichait à la place des formulaires. Dans la partie publique, la description s’affichait mais pas les champs.

    Cache vidé, plugin F & T désactivé, j’ai supprimé par ftp le plugin pour installer celui de la version du 24/01.

    Après plusieurs vidage de cache, suppression du plugin, ré-installation,... j’ai supprimé toutes les tables spip_forms pensant qu’un nouveau plugin les réinstallerait... Raté !

    J’ai créé la table spip_forms... la table spip_forms_article s’est créée toute seule (?) mais pas moyen de rééditer l’exploit avec les autres tables du plugin : champs, données,...

    La base indique : "Erreur Certaines fonctionnalités ayant trait aux tables reliées sont désactivées. Fonctions relationnelles désactivé"

    SVP, que faire quand on n’entend rien à PhpMySql pour récupérer les tables et cette excellente fonction Forms & Tables ?

    D’avance merci !

    Répondre à ce message

    Retour au début des forums

  • plugin Forms : boutons d’ordonnancement des champs

    25 mars 2008 14:38, par ordilibre

    Bonjour et félicitations pour cette superbe contribution.

    Je signale une anomalie d’affichage que je rencontre sur une installation en SPIP 1.9.2d.

    Dans l’édition d’un formulaire, les boutons (flèches up et down) d’ordonnancement des champs disparaissent et ne sont donc pas utilisables.

    En observant le code, je remarque l’anomalie suivante :

    Le Style de la class ’boutons_ordonne’ est paramétré pour ne pas s’afficher (display : none ;).

    D’où cela peut il bien provenir ? Existe il un paramètre à redéfinir ?

    Répondre à ce message

    Retour au début des forums

  • plugin Forms : création de formulaires

    20 janvier 2008 19:08, par Jacques

    J’ai intégré ce plugin qui fonctionne très bien, mais certains internautes étrangers se voient refuser leur données personnelles : "champs perso invalides" que ce soient des numéros de tel fixes ou portables ou des codes postaux . Comment régler ce problème ? url du formulaire : http://www.cyber-langues.asso.fr/spip.php ?article39

    Répondre à ce message

    Retour au début des forums

  • Bonjour, je rencontre un problème de création de formulaire avec SPIP 1.9.2d (avant cela marchait parfaitement sur une version 1.9.2c) : après avoir installé, activé le plugin et crée un nouveau formulaire, impossible de passer à l’étape suivante de création des champs ; de plus le formulaire crée n’est pas enregistré donc non éditable...

    question : problème de compatibilité de ce plugin avec SPIP 1.9.2d ?

    Merci pour votre aide

    Répondre à ce message

    • Bonjour aire42,

      Il n’y a pas de souci de compatibilité avec SPIP 1.9.2d,

      par contre ton pb vient peut être d’une incompatibilité avec un autre plugin

      Lila

      Répondre à ce message

      • Bonsoir Lila et merci pour la réponse rapide,

        en fait je n’ai QUE ce plugin d’installé... et par ailleurs il fonctionne parfaitement sur d’autres sites avec version antérieure de SPIP et sur lesquels il y a d’autres plugins

        bizarre, vraiment bizarre

        Répondre à ce message

        • problème de création de formulaires avec SPIP 1.9.2d 4 avril 2008 08:41, par L’instit

          Bonjour

          Peux-tu expliquer quelle procédure tu as suivi pour que ça ne fonctionne plus ? Est-ce la mise à jour d’un site 192.c en 192.d ou l’installation d’un nouveau site avec une base vierge, ou la restauration d’une base ?

          Répondre à ce message

          • bon, mea culpa (encore une fois) le plug-in marche, très bien
            explication  : après install et activation, dans la fenêtre "Gestion des "plugins", il faut cliquer sur le bouton "spip-pack" à droite du nom du plugin ; un texte "Effacer tout" apparaît, il faut cliquer dessus pour mettre à jour le plugin (ou vider son cache)
            après cette opération j’ai pu créer un nouveau formulaire sans pro

            Encore merci pour ce super plugin

            Répondre à ce message

    Retour au début des forums

  • plugin Forms : création de formulaires

    4 avril 2008 01:40, par Fred

    C’est simple, ça marche du premier coup est c’est super utile. Bravo !!

    Répondre à ce message

    Retour au début des forums

  • plugin Forms : création de formulaires

    4 avril 2008 00:44, par Anne

    Bonjour,

    je voulais juste dire que ça marche nickel sur 1.9.2. Mon formulaire est archi simple que des champs de texte mais quand même ! La galère si je n’avais pas trouvé ce super plugin ! Merci ! Que des copier-glisser-coller... le bonheur !

    Répondre à ce message

    Retour au début des forums

0 | 25 | 50 | 75 | 100 | 125 | 150 | 175 | 200 |...



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net