Un retour d’expérience d’utilisation de Formidable

Il s’agissait de

  • créer un formulaire d’inscription à un évènement
  • modérer les inscriptions dans le privé
  • publier les inscriptions dans le public

Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine Toulouse.

Formidable ?

Un générateur de formulaires facilement configurable pour les personnes non-informaticiennes et facilement extensible pour celles qui font du développement.

C’est la définition que l’on trouve dans l’article de documentation 3284 et ce qui m’intéresse particulièrement ici c’est son utilisation « non-informaticien ». Des usages beaucoup plus pointus que celui que je veux présenter existent pour faire du développement.

Installation et prérequis

Formidable fonctionne à partir de SPIP 2.1 et nécessite les plugins Bonux, Saisies, Vérifier, YAML, Facteur. Il est également précisé qu’il faut installer le plugin jQuery UI pour pouvoir déplacer les champs à la souris pendant la création d’un formulaire.
Mais il ne faut pas s’en préoccuper tout ceci s’installe automatiquement depuis SPIP 3.0

Créer un formulaire

Il faut tout d’abord créer le formulaire. Dans un premier temps on renseigne seulement :

  • le titre
  • un nom abrégé
  • un message de retour pour les personnes qui rempliront
  • et le message explicatif pour le privé

On voit alors dans la boite de dialogue sur le côté que nous avons trois étapes à suivre :

  • Configurer le formulaire (déjà commencé à la création)
  • Configurer les champs
  • Configurer les traitements

Configurer les champs

On ajoute les champs que l’on veut au formulaire.
Dans notre optique « réaliser un formulaire d’inscription » nous allons surtout sélectionner des lignes de texte qu’il faut ensuite paramétrer.

4 boutons apparaissent au survol
  • déplacer le champ
  • le modifier
  • le dupliquer
  • le supprimer

Donc on insère une ligne de texte puis au survol de la souris sur le champ créé on va cliquer sur le crayon qui apparait :
-  une ligne va être nommée prénom, on va dire qu’elle est obligatoire et on peut mettre un placeholder avec par exemple « votre prénom »
-  une autre ligne de texte, va être renommée « nom » avec les mêmes caractéristiques
-  on a en général besoin d’un champ mail, qui sera lui aussi obligatoire. on va dans le 4 ème onglet, l’onglet validation et dans « Type de vérification à effectuer » on sélectionne adresse de courriel. Il est alors possible de préciser quelques contrôles supplémentaires sur la validité de l’e-mail et si l’e-mail existe déjà ou pas.

On peut ajouter des champs commentaires (text-area) pour que les personnes qui s’incrivent laissent un commentaire, un champ « select » (en exemple pour sélectionner un département) ou encore un bouton radio (ici choix de couleur).

Configurer les traitements

Enfin dans la dernière étape de configuration du formulaire on va configurer les traitements pour :
-  envoyer le résultat du formulaire à des destinataires
-  modérer « à priori » la publication des résultats

Dans mon cas je coche les champs :
-  Poste le résultat du formulaire par courriel à une liste de destinataires.
-  Dans les destinataires supplémentaires je rajoute une ou plusieurs adresse (Une liste d’adresses séparées par des virgules)
-  en nom de l’envoyeur @input_1@  @input_2@
-  je coche « accusé de réception »
-  Enregistre les résultats du formulaire dans la base de données
-  Multiple : Une même personne peut répondre plusieurs fois. (utile quand un prof inscrit plusieurs de ses élèves par exemple)
-  Enregistrer les IPs (masquées après un délai de garde)
-  choix de modération : modération a priori

Utilisation dans un article

On peut maintenant utiliser ce formulaire d’inscription !
Grace au plugin « insérer-modèles » il est facile de retrouver la syntaxe exacte pour l’insérer dans un article :
<formulaire|formidable|id=aperospip>

Affichage des résultats côté public

On veut maintenant aussi publier une liste modérée des inscrits.
Pour cela on va créer un modèle basé sur la balise #VOIR_REPONSE présentée sur la page wiki
4550#balise_voir_reponse

Sur cette base on va créer un modèle qu’on va appeler apero.html. On place ce modèle dans le dossier squelettes/modeles

<table class="spip">
	<thead>
	 <tr>
		<th> Prénom</th>
		<th> Nom </th>
		<th> Commentaire </th>
		<th> Département </th>
		<th> Couleur </th>
	</tr>
	</thead>
<BOUCLE_formidable_id_form(FORMULAIRES_REPONSES){id_formulaire=#ENV{id}}>
	<tr>
		<td>#VOIR_REPONSE{input_1}</td>
		<td>#VOIR_REPONSE{input_2}</td>
		<td>#VOIR_REPONSE{textarea_1}</td>
		<td>#VOIR_REPONSE{selection_1}</td>
		<td>#VOIR_REPONSE{radio_1}</td>
</BOUCLE_formidable_id_form>	
	</tr>
</table>

Par souci de respecter la confidentialité des utilisateur, on n’a pas affiché l’adresse de courriel, que l’on peut récupérer dans le privé si besoin.
on appelle ce modèle ainsi :
<apero1>

Ce modèle a des défauts, il répète l’intitulé de chaque champ avec la réponse.
On va modifier les cellules de réponse ainsi :

                <td>#VOIR_REPONSE{input_1, brut, '' }</td>
		<td>#VOIR_REPONSE{input_2, valeur_uniquement, '' }</td>
		<td>#VOIR_REPONSE{textarea_1, brut, '' }</td>
		<td>#VOIR_REPONSE{selection_1, valeur_uniquement, ''}</td>
		<td>#VOIR_REPONSE{radio_1, valeur_uniquement, ''}</td>

Comme précisé dans le wiki « on peut faire des variantes pour ne sortir que la valeur (en HTML mais sans le label et l’entourage) ou que la valeur brute dans la base. »
Dans mon cas valeur_uniquement ou brut produisent le même résultat. Après la virgule, on peut afficher des valeurs par défaut entre les quotes ''
Et on va appeler ce modèle aperospip.html qui va permettre un affichage beaucoup plus agréable.

On l’appelle ainsi
<aperospip|id=1>

Modération des résultats, modification de l’affichage dans le privé

Par défaut, dans le privé, l’affichage des réponses est peu parlant. Il faut cliquer sur « voir la réponse » pour obtenir le détail des réponses. Ce qui est génant lorsque l’on veut modérer les résultats, que l’on peut avoir des réponses multiples à trier etc...

Alors je propose cette petite modification de l’affichage qui permet un meilleur affichage. Attention à ce que ça ne vienne pas nuire à d’autres usages de formidable sur le même site. Personnellement je ne vois pas de risques, mais je ne pense pas forcément à tous les cas. Bien entendu il est aussi possible de rajouter un champ. Tout ceci à manier avec précaution.

On va créer un squelettes/prive/objets/liste/formulaires_reponses.html pour afficher les noms, ou on ajoute dans le thead

                        <th class="nom" scope='col'>prenom</th>
			<th class="nom" scope='col'>nom</th>

et dans la table elle-même

			<td class="nom">[(#VOIR_REPONSE{input_1, brut})]</td>
			<td class="nom">[(#VOIR_REPONSE{input_2, brut})]</td>

Modèle joint

, qui s’insère donc ainsi dans l’arborescence

Le résultat devient plus facile à traiter dans l’optique d’une modération des inscriptions.

Voilà, c’était mon expérience d’utilisation de formidable :)

Discussion

5 discussions

  • 4

    moderation

    Bonjour, j’ai bien activé “moderation à priori” et cependant les enregistrement sont toujours validés.( pastille verte, je m’attendais au croisillon “en attente de ...”
    Ai-je mal compris quelque chose ?

    merci

    • Ilovespip

      Bonjour j’ai le meme soucis
      J’ai testé les deux types de modération a priori et a posteri
      Dans les deux cas de figures, les réponses sont en pastille verte.
      Ai-je raté une étape ?
      Comment faire pour avoir les réponses en proposée soumis à validation ?
      Merci

    • Heu « Pastille verte » j’imagine que tu veux dire « Publié ». Je pense que cela vient du fait que tu est connecté, et donc on te fais confiance. Mais ce n’est pas forcément le plus logique, on pourrait voulor modérer a priori aussi les réponses des gens connectés.

      J’ai ouvert un ticket https://git.spip.net/spip-contrib-extensions/formidable/issues/26.

      J’attend une réaction de Rastapopulos et sinon je coderai cela ce week-end.

    • Peux tu tester la branche https://git.spip.net/spip-contrib-extensions/formidable/archive/issue26.zip

      en installant manuellement ?

      Cela offre une option « modérer également les réponses des administrateurs » qui devrait répondre à ton besoin.

    • Bon,

      la version 4.4.0 du plugin intègre cela.

      Cependant, j’aurais apprécié d’avoir des retours à mes réponses :).

    Répondre à ce message

  • 1
    Bersyl91

    Bonjour,

    J’utilise Formidable avec bonheur depuis quelques années et j’ai voulu apporter des modifications à mon formulaire. Grave erreur : depuis, il ne fonctionne plus.

    Symptômes :
    - Message « Une erreur est survenue lors de l’envoi du courriel. » ;
    - 6 messages « Warning : Illegal offset type in isset or empty in /homepages/28/d389023540/htdocs/CB91/plugins/auto/formidable/v3.7.1/traiter/email.php on line 124 »
    - La prise en compte de l’UTF-8 est perdue (cela, je pense que c’est du aux 6 messages qui ont l’air d’être envoyés avant la page).

    Bizarre et... très ennuyeux !!!

    Quelqu’un peut-il m’aider ?

    • Peux tu m’envoyer en privé (monprenom@monprenom.net) un export yaml de ton formulaire ? Et me préciser la version de formidable utilisé ?

    Répondre à ce message

  • Merci, cela nous a été d’un grand secours pour créer notre formulaire

    Répondre à ce message

  • 1

    @Jacques, super article merci !

    Par contre pour le tout dernier point, cela fait déjà pas mal de temps que Cédric a ajouté un mécanisme permettant formulaire par formulaire de personnaliser le tableau de réponses en pouvant choisir n’importe quelles colonnes à ajouter à la liste des réponses, directement dans l’interface d’admin, et donc effectivement pour les non-informaticiens. :)

    Il y a un champ pour ça dans la config du formulaire, où on indique optionnellement une liste de champs (selection_1, input_2, etc), et hop ça les ajoute au tableau uniquement pour ce formulaire-là.

    • Et du coup, je rajoute, ce serait bien de modifier l’article pour indiquer plutôt cette méthode, et donc ne pas faire croire qu’on soit obliger de surcharger des fichiers squelettes pour ça, alors qu’il existe déjà une méthode plus simple. :)

    Répondre à ce message

  • 1

    Exemple utile et didactique mais juste une remarque.

    ce qui m’intéresse particulièrement ici c’est que c’est pour de « non-informaticiens ».

    A part que l’exemple demande à bidouiller dans plusieurs fichiers sans comprendre ce qu’on fait lorsqu’on est « non-informaticien » et qu’il ne faut pas se rater.
    Ce n’est pas ce qu’attend l’utilisateur d’un cms, qui utilise justement les plugings et les jeux de squelettes pour ne ne pas avoir à mettre les mains dans le cambouis.
     :-))

    • On ne demande absolument pas de modifier des fichiers sans comprendre ce qu’on fait !
      Il s’agit de modifications mineures et sans risque puisque tout se passe dans le dossier squelettes :)

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom