Boucler sur les réponses de Formidable

Le plugin Formidable permet d’enregistrer les réponses. Mais comment récupérer ces réponses ? Par des boucles SPIP, qui possèdent quelques spécificités.

La boucle (FORMULAIRES_REPONSES)

La boucle (FORMULAIRES_REPONSES) permet de boucler sur les réponses d’un formulaire. Chaque réponse se voit associer une certain nombre de champs :

  • id_formulaires_reponse ;
  • id_formulaire ;
  • date ;
  • ip ;
  • id_auteur ;
  • maj ;
  • cookie ;
  • statut.

Comme tous les champs d’une table, il est possible de s’en servir :

  • comme critère, par ex. :
    • {id_formulaire=1}, pour récupérer les réponses du formulaire n°1 ;
    • {id_formulaire}, pour récupérer les réponses du formulaire passé en argument ;
    • {!par date} pour récupérer d’abord les réponses les plus récentes ;
  • En balise avec des majuscules et un dièse initiale #DATE.

Par défaut, seules les réponses publiées sont retournéess (comme pour les autres objets de SPIP).

Trouver les valeurs enregistrées en base

Comment trouver les valeurs postées par l’utilisateurtrice ? En raison de la structure des tables de formidable, il faut utiliser une balise spéciale : #VOIR_REPONSE{<champ>,<option>}

  • L’argument <champ> est obligatoire. Il contient le nom technique du champ sans le @. Par ex : #VOIR_REPONSE{input_1}
  • L’argument <option> est facultatif. Il peut prendre l’une des valeurs suivantes [1] :
    • S’il est absent, on aura une vue standard de la réponse, avec le label et la valeur (comme cela apparaît lorsqu’on voit les réponses dans l’espace privé).
    • S’il est égal à valeur_uniquement on aura la valeur, formatée de manière lisible par les humaines. Par exemple les boutons radios et les cases à cocher ont deux valeurs :
      • une valeur technique (avant le | dans le réglage de la saisie) ;
      • une valeur humaine (après le | dans le réglage de la saisie)
        C’est la seconde valeur qui est affichée.
    • S’il est égal à brut, on aura la valeur brute (donc la valeur « technique » pour les boutons radios / cases à cocher).
    • S’il est égal à label, cela donne le label associé au champ
    • S’il est égal à edit on aura la classe css nécessaire au bon fonctionnement des du plugins crayons.

Exemple concret : je veux récupérer les champs input_1 de toutes les réponses au formulaire n°1, et je veux que les admins puissent éditer la réponse avec les crayons.

<BOUCLE_reponses (FORMULAIRES_REPONSES){0,1}{id_formulaire=11}>
<p class="#VOIR_REPONSE{input_1,edit}">#VOIR_REPONSE{input_1,brut}</p>
</BOUCLE_reponses>

Par défaut, les valeurs sont mises en forme grâce à des balises HTML. Il est possible de faire sauter ces balises via le filtre |formidable_nettoyer_saisie_vue.

Trier selon un champ

La boucle (FORMULAIRES_REPONSES) peut recevoir un critère {tri_selon_reponse <champ>}, où <champ> doit être remplacé par le champ de formulaire selon lequel on trie.

Sélectionner les réponses selon l’identifiant textuel du formulaire

Les formulaires Formidable possèdent des identifiants textuels. Il est possible de sélectionner les réponses d’un formulaire en fonction de cette identifiant, mais pour cela il faut faire une jointure.

Si je veux obtenir les réponses correspondant au formulaire dont l’identifiant est inscription.

<BOUCLE_reponses (FORMULAIRES_REPONSES formulaires){0,1}{identifiant=inscription}>
<p class="#VOIR_REPONSE{input_1,edit}">#VOIR_REPONSE{input_1,brut}</p>
</BOUCLE_reponses>

Notes

[1À partir de la version 3.19 du plugin.

Discussion

Aucune discussion

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