Introduction
L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins avaient déjà été développés précédemment pour remplir cette fonction :
- Forms &Tables, qui n’a pas été complètement porté pour SPIP 2.
- et spip-formulaire créé par artego mais qui n’est 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éveloppeurs.
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éveloppeurs. 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.
Installation
Le plugin nécessite les plugins suivants :
- Bonux : télécharger
- Saisies : télécharger
- Vérifier : télécharger
- YAML : télécharger
- Facteur : télécharger
Il faut installer le plugin jQuery UI pour pouvoir déplacer les champs à la souris pendant la création d’un formulaire.
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}
Pré-remplir dynamiquement les champs d’un formulaire depuis un squelette
À noter que dans un squelette, 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.
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}}Champs oui-non et case unique
Pour rendre obligatoire la réponse « oui » à un champ de type oui-non ou 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 destinataires
formulaire_IDENTIFIANT_accuse.html pour l’accusé de réception du visiteur
Voir aussi sur le wiki
todoFormidable | Formidable, présentation aux Grottes (2010)



Télécharger Formidable
Vos commentaires
# Le 22 février à 11:09, par benolaos
En réponse à : Formidable, le générateur de formulaires
Bonjour,
étrange comportement du plugin lorsqu’on le désactive (je ne parle pas de désinstallation), et qu’on le réactive :
- les formulaires semblent toujours actifs (ils apparaissent dans l’espace public, et les champs de la BDD sont manifestement toujours renseignés)
- dans l’espace privé, par contre, les formulaires ne s’affichent pas (donc impossible de les modifier)
— > auriez-vous une solution pour « retrouver » la main sur ces formulaires ? En vous remerciant...
# Le 22 février à 11:11, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
C’est très bizarre en fait, ça ressemble à un bon gros bug. Mais là comme ça je ne sais pas encore d’où cela pourrait venir (car juste la désactivation ne touche à rien dans la base normalement).
Répondre à ce message
# Le 21 février à 09:25, par Azrak
En réponse à : Formidable, le générateur de formulaires
Bonjour à tous de nouveau,
J’ai encore une question, je tente de masquer voir de supprimer le message suivant quand il y a une erreur dans le formulaire :
« Il y a des erreurs dans les champs ci-dessous, veuillez vérifier votre envoi. »
(je ne veux garder que les messages d’erreur liés au différent champs du formulaire.
J’ai donc tenter de masquer ce message via le CSS : display : none ; ---> sans succès
Savez-vous quelles lignes sont à mettre en commentaire dans le fichier PHP du formulaire pour masquer ce message.
# Le 21 février à 09:55, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Il faut garder ce message, c’est important pour l’accessibilité, notamment quand on a pas une vue d’ensemble du formulaire, par exemple pour les lecteurs d’écran.
Mais tu peux évidement le cacher uniquement en CSS. Tu dis que tu fais « display:none » mais tu ne dis pas sur quel élément... Suffit de regarder la class du conteneur avec Firebug.
# Le 21 février à 10:18, par Azrak
En réponse à : Formidable, le générateur de formulaires
J’entends bien le sujet de l’accessibilité en l’occurrence mon formulaire ne comporte que 2 champs. donc pas de scrolling et de plus je conserve le message d’erreur lié au champs adresse mail.
j’applique le display : none ; à la class reponse_formulaire reponse_formulaire_erreur
# Le 21 février à 10:29, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Euh ça ce sont deux classes qui sont sur le même élément.
# Le 21 février à 12:52, par azrak
En réponse à : Formidable, le générateur de formulaires
Merci beaucoup, j’ai encore appris un truc
Répondre à ce message
# Le 20 février à 10:27, par sirom
En réponse à : Formidable, le générateur de formulaires
bonjour,
VIVEMENT le plugin fonctionnel sous Spip 3
Cordialement,
# Le 20 février à 10:41, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Mais le plugin est fonctionnel sur SPIP 3 (branche « trunk » dans le SVN).
# Le 20 février à 12:00, par sirom
En réponse à : Formidable, le générateur de formulaires
Mouais... galère j’arrive pas a faire fonctionner SCPlugin sur mac
J’attendrai que tu mettes une version en téchargement/install automatique dans spip 3
car pour l’instant celle qui est proposée en DEV ne veut pas s’installer ( elle demande spip-bonux)
Merci encore
# Le 20 février à 14:36, par sirom
En réponse à : Formidable, le générateur de formulaires
Bon ok , j’’ai finalement utilisé svnX pour télécharger les SVN.
J’ai donc mis la main sur spip-bonux 3 .
pour les autres plugins nécessaires au fonnctionnement de formidable ils s’installent tout simplement directement depuis l’interface de spip 3.
Cà fonctionne !
Cordialement,
Répondre à ce message
# Le 19 février à 19:35, par sirom
En réponse à : Formidable, le générateur de formulaires
bonjour,
le plugin est bien entendu formidable ;)
sauf qu’avec le champ date, le datepicker ne s’affiche pas ( l’icone du calendrier est bien présente mais lorsqu’on clique desssus rien ne se passe) le plugin jquery UI est bien activé.
Ai-je omis quelque-chose ?
# Le 19 février à 22:23, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Ben.... disons que... chez-moi-ça-marche. ©
Donc quoi dire ? :)
# Le 20 février à 10:14, par sirom
En réponse à : Formidable, le générateur de formulaires
Pourtant j’utilise formidable sur une install « propre » de SPIP 2.1.12 [18732]
je n’ai donc rien « traficoté ».
Mystère....
Merci pour ta réponse
# Le 20 février à 10:24, par sirom
En réponse à : Formidable, le générateur de formulaires
Bon ce matin çà marche, j’ai effacé le formulaire puis recrée un autre et çà fonctionne !
merci
Répondre à ce message
# Le 18 février à 12:06, par ManuDevil
En réponse à : Formidable, le générateur de formulaires
C’est dommage, j’ai une erreur SQL quand je tente de créer un formulaire. Apparemment, l’activation du plugin n’a pas créé la table correspondante dans la base de données...
# Le 18 février à 14:51, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Me semble-t-il, avant le champ pour commenter il y a un lien en gras « Les choses à faire avant de poster une question ». Non ? :)
# Le 19 février à 13:10, par ManuDevil
En réponse à : Formidable, le générateur de formulaires
Au temps pour moi. Je précise donc :
- SPIP 2.1.0 [15608]
Les plugins :
- CFG 1.16.0
- Le couteau suisse 1.8.57
- Mediathèque 1.6.7
- Spip Bonux 2.3.0
- Thickbox v2 0.3
Ce sont les plugins actifs actuellement. En raison du bug, j’ai désactivé les plugins nécessaire à Formidable, qui étaient ceux proposés dans cette même page.
# Le 19 février à 14:26, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Euh ben c’est l’exact contraire qu’il faut comme information : les versions des plugins dont il est question pour le bug, donc Formidable et ses dépendances.
# Le 19 février à 21:54, par ManuDevil
En réponse à : Formidable, le générateur de formulaires
Un petit dessin valant mieux qu’un grand discours, voilà donc une capture d’écran, avec toutes les infos de configuration des plugins.
Merci de passer du temps sur mon cas.
# Le 19 février à 22:34, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Il faudrait voir la version SVN de Formidable surtout, puisqu’il ne crée pas les tables jusqu’au bout. Il faudrait le désinstaller proprement (plus les tables), le mettre à jour et voir si ça marche.
Car par exemple ce commit http://zone.spip.org/trac/spip-zone/changeset/57654/_plugins_/formidable/branches/v0 corrigeait justement un problème de création de table à cause d’une coquille de ma part.
Répondre à ce message
# Le 14 février à 14:48, par bcolo
En réponse à : Formidable, le générateur de formulaires
Bonjour
Je travaille à un blog associatif dans lequel j’intègre des formulaire pour pouvoir échanger des paniers hebdomadaires. Aucun problème pour créer le formulaire et l’intégrer dans un article via le modèle. Mais c’est ensuite que ça coince : je voudrais récupérer les résultats et les afficher dans la partie publique du site, de manière à ce que tout le monde puisse voir qui propose d’échanger (offreur ou demandeur). Un peu sur le principe du plugin Agenda, où on peut s’inscrire à un événement et où les résultats apparaissent sous le formulaire.
Est-ce possible ?
# Le 14 février à 15:16, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Comme c’est un plugin générique, les réponses sont « abstraites », on peut pas pas préjuger des questionnaires, donc les réponses ne sont pas enregistrées de la même façon qu’un objet éditorial classique, qui a sa table et ses champs.
Le but de ce plugin est avant tout de faire des questionnaires, sondages, et form de contact, les utilisations « détournées » sont un peu plus complexes.
Chaque réponse a une ligne dans la table « spip_formulaires_reponses » et chacun de ses réponses a autant de ligne que de champs dans la table « spip_formulaires_reponses_champs ».
Il y a quelques critères pour faciliter les requêtes (cf le fichier
public/formulaires_criteres.php) et il y a le modèle pour afficher une réponse comme petit exemple (mais il est générique donc il suit bêtement dans l’ordre). Si t’as pas besoin d’affichage particulier, le modèle déjà présent suffit peut-être d’ailleurs. Tu boucles sur les réponses et tu appelles le modèle avec l’identifiant d’une réponse.# Le 14 février à 16:35, par bcolo
En réponse à : Formidable, le générateur de formulaires
Je crois que je n’ai pas tout compris.
J’ai actuellement un formulaire, qui a le numéro 1, et que j’ai appelé dans un article avec le modèle
Pour l’instant, ce formulaire compte deux réponses. Je voudrais afficher ces réponses dans le même article. Mais je ne sais pas avec quel modèle les appeler. J’ai essayé
et formulaire|analyse|id=1>, sans aucun résultat.
# Le 14 février à 16:40, par bcolo
En réponse à : Formidable, le générateur de formulaires
Zut, les balises ne sont pas affichées. Je remplace les < par des ".
Je reprends : j’ai appelé le formulaire avec le modèle "formulaire|formidable|id=1" et je voudrais afficher dans le même article les réponses à ce formulaire (j’en ai pour l’instant deux).
J’ai essayé "formulaire|reponse|id=1" et "formulaire|analyse|id=1", mais rien ne s’affiche.
Comment appeler le modèle qui affiche les réponses ?
# Le 15 février à 10:33, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Essaye plutôt
<formulaire1|analyse>(= normalement appelle du modèle « formulaire_analyse.html » avec « id_formulaire=1 » alors que toi tu appelais avec « id=1 »).Quand au modèle pour une réponse, c’est pour afficher 1 réponse, donc l’identifiant de la réponse :
<formulaires_reponse12>par exemple.Pour faire la liste de toutes les réponses, là il faudrait ajouter un autre modèle.
# Le 18 février à 19:38, par bcolo
En réponse à : Formidable, le générateur de formulaires
OK, je viens d’essayer, ça marche. Le modèle analyse n’a pas d’intérêt pour moi. Le modèle réponse correspond à ce que je cherche à faire, mais évidemment il ne traite qu’une réponse à la fois.
Pour afficher toutes les réponses à un formulaire, ne serait-il pas possible d’utiliser le fichier exporter_formulaires_reponses.php ? Puisqu’apparemment il est dit dedans que le rôle de ce fichier est « d’exporter toutes les réponses d’un formulaire »...
Ceci étant, même si j’arrive à créer un modèle me permettant d’afficher toutes les réponses du formulaire1, par exemple, quid des réponses du formulaire 2 ? Il faudrait dans la balise du modèle que le numéro de formulaire soit indiqué, ce qui n’est pas le cas pour l’instant...
Répondre à ce message
# Le 15 février à 11:54, par noutalg
En réponse à : Formidable, le générateur de formulaires
bonjour,
Je reviens sur ma question d’upload de fichiers. Est-il envisageable d’inclure dans le pluging formidable (je ne sais pas où) le plugins ’formulaire upload’ ? Je ne connais pas assez spip pour répondre à cela et je voudrais juste savoir si c’est une idée saugrenue ou pas.
Car si on regarde juste le module que j’utilise pour ce message, il y a bien la fonction ’ajouter un document’ dans ce formulaire.
# Le 15 février à 12:00, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Ce n’est pas pareil. Là pour le commentaire c’est codé spécifiquement dans le formulaire de forum de SPIP, avec un comportement précis. Pour Formidable il s’agit de développer ça de manière générique, pas juste pour un formulaire précis, c’est un peu plus compliqué. Je dois faire ça fin février ou en mars normalement.
# Le 17 février à 15:34, par noutalg
En réponse à : Formidable, le générateur de formulaires
Je viens de comprendre que votre réponse concernait ma demande. Merçi, j’attendrai donc mars.
bon week end
Répondre à ce message
# Le 17 février à 10:31, par gerard
En réponse à : Formidable, le générateur de formulaires
bonjour,
j’ai un probleme avec l’export des reponses, ca ne marche pas. Le lien utilise est le suivant :
http://localhost/ecrire/?exec=formulaires_reponses&action=exporter_formulaires_reponses&arg=1&hash=475d462f782a97f24a9cffd8ad216e886761ba12
Firefox me repond que le fichier source ne peut etre lu, et il cree un fichier vide (alors qu’il y a des reponses).
Je n’ai aucune erreur dans les logs d’apache ni dans les logs de spip. Il y a un moyen de tracer ce qui se passe ?
merci d’avance,
Répondre à ce message
# Le 15 février à 10:11, par Azrak
En réponse à : Formidable, le générateur de formulaires
Bonjour à Tous,
Déjà félicitation pour ce super plugin, qui est très pratique d’utilisation.
J’ai 2 petites questions :
Quand je valide l’envoi du formulaire, les informations saisies restent dans les champs de texte. Y a t’il une option ou une modification à opérer dans le fichier php pour que le formulaire soit remis à zéro une fois l’envoi effectué ?
Peut on modifier via les CSS l’apparence du texte qui est affiché lors des erreurs de saisie et après l’envoie avec succès du formulaire ?
Merci d’avance.
# Le 15 février à 10:25, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
C’est un bug je crois, déjà signalé mais jamais corrigé.
Ben c’est du HTML non ? Donc tout est stylable par CSS, comme n’importe quoi d’autre. :)
Répondre à ce message
# Le 15 février à 10:00, par Pierroot
En réponse à : Formidable, le générateur de formulaires
Je ne suis pas du tout bon en programmation. Et je voudrai savoir si votre plugin pourrait me servir pour éditer un bulletin d’adhésion en ligne pour un site associatif. Merci de votre réponse.
# Le 15 février à 10:20, par RastaPopoulos
En réponse à : Formidable, le générateur de formulaires
Peut-être, ça dépend du besoin., Si c’est juste pour avoir la liste des gens qui veulent adhérer et recevoir ces demandes par mail et pourquoi pas les enregistrer en base, ça devrait suffire.
Si c’est pour faire des traitements sur ces demandes (en faire ensuite d’autres choses que juste les lister en base comme l’enregistrement par défaut) alors il faudra forcément mettre la main à la pâte (ou trouver quelqu’un pour le faire).
Répondre à ce message