Carnet Wiki

Balises et boucles avec Formidable

Version 1 — Août 2014 Suske — Version initiale

Balise #VOIR_REPONSEchamp et boucle (FORMULAIRES_REPONSES)

Timestamp :
02/07/2014 19:07:06 (8 weeks ago)
Author :
rastapopoulos@…
Message :

Une nouvelle balise qui sera peut-être utile à celleux qui veulent afficher leurs réponses enregistrées.

#VOIR_REPONSEchamp à utiliser dans une boucle (FORMULAIRES_REPONSES).

Par défaut ça afficher la même chose que #VOIR_SAISIE. Mais 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.

#VOIR_REPONSEselection_1, brut
#VOIR_REPONSEselection_1, valeur_uniquement

En troisième argument on peut aussi passer la chaîne qu’on veut afficher pour les champs qui n’ont pas de réponse (champ vide). Sinon c’est le truc par défaut « Sans réponse ». On peut y mettre la chaîne vide si on ne veut rien.
Location :
_plugins_/formidable/trunk

Extraits de todoformidable


FAIT : Message si erreurs de verifier

Quand une erreur est constatée sur une des saisies, le message d’erreur apparait juste au dessus de la saisie, mais il n’y a aucun message générique au dessus du formulaire, et sur un grand formulaire, on a l’impression que tout est bon.

Il faudrait pouvoir afficher un message générique genre « il y a une erreur ! » en amont du formulaire.


FAIT : Si validé, ne plus afficher les saisies !

Quand le formulaire est validé, un message de congratulation s’affiche, mais il faudrait que le formulaire ne s’affiche plus !

FAIT : 3 options : afficher le formulaire encore, ou bien les valeurs, ou bien rien du tout


RESOLU EN GRANDE PARTIE avec la nouvelle option « choix de l’affichage après traitement »

Lu sur une liste, pas pris le temps de vérifier le doublon.

<blockquote class="spip">

Comment pourrais-je faire pour que dans mes squelettes je n’affiche pas
le formulaire si l’utilisateur a déjà répondu ?

Le formulaire a une réponse unique par internaute, sans modification de
la réponse.

Dans l’idée ce serait ne pas avoir « Vous avez déjà répondu à ce
formulaire. », et ne pas avoir du tout le bloc.

Je pensais qu’avec le cookie spipformulaire_id_form je pouvais m’en
sortir, mais visiblement l’internaute est repéré avec son IP.

Y a t’il une solution du côté de #AUTORISER ?

(...)

en fait je voudrais pouvoir afficher les
résultats à la place :)
disons un truc du genre :

[(#si_internaute_a_deja_rep_au_formulaire|non)
<div>
        ...........
        [<div class="ajax">(#FORMULAIRE_FORMIDABLE{#ENV{id}})</div>]
</div>
]
[(#si_internaute_a_deja_rep_au_formulaire|oui)
<INCLURE{fond=inc-resultats}{env}>
]
</blockquote>

#AUTORISER{repondre, formulaire, #ID_FORMULAIRE}

et

modeles/formulaires_reponse.html (affiche une réponse précise)
ou
modeles/formulaire_analyse.html (stats de toutes les réponses)

Formitable

FormiTable (developpement arrêté)

<blockquote class="spip">

FormiTable est un plugin de Formidable et lui fournit un traitement pour enregistrer les saisies de ’formidable’ dans une table utilisateur, avec une correspondance de chaque champ d’un formulaire vers un champ de la table.

</blockquote>

Modèle

http://contrib.spip.net/Formidable-Presentation-aux-Grottes-2010

Afficher les résultats dans spip

formidable fournit un modèle prédéfini pour afficher les résultats : « formulaires_reponse ».
http://zone.spip.org/trac/spip-zone/browser/_plugins_/formidable/modeles/formulaires_reponse.html

Il est également possible d’aller chercher les résultats pour les présenter de la manière voulue :

  • reponse #ID_FORMULAIRE_REPONSE :
    #VALEUR
    -
    #VALEUR
    -
    #VALEUR

Télécharger

Pour ça il faut connaitre le nom interne de chaque champ dans formidable : input_1, ...

C’est par contre plus compliqué pour faire directement à partir du name du champ car la correspondance avec le nom internet passe par une sérialisation dans le champ saisies de la table spip_formulaires. A moins qu’il n’y ait un filtre standard pour faire la correspondance...