Cette documentation est valable à partir de la version 6.1.0 de Formidable.
Introduction
Historiquement, deux plugins avaient déjà été développés précédemment pour gérer des formulaires :
- Forms &Tables, qui n’a pas été complètement porté pour SPIP 2.
- et spip-formulaire créé par artego mais qui n’était plus maintenu.
La question s’est donc posée : construire sur la base d’un des deux plugins ou repartir de zéro ?
Form &Table, très complet pour les utilisateurs, présentait l’inconvénient d’avoir un côté « fourre-tout » qui le rendait difficilement modifiable et difficile à personnaliser par les dévs.
Il a finalement été décidé de repartir de zéro pour proposer quelque chose :
- de plus facile à utiliser pour les utilisateurs d’une part,
- mais aussi de plus facile à personnaliser pour les développeur⋅euses.
Avec le parti pris de se baser de préférence sur plusieurs petits plugins spécialisés et de tirer parti de la nouvelle norme CVT.
Interface utilisateur
L’utilisation basique de l’interface est abordée dans ce screencast : Mon premier formulaire pas à pas : c’est Formidable !
Appeler mon formulaire
Vous devez appeler le formulaire ayant le nom « formidable », en lui passant en paramètre l’identifiant de votre formulaire.
Dans un contenu
Utilisez le modèle <formulaire>
classique : <formulaire|formidable|id=34>
ou bien <formulaire|formidable|id=contact>
Dans un squelette
#FORMULAIRE_FORMIDABLE{34}
ou bien #FORMULAIRE_FORMIDABLE{contact}
Afficher les résultats du formulaire
Dans un contenu
Utilisez le modèle <formulaire_analyse|id_formulaire=34>
Pré-remplir dynamiquement les champs d’un formulaire
À noter, vous avez la possibilité de surcharger dans l’appel, les valeurs par défaut des champs de votre formulaire. Pour cela, vous devez passer un tableau de nom=>valeur
en deuxième paramètre. Vous pourrez trouver les noms de vos champs dans l’aide-mémoire situé sur la page de configuration des traitements.
Dans un contenu
Le tableau de valeurs dans un paramètre defaut sous forme d’une suite de chaînes « clé,valeur » séparée par des virgules :
<formulaire|formidable|id=contact|defaut=hidden1,valeur,input_5,autrevaleur>
Dans un squelette
Le tableau en deuxième paramètre :
#FORMULAIRE_FORMIDABLE{contact, #ARRAY{nom_du_champ, Ma valeur}}
C’est particulièrement utile pour remplir un champ caché avec une valeur dynamique venant du squelette :
#FORMULAIRE_FORMIDABLE{contact, #ARRAY{hidden_1, #ID_DOCUMENT}}
Autres options utilisable dans le squelette
Il est possible de passer des options comme troisième argument du formulaire, sous forme de tableau (#ARRAY
).
Nom de l’option | Fonction | Type |
---|---|---|
forcer_modif |
Permet de forcer la modification d’une réponse, même si non autorisé | Booléen |
id_formulaires_reponses |
Identifiant de la réponse à modifier | Entier |
no_ajax |
Désactiver l’ajax sur le formulaire | Booléen |
traiter_email_destinataires |
Destinataires pour le traitement | Tableau (#ARRAY ) d’emails ou liste d’emails séparés par des virgules |
traiter_email_destinataires_methode |
Indique si traiter_email_destinataires doit remplacer les emails déjà configurés dans le traitement ou les ajouter |
Au choix 'remplacer' ou 'ajouter' (valeur par défaut) |
url_redirect |
Url de redirection | Chaine |
Exemple d’un formulaire Formidable dont l’identifiant est contact_libre et dont l’email destinataire est dans le champ email de la table de votre objet #EMAIL de la table spip_contacts …
.
<div class="ajax">
#FORMULAIRE_FORMIDABLE{contact_libre,'',#ARRAY{traiter_email_destinataires,#EMAIL}}
</div>
Case unique
Pour rendre obligatoire la réponse oui à une case unique (pour la validation de conditions d’utilisation par exemple), il faut simplement rendre le champ obligatoire.
Courriels de notification
Une option des traitements proposés permet d’envoyer un mail de notification automatiquement, à chaque saisie d’un formulaire.
Le squelette par défaut employé pour la mise en forme de ces mails est plugins/formidable/notifications/formulaire_email.html
. Vous pouvez le copier dans le répertoire ’notifications’ de votre squelette et l’y modifier à votre guise. Cette modification vaudra pour tous les formulaires.
Pour utiliser un squelette spécifique pour les mails de notification de l’un seulement des formulaires définis avec Formidable, il suffit d’ajouter son squelette dans le répertoire ’notifications’ de votre dossier squelettes, mais en ajoutant l’identifiant.
IDENTIFIANT étant l’identifiant du formulaire défini dans Formidable, les squelettes doivent se nommer :formulaire_IDENTIFIANT_email.html
pour le mail aux destinatairesformulaire_IDENTIFIANT_accuse.html
pour l’accusé de réception du visiteur
Conservation des IP
Les adresse IP des personnes répondant aux formulaires sont stockées en base de donnée. Depuis la version 1.5 (SPIP 3) / 0.7 (SPIP < 3), elle sont automatiquement hashé, de manière à ce que l’IP ne soit plus reconnaissable, au bout de 124 jours (environ 4 mois).
Pour changer ce délai, vous pouvez redéfinir la constante _CNIL_PERIODE
dans votre fichier mes_options.php
.
Par exemple :
define('_CNIL_PERIODE', 24*3600);
permet de hasher les IP toutes les 24 heures.
Si vous voulez désactiver le hashage, mettez la valeur à 0.
Envoi de fichiers
Lire l’article complémentaire : Envoyer des fichiers avec un formulaire Formidable.
Mise en forme des saisies
Le plugin ne prévoit aucun réglage de mise en forme des saisies : c’est à chaque squelette d’avoir ses styles. Il respecte cependant la convention d’écriture des formulaire SPIP. Il permet d’ajouter des classes spécifiques sur les saisies.
Affichage des réponses sous forme de tableau
Le plugin Formidable Tablesorter permet d’afficher sous forme de tableau les réponses, dans l’espace privé, avec possibilité de tri et de filtre.
Voir aussi sur le wiki
- Complément de doc et exemples sur les boucles et balises de formidable
- Exemples de stylage CSS d’un formulaire Formidable
- todoFormidable
- Formidable, présentation aux Grottes (2010)
Discussions par date d’activité
812 discussions
Toujours dans le cadre de l’exploration de Formidable, j’ai eu une surprise avec le champs Insérer le courriel de l’envoyeur dans le champ « From ». Je m’explique...
Après avoir activé l’option « Poste le résultat du formulaire par courriel à une liste de destinataires. » et Insérer le courriel de l’envoyeur dans le champ « From » tout marche bien pour le mail envoyé aux responsables du site.
Mais lorsque j’active l’option Accusé de réception, le champ Reply-to du mail envoyé au déposant contient...l’adresse email du déposant. C’est curieux car du coup il ne peut que répondre à lui même.
Est-il possible d’avoir toujours l’adresse email du Webmestre du site dans les champs « From » et « Reply-to » pour l’accusé de réception ?
Salut,
existe t-il du nouveau là dessus ? Quelqu’un a t-il trouvé la soluce ?
Sur les précédentes versions ce souci n’existait pas.
En janvier j’ai fait une mise à jour et depuis c’est la cata. Grosse perte de temps à copier coller l’adresse de l’expéditeur pour pouvoir lui répondre.
Comme toi je me réponds à moi même....
RESOLU....
Pb de facteur. Je viens de le mettre à jour (1.8.9 et plus de pb...)
Répondre à ce message
Bonjour,
quel serait la balise à autoriser pour CK editor svp ?
Merci
2 h le temps de comprendre que c’était CK editor qui bloquait et de chercher le bon élément à noter et... je viens de trouver :
rajouter dans option avancée : id
Répondre à ce message
Bonjour,
mon site est en spip 2 et utilise le plugin Formidable. Je souhaiterais pourvoir choisir l’adresse de réponse de l’accusé de réception. Car actuellement c’est l’adresse de l’admin qui a créé le formulaire qui apparait. J’ai essayé de changer l’adresse de du compte admin mais ça ne change rien. J’ai également créé un nouveau formulaire à partir du compte admin avec la nouvelle adresse mais là aussi ça ne changer rien.
Auriez-vous une astuce ?
Merci par avance.
Mathieu.
Ce n’est pas le compte d’un utilisateur mais le compte configuré pour l’envoi des courriels, et qui par défaut est l’adresse du webmaster (dans « Identité du site »), qui elle-même par défaut est l’adresse de l’utilisateur qui a installé le site.
À configurer donc soit explicitement dans le plugin Facteur si on l’utilise, soit dans Identité du site.
Répondre à ce message
Bonjour,
Tout d’abord bravo pour ce plugin très intéressant.
Pour ma part, l’installation et son fonctionnement se passe très bien.
j’ai juste une remarque qui a été déjà précisée dans le forum en tout début et qui n’a jamais eu de réponse. Puis j’ai été étonné de ne voir personne l’évoquer par la suite.
- > Quand on valide un formulaire en ayant oublié de remplir un champ obligatoire : tous les champs se retrouvent vidées lors du réaffichage du formulaire avec la précision comme quoi c’est obligatoire. L’utilisateur n’a donc pas intérêt à se taper la saisie de son formulaire pour se voir tout refaire.
je vais essayer de voir comment régler ce problème quitte à modifier le code mais si vous avez la solution, merci de votre grande gentillesse de la faire partager.
Bonne journée
Denkam
Si personne ne l’a ré-évoqué, c’est peut-être parce que ça ne fait pas ça « dans ce plugin » mais seulement « chez deux personnes ». :)
Car : chez-moi-ça-marche. ©
Faut trouver un moyen de reproduire le problème pour pouvoir le résoudre.
Merci d’avoir répondu rapidement.
J’ai creusé un peu plus l’affaire. Il s’avère que j’ai la version 5.1 de PHP.
Mon problème rejoint en fait plusieurs signalement dans le forum avec les problèmes de « sans réponses » affiché dans résultat alors que le reste fonctionne (enregistrement en base, et envoies des données par mail).
Je vais activer l’affichage des erreurs PHP pour voir si c’est mineur à corriger ou pas car je ne me vois pas demander une MAJ de PHP sur le serveur d’entreprise alors que je ne suis pas le seul programme dessus.
Bonne journée.
Ah, sans être sûr peut-être bien que ça vient de là, car il me semble que la 5.1 est passablement buguée et qu’elle n’a d’ailleurs durée que très peu de temps. Il vaut mieux utiliser au moins la 5.2 je crois.
C’est confirmé.
Suite au passage à la version 5.2 minimum (dans mon cas présent le 5.3) -> le probleme :
- des champs « sans réponse »
- et le probleme du formulaire qui se vide lors d’un oubli de champs obligatoire
DISPARAIT.
Répondre à ce message
Bonjour,
Petit bug de structure HTML qui c’est glissé dans le code :
> formulaires > formidable.html > ligne 8 > la fermeture de balise
</h3>
devrait être avant la fermeture du crochet.Bonne journée,
françois
Corrigé merci.
... merci à toi pour cet outil ;-)
Répondre à ce message
Bonjour,
Où puis-je trouver de la doc pour connaître la syntaxe à utiliser dans le fichier formulaire_IDENTIFIANT_accuse.html ?
Merci
Il n’y a pas de documentation spécifique pour ça. Ya le code de l’accusé par défaut, à modifier au besoin.
D’accord. Cependant, l’accusé par défaut contient seulement ceci pour afficher les réponses :
Aurais-tu un exemple pour afficher une réponse en particulier ? Ainsi, je pourrais construire le courriel que je veux, avec les réponses de mon choix.
Merci pour ta réponse rapide !
Je découvre avec bonheur ce plugin. Yes !
Je me joint à la demande de maxCSA : dans la page Configurer le formulaire, il existe un champ Message de retour qui peut être renseigner. C’est pratique pour personnaliser le message qui sera affiché à l’utilisateur après l’envoi d’un formulaire valide.
Toutefois, c’est le même contenu qui est utilisé dans le message du mail envoyé à « l’envoyeur ». Or ces deux messages peuvent (et doivent dans certains cas) être différents.
A t-il été envisagé de rajouter un champ Message de l’accusé de reception dans la page « Configurer les traitements » ?
Si l’idée vous paraît bonne, je veux bien donner un coup de main....
Dans certains cas ça peut être différent, mais dans la majorité des cas le même message est suffisant. Pour les cas à part, l’accusé de réception peut déjà être personnalisé, soit pour tous les formulaires (en surchargeant le squelette par défaut), soit un par un (en ajoutant l’identifiant dans le nom du fichier, comme expliqué dans la doc plus haut). Donc cela permet de personnaliser l’accusé pour les quelques cas où on veut un truc différent.
Ça me paraîtrait dommage d’alourdir l’interface avec un champ supplémentaire utilisé pour seulement peu de cas, de temps en temps.
Ok. J’ai effectivement résolu la question avec une simple surcharge. Merci
Répondre à ce message
Salut, pour les champs « date » est-ce qu’il serait possible d’avoir une extension plus grande que 2003-2023 (typiquement pour date de naissance)
merci
Les saisies ne sont pas du ressort de ce plugin mais du plugin Saisie. Tu parles de quelle saisie d’ailleurs (je crois qu’il y en a plusieurs pour les dates en plus, je ne sais plus) ?
Bonjour
as tu trouvé la solution pour étendre la plage des dates ?
J’ai aussi besoin de pouvoir définir des dates de naissances.
J’ai parcouru les fichiers des plugins Saisie et Formidable mais je n’ai pas trouvé grand chose en rapport avec Date :(
Répondre à ce message
Bonjour,
je n’arrive pas à avoir le choix de Destinaites dans la liste déroulante. Elle reste vide quoique je fasse dans la configuration de mes champs. De plus comment utiliser une balise de type @nom@ dans les Destinataires supplémentaires ? Actuellement cela génère une erreur de format, le champs doit etre configuré pour tester le pattern d’un email.
Je souhaite donner au visiteur la possibilité de sélectionner la personne à contacter dans une liste.
Merci
Help Help Help ! :D
Chez-moi-ça-marche. ©
Je sélectionne un ou plusieurs auteurs dans la config du champ, et ensuite ça fait une liste.
Pour les destinataires supplémentaires, c’est une suite d’adresses email séparées par des virgules. Mais c’est marqué dans l’explication du champ de config je crois.
Pour ma part le champs reste désespéremment vide.
J’ai créé dans mon formulaire un champs de type lsite , dans lequel j’ai attribué des clef / label contenant des email / nom de personne.
Logiquement une fois le formulaire validé, je devrais retrouver ce champs dans la liste Destinaire non ? Cela permettant au visiteur de sélectionner dans cette liste le nom du contact.
l’autre screenshoot
screenshoot
Euh non non, il n’a jamais été question de ça dans ce plugin. Il y a un type de champ nommé explicitement « Destinataires » et qui permet de choisir parmi des utilisateurs du site (quitte à en créer pour ça qui ne serviront à aucun humain particulier).
alors je n’ai pas bien compris la notion de : Choisissez le champ qui correspondra aux destinataires du message. :(
Du coup si je souhaites proposer le choix du destinataire, il me créer plusieurs auteurs, c’est bien ça ? Actuellement j’ai deux auteurs sur ce site, mais le champs Destinataires, dans Configurer les traitement est toujours vide.
je cherche toujours :(
Ben j’ai déjà expliqué précédemment, il faut ajouter un champ de type Destinataires pour que les gens choisissent.
Merci, j’ai enfin compris et je viens de découvrir le champs destinataire... désolé pour la perte de temps :s
Répondre à ce message
Bonjour,
Je dois sauvegarder ma base de données et comme j’ai autrefois utilisé forms & tables je souhaite connaitre les tables à sauver pour le plugin formidable ?
Merci de votre compréhension :)
JPA
spip_formulaires***
Cela dit, quand on sauve une base, c’est mieux de procéder par exclusion que par inclusion. Cad pas dire je vais sauver cette table + cette table + etc. Mais plutôt sauver TOUTES les tables, sauf telle ou telle exceptions (par ex toutes sauf la table des stats qui prend beaucoup de place). Le mieux étant de tout sauver.
ok, complétement d’accord : j’aurais pu demander qu’elles sont les tables de Forms & Tables afin de les décocher mais c’était peut être gonflé de demander cela ici ? ;-)
(Les forums sur forms et tables ne sont plus réactifs)...
Donc si quelqu’un peut répondre à cette question reformulées , qu’il en soit remercié !!!
Répondre à ce message
hello,
ce plugin fonctionne-t-il sans jquery ?
Dans la partie publique ? Si vraiment tu le souhaites je suppose que oui, ça génère un formulaire basique comme SPIP quoi. Par contre pas de validation en AJAX du coup.
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 :
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.
Suivre les commentaires : |