Carnet Wiki

Balises et boucles avec Formidable

Version 5 — Août 2014 Suske

Cette page doit devenir une documentation complète (ou complétant celle qui existe sur contrib) à propos de formidable, à sortir du carnet publier sur contrib. Des choses devront probablement sortir d’ici ppour rejoindre l’article initial sans le prolonger trop cependant.

Merci de :
-  noter ici la date et le sens de votre intervention (en résumé, quelques mots max)
-  faire les réflexions et discussions dans le forum privé (on ne comprend rien aux pages wiki qui contiennent des discussions)

-  27/8/2014 : création de la page (Suske)


Balise #VOIR_REPONSE{champ} 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_REPONSE{champ} à 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.

  1. #VOIR_REPONSE{selection_1, brut}
  2. #VOIR_REPONSE{selection_1, valeur_uniquement}

Télécharger

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.

-----------------------------

Extraits de [todoformidable->http://contrib.spip.net/todoFormidable

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>

FAIT : Ajouter une nouvelle option de traitement pour sauvegarder dans une vraie table utilisateur avec des vrais champs

.

Ça serait pour remplir une table, pas pour la créer.

Il faut
-  demander les associations d’un identifiant d’un champ de formulaire vers un nom d’un champ d’une table
-  définir un nouveau traitement « enregistrer_table » (sélectionnable dans le 3e onglet du panneau de config d’un formulaire)

Voir FAIT  : pour l’instant dans le projet de documentation du plugin formitable

Après la validation

et

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 !

Quand le formulaire est validé , FAIT  : 3 options possibles dans la configuration de chaque formulaire :
- réafficher afficher le formulaire encore,
- afficher ou bien les valeurs,
- ne ou bien rien afficher . du tout

Autorisations de formidable

-----------------------
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}

Permet par exemple de ne pas afficher le formulaire si l’utilisateur a déjà répondu. A combiner aussi avec les modèles fournis  :
- modeles/formulaires_reponse.html (affiche une réponse précise)
- ou
modeles/formulaire_analyse.html (stats de toutes les réponses)

-------------------------

Modèle

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

Afficher les résultats dans spip

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

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

<cadre class=’spip ’>

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


</cadre >

Télécharger

Il Pour ça il faut alors connaitre le nom interne de chaque champ dans le formulaire concerné formidable : input_1, ...

Depuis la version 2.6.0, il existe aussi la balise #VOIR_REPONSE{champ}.

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

------------------------------------------------------ (... )

Liste des principaux commits depuis la publication de l’article de doc initial

http://zone.spip.org/trac/spip-zone/log/_plugins_/formidable/trunk?action=stop_on_copy&mode=stop_on_copy&rev=84364&stop_rev=&limit=300&verbose=on

-  @83630 7 weeks toutati
configurer si on veut que les formulaires s’affichent en pages publiques avec l’url de type
spip.php ?page=formulaire&id_formulaire=2&var_mode=recalcul

-  @83529 8 weeks rastapopoulos
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.

-  @81393 5 months rastapopoulos
L’explication est un texte avec des raccourcis SPIP possible, on passe dans propre() (comme déjà dans la saisie d’ailleurs).

-  @81353 6 months cedric
Amelioration de la liste des formulairs : on compte et on permet de trier par le nombre de reponses
+ par defaut les formulaires avec le plus de reponses en tete
(il faudrait peut etre ceux avec les reponses les plus recentes en fait, a voir)

-  @81346 6 months cedric
Statut archive (refuse) pour les formulaires : ils ne sont plus visibles en ligne mais on conserve le contenu et les reponses
+ la balise #FORMIDABLE n’affiche que les formulaires publies (ou prop en preview) dans le site public

-  @81079 6 months cedric
Attention, modification substantielle sur les traitements :

les traitements doivent noter qu’ils ont bien ete executes dans traitements ? pour ne pas etre executes plusieurs fois
un traitement qui veut/doit passer apres un autre peut ne rien faire et rendre la main au premier tour pour laisser l’autre se faire
on refait la boucle 5 fois au maximum pour executer tous les traitements
si des traitements n’ont pas pu etre executes, on declenche un mail au webmestre avec l’erreur et un dump de dans le mail pour ne pas perdre de donnees
si aucun traitement n’a ete execute (defaut de configuration ?) on declenche un mail au webmestre et un dump de dans le mail pour ne pas perdre de donnees

Cette modification entraine une petite incompatibilite sur les traitements perso : ceux-ci seront executes 5 fois et une erreur sera generee si ils ne sont pas modifies pour renseigner traitements ?

-  @80693 6 months camille.sauvage
ajout du bouton « Supprimer toutes les réponses »

-  @80690 6 months cedric
Extensibilite : fournir id_formulaire et id_formulaires_reponse si possible en sortie de la fonction traiter (pour les pipelines)

-  @80617 7 months cedric
Gestion des liens formulaire<->objet :
lors de l’enregistrement d’un objet on reconnait les raccourcis qui inserent un formulaire et on maintient les liens
sur la fiche d’un formulaire on affiche les objets qui l’utilise
sur la fiche d’un objet on affiche les formulaires utilisés
correction du modèle pour ne pas mettre en cache le formulaire dans le site public tout en affichant le formulaire dans l’espace privé
introduction du modèle qui permet d’inserer un formulaire avec une syntaxe courte pour #ID_FORMULAIRE=XX
chaines de langue et styles
recreation des liens formulaires-articles lors de l’import f&t

Pour le moment, on ne rattrape pas les liens sur les formulaires déjà utilisés dans des contenus sur une installation existante de formidable. Pour forcer la mise à jour des liens il suffit d’enregistrer le contenu qui utilise un formulaire

-  @80607 7 months cedric
Pour pouvoir styler et cibler les formulaires, y ajouter 2 classes :
formulaire_formidable_#ID_FORMULAIRE
formulaire_formidable_#IDENTIFIANT

-  @80606 7 months cedric
A l’installation les formulaires importés de f&t ont tous l’identifiant formXX avec XX l’ancien ID de form dans f&t
Du coup le modele recupere le formulaire avec identifiant formXX et assure la compatibilte des contenus existants

-  @80547 7 months cedric
Les actions supprimer ne font que mettre en statut poubelle/refuse, plus de risque de pertes de données à cause d’une action maladroite
on enleve le bouton « Supprimer » sur la page d’un formulaire

-  @80541 7 months cedric
Prise en charge du statut sur les formulaires.
Lors de l’import f&t les formulaires sans réponses sont mis en statut proposé, les autres en publiés

-  @80539 7 months cedric
on ajoute une recherche sur la page des reponses, ça ne marche qu’avec le patch http://core.spip.org/projects/spip/repository/revisions/21176

-  @80537 7 months cedric
Import des donnees des formulaires de f&t à l’installation
bugfix sur breadcrumb des reponses et formulaires non publies
formulaire de recherche dans la page des formulaires
nombre de formulaires et de reponses dans les listes

-  @80535 7 months cedric
a l’installation de formidable, import automatique de tous les formulaires et sondages de forms&tables
(mais il manque la prise en compte du statut, qui serait mieux, et surtout l’import des données, prochain step)

-  @80073 7 months nicolas.dorigny
Ajout d’une date de création du formulaire (nommée date_crea parce que date est un mot reservé mysql)

-  @79458 8 months prigent.yohann
Ajout d’un nouveau champ dans les traitements permettant de spécifier l’adresse email d’un des destinataires comme un des champs du formulaire.

-  @77520 10 months camille.sauvage
Ajout du paramètre de configuration permettant à un auteur de modifier le statut d’une des réponses à un formulaire dont il est l’auteur ou l’un des auteurs. Modifie le comportement par défaut où seul un admin pouvait le faire.

-  @75139 12 months maieul
insérer l’aide mémoire aussi dans la page de config des champs (utile lorsque pourra conditionner les traitements des champs)

-  @73326 15 months camille.sauvage
Ajout de la possibilité d’associer des auteurs à un formulaire. Le choix s’effectue dans la config globale du plugin. Une fois un formulaire créé par un auteur, il en devient auteur et peut ajouter et supprimer des auteurs.
Seul les auteurs associés à un formulaire peuvent en voir les résultats

-  @71598 17 months camille.sauvage
Export de l’analyse des réponses en format CSV

-  @71586 17 months camille.sauvage
possibilité d’autoriser un admin restreint à administrer les formulaires et consulter les résultats... par défaut à ’false’

-  @70610 18 months patfr
Permettre l’annalyse d’un seul champ au lieu du formulaire entier :
Exemple : #INCLUREfond=modeles/formulaire_analyse,id_formulaire,nom=checkbox_1
TODO : si besoin, exploiter les listes du genre : nom=checkbox_1|input_1
(souvent l’analyse de tous les champs n’est pas nécessaire...)

-  @66707 23 months suske
Rustine jQuery pour éviter que les navs html5 compliant n’empêchent la mise à jour à cause des « required ».
TODO : le faire en php pour que ce soit corrigé pour tous... => Jai eu ce problème à nouveau en aout 2014

-  @65632 2 years marcimat
Migration un peu plus vers SPIP 3 avec spip_formulaires_reponses en objet éditorial

-  @65603 2 years marcimat
On permet de choisir l’affichage des statistiques de réponses après la saisie d’un formulaire (et si on a déjà rempli le formulaire et qu’on peut pas resaisir).
On permet de configurer la classe css appliquée sur le modèle des barres de progression des statistiques.