Formidable, le générateur de formulaires

Un générateur de formulaires facilement configurable pour les non-informaticiennes et facilement extensible pour les développeur⋅euses.

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

Options possible comme troisième argument de #FORMULAIRE_FORMIDABLE
Nom de l’optionFonctionType
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 destinataires
formulaire_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)

Discussion

812 discussions

  • 2
    sebspip

    Bonjour,
    je souhaite modifier le squelette formulaire_email.html pour envoyer les champs sous forme de tableau dans le mail.
    Cela est il possible ?

    Merci

    • Possible mais… un peu compliqué. :)

      Par défaut tout est fait automatiquement et non pas champ par champ, puisque par défaut on ne connait pas le formulaire. Ça utilise #VOIR_SAISIES qui prend l’ensemble du formulaire et qui génère automatiquement les vues de chacun des saisies une par une.

      Si on veut soi-même afficher telle ou telle vue de saisies, il n’y a pour l’instant pas de truc très très simple (b_b a galéré en début de semaine avec ça aussi). On a avait parlé sur la liste aussi ya quelques années. Dans cette conversation :
      http://thread.gmane.org/gmane.comp.web.spip.zone/20223/focus=20278

    • sebspip

      Oki, merci pour la réponse !

    Répondre à ce message

  • 1

    Bonjour RastaPopoulos,

    Actuellement lors d’une erreur de remplissage de champs, le message d’erreur apparait entre le LABEL et l’INPUT dans le code html.

    Ce qui dans mon cas décale la mise en forme CSS de mes formulaires.

    Quel est le fichier qu’il faut modifier pour déplacer les messages d’erreur APRES les INPUT et ainsi pallier au problème de positionnement que je rencontre ?

    Merci de ton aide.
    Cdt.
    Cloud

    Répondre à ce message

  • 1

    Hello,

    J’utilise un formulaire inclus dans un article grâce au modèle. Le formulaire est configuré pour afficher les valeurs après la soumission, et interdit aux visiteurs de répondre plusieurs fois.

    Ça marche plutôt bien, mais là, quand on fait F5 pour actualiser la page, le formulaire est reposté :( une idée ?

    • Haha, effectivement, le test qui vérifie si on affiche ou pas est dans charger() il me semble. Or charger() est appelé après verifier() et traiter(), donc si on fait F5, ça relance le formulaire, comme pour toutes les requêtes POST dans une page HTML.

      Je suppose qu’il faudrait recopier le même test dans traiter(), et ne rien commencer si on a pas le droit.

    Répondre à ce message

  • 4
    CloudGirofle

    Bonjour Rastapopoulos (merci a Tintin) :)

    Tout d’abord merci pour le plugin il est vraiment pratique.

    Petit point, qund on personnalise le style des formulaire, il y a dans ton fichier fomidable.html, à l a ligne 47, un
    en trop.

    Car peut importe le style posé sur le formulaire, c’est un espace qui du coup ne peut être géré en css, mais seulement en suppression dans ton fichier HTML, ce qui signifie que l’on perd notre modification dès la mise à jour.

    Dans le cadre ou l’on souhaite nativement cet espace, l’apposition d’un margin ou padding bottom sur l’élément du dessus serait sans doute plus approprié.

    Merci et très bonne continuation à toi.

    CloudG

    • Je n’ai pas réussi à comprendre de quoi tu parlais, ni même de quel ligne du fichier. À la ligne 47 actuellement il y a l’appel d’un modèle.

    • CloudGirofle

      OK je modifie l’explication :

      Dans le fichier /plugins/auto/formidable/v1.9.1/formulaires/formidable.html

      en fin de fichier tu as :

          [(#EDITABLE|non)
              [(#ENV{formidable_afficher_apres}|=={valeurs}|oui)
                  #VOIR_SAISIES{#ENV*{_saisies},#ENV}
              ]
              [(#ENV{formidable_afficher_apres}|=={rien}|oui)
              ]
              [(#ENV{formidable_afficher_apres}|=={stats}|oui)
                  #MODELE{formulaire_analyse,id_formulaire=#ENV{id}}
              ]
          ]
          <br />
      </div>
      <//B_remplacer_le_formulaire>

      il faudrait simplement retirer le <br/>, car il génère un espace qu’au niveau CSS on ne peut pas retirer si l’on souhaite que le bouton de validation soit coller au bord du conteneur formulaire.

      Si tu as vraiment besoin d’un espace on peut compenser par une déclaration css de type margin ou padding.

      Ci joint une capture de ma page, qui en présence du retour chariot ne me permettrait pas de coller mon bouton au bas du formulaire. Dans la réalisation je l’ai supprimé.

    • Nickel Merci :)

      Bonne soirée.

    Répondre à ce message

  • 15

    Bonjour,

    Le plugin a été installé sur notre site sous SPIP (http://provaltis.com) mais il ne semble pas fonctionner.

    J’ai l’erreur suivante quand je clique sur Édition / Formulaires :
    Erreur SQL 1146
    Table ’C09980_provaltis.spip_formulaires’ doesn’t exist
    SELECT ’’, formulaires.id_formulaire, formulaires.titre, formulaires.identifiant FROM spip_formulaires AS formulaires ORDER BY formulaires.titre

    Auriez-vous une idée du pourquoi de cette erreur / de comment la résoudre ?

    Merci !

    • Si la table n’existe pas, c’est que le plugin ne s’est pas bien installé. Il faut peut-être le retélécharger et recommencer l’installation à zéro.

    • Le plugin a été réinstallé, l’erreur est toujours présente (voir capture d’écran).

    • Oui donc il y a un problème lors de l’installation. Tu l’as pris où le plugin, depuis le ZIP ici ? En SVN ? Et surtout il faut regarder dans le dossier tmp/log de SPIP, s’il y a des erreurs SQL pile au moment de l’installation dans le fichier mysql.log (si on est en mysql).

    • bonjour,

      le plugin a été téléchargé en zip.

      Voici les erreurs générées par l’installation

      Mar 03 11:05:30 212.198.251.71 (pid 27274) :Pri:ERREUR : Table ’C09980_provaltis.spip_formulaires’ doesn’t exist - SHOW CREATE TABLE spip_formulaires
      Mar 03 11:05:30 212.198.251.71 (pid 27274) :Pri:ERREUR : Table ’C09980_provaltis.spip_formulaires_reponses’ doesn’t exist - SHOW CREATE TABLE spip_formulaires_reponses

      Merci

    • Ce n’est pas pendant l’installation ça, c’est après. Le mieux pour voir c’est d’être déjà prêt à installer (avec le bouton devant soi), puis supprimer les logs, appuyer sur le bouton Installer, ne rien faire d’autre et regarder les logs mysql.log. Si la table n’a pas pu se créer, il y a forcément une erreur SQL de création de la table.

    • C’est exactement ce que j’ai fait. J’ai refait la même opération et j’obtiens le même résultat.

    • Bonjour,

      Avez-vous une idée de la raison pour laquelle les tables ne sont pas créées ?

      Cordialement

    • Non aucune idée, et si je ne peux pas reproduire ou trouver des messages d’erreurs explicites, je ne peux pas vraiment en dire plus.

    • Dans quel fichier faut-il regarder pour voir ce qui ne va pas (endroit où sont censées être créée les tables) ?

      Merci

    • Bonjour !

      Notre développeur a finalement réussi, en créant les tables à la main - le plugin fonctionne super bien en tous cas :-) (visible ici : http://provaltis.com/Formulaire-d-inscription )

      Petit souci : le bouton affiche comme label « Se connecter », ou est-ce possible de le modifier pour mettre à la place « Enregistrer » ?

      Merci !

    • Je ne sais pas d’où sort ce bouton « se connecter », il n’existe absolument pas dans le plugin en tout cas. Une surcharge de squelette qui traine quelque part dans un dossier ?

    • Le bouton de validation dans le code :
      http://zone.spip.org/trac/spip-zone/browser/_plugins_/formidable/trunk/formulaires/inc-formidable-boutons.html

      Ou alors c’est la chaîne de langue « bouton_validation » qui est surchargée…

    • Que voulez-vous dire par « le bouton de validation dans le code ... » ?
      Que faut-il modifier ?

      Merci

    • Ben rien justement, j’ai pointé le lien vers le fichier qui contient le bouton de validation des formulaires de Formidable. Et ce fichier ne contient absolument pas « se connecter » à moins que Chez Vous, il y ait une surcharge de ce bouton.

    • Aucune trace de ce fichier de mon côté.
      Aucun répertoire nommé trunk

    Répondre à ce message

  • 4
    Raphaël

    Bonjour,

    Tout d’abord, merci & bravo pour ce plugin.

    Sur un SPIP 3.0.16 et la dernière version du plugin de Formidable (et aucun autres) : les mails me parviennent mais sont toujours classés en spam, probablement et entre autres parce que l’expéditeur reste sur « expéditeur inconnu » : j’obtiens un warning « Invalid address : Array » lors de la validation de mon message en front.

    j’ai pourtant ajouté un champ destinataire au formulaire, plus configuration des traitements apportés au formulaire :

    -  Destinataires = « Destinataires »
    -  Destinataire présent dans un des champ des formulaires = « Destinataires »
    -  Courriel de l’envoyeur = « Destinataires »

    Je n’ai qu’une seule adresse de destination dans « Destinataires ». J’ai essayé toutes les options possibles (à priori) depuis l’interface du plugin mais rien n’y change...

    Un petit coup de main / d’aide est-il possible ? Merci !

    Raphaël

    • Raphaël

      De retour : Si je choisis un ’destinataire / auteur spip’, impossible de récupérer l’adresse email de son compte comme envoyeur : est-ce normal ?

      Après plusieurs tests, j’ai du ajouté un champ caché à mon formulaire contenant l’adresse de l’envoyeur afin de pouvoir le récupérer dans les traitements comme adresse d’envoyeur. Ok mais curieux : mettre une adresse email ’en clair’ sur un formulaire... n’est-ce pas un provoquer un peu les robots spammeurs ?

      Comment faire pour retirer ce champ dans le mail envoyé : avec le fichier formulaire_email.html, je ne vois pas comment ... est-ce que quelqu’un aurait une piste là dessus ?

      Merci...

    • Si jamais je comprends bien ce que tu dis, je ne comprends pas le sens. L’envoyeur, c’est celui qui envoie le message, donc le visiteur en cours qui utilise le formulaire. Le champ « envoyeur » sert à donner le champ contenant SON (au visiteur) adresse. Cette dernière étant mise dans l’entête Reply-To ensuite, pour pouvoir répondre rapidement à l’envoyeur.

    • Raphaël

      Effectivement, j’ai revu ma copie et ça fonctionne... oh ! ^

      Je partais du ’principe’ que l’envoyeur était le site, afin notamment d’éviter que le mail termine dans les spams (+ l’adresse de l’expéditeur incluse dans le mail envoyé), mais maintenant que je te lis, je trouve ce que tu dis ... comment dire... logique, notamment du point de vue du reply-to ! ^

      Merci pour ce ré aiguillage, cette réponse rapide (et ce très bon boulot).

      Oserai-je une dernière question : comment masquer un résultat dans le mail envoyé, genre tout à fait au hasard les destinataires par exemple ? Le fichier formulaire_email n’est pas très intuitif ... ;)

    • Les réponses sont générés tout d’un bloc, pas champ par champ, donc effectivement si on veut sélectionner seulement tel et tel champ dans la réponse, il faut faire autrement, c’est un peu plus compliqué.

      Plus rapidement, peut-être y a-t-il moyen de le masquer en CSS uniquement avec une balise <style> qui ferait un « display:none » sur le bloc correspondant au champ Destinataires… Je n’ai pas le HTML généré en tête, il faudrait vérifier.

    Répondre à ce message

  • 3

    Bonjour,
    Existe-t-il une possibilité (qui m’intéresserait) de pouvoir uploader des fichiers (dans mon cas gif/jpg/png) à partir d’un formulaire Formidable ?
    Merci d’avance,
    Philippe G.

    • Bon, OK, les grandes douleurs sont muettes. Mais y a-t-il un moyen quand même de faire quelque chose sur le sujet et comment ?
      Re-merci d’avance ;-)
      Philippe G.

    • Nope, toujours pas. Ça fait bien partie de la todo depuis le tout début pourtant. J’ai des pistes, mais malheureusement en ce moment je n’ai vraiment pas du tout le temps de m’y pencher.

    • Merci ! Et bon courage :-)

    Répondre à ce message

  • 12

    Bonjour,
    J’utilise ce plugin qui est formidable, mais j’ai un souci en recupérant une adresse email en champ caché. Je m’explique :
    1/ J’ai un champ email qui contient une adresse email ou deux adresse séparé par une virgule
    2/ dans mon formulaire j’ai configuré un input hidden qui doit contenir l’adresse destinataire qui est en réalité est mon champ email
    3/ dans mon squelette j’assaie de recupérer l’adresse destinataire comme ca :
    #FORMULAIRE_FORMIDABLE{4, #ARRAY{hidden_1, #MAIL}}
    #MAIL recuper adresss yahoo.fr (@ s’affiche pas) alors j’ai une erreure adress invalid, si je met un filtre |propre même chose. Alour mes questions sont les suivantes :

    a/ comment faire pour que #MAIL recupère la bonne adresse et envoie le formuulaire correctement ?

    b/ Comment faire pour que si #MAIL contient deux adresses séparé par une virgule le formulaire part sans problème ?

    c/ comment faire pour avoir une copie cachée de l’envoi du formulaire ?

    Merci de m’aider pour ces 3 questions....

    • Il vient d’où ton champ ? Je ne sais pas répondre à « a » alors que je ne sais même pas ce que c’est que cette balise.

      Il faudrait d’abord tester le contenu de #MAIL en dehors, avec par exemple [(#MAIL|var_dump)] ou bien <pre>#MAIL</pre>.

      Pour « c » ça peut être dans la config du Facteur, il y a une option « copie cachée » où on peut mettre une adresse. Mais c’est global à tout le site, pas juste pour un seul formulaire.

    • Merci pour votre réponse rapide,
      LE champ EMAIL est un champ de la table spip_articles, pour chaque article le champ email peut avoir une adresse ou deux adresse séparé par une virgule. Dans mon formulaire je dois recupérer les adresses pour l’envoie. j’ai configuré formidable pour que le hidden_1 représente les destinataires du formulaire

      c’est pourquoi je le recupère comme ca :
      #FORMULAIRE_FORMIDABLE{4, #ARRAY{hidden_1, #MAIL}}

      Alors je reviens à la question a/ et b/ aussi :)
      Merci

    • Oui mais je disais qu’il fallait d’abord tester le contenu de la balise en dehors de toute utilisation. Avec un var_dump() ou dans une balise « pre ». T’as pas un truc genre mailcrypt ou couteau suisse qui enlèverait automatiquement l’arobase ? En tout cas il faut déjà tester le contenu brut de cette balise.

    • J’ai testé le contenu de la balise et c’est NULL qui s’affiche pour un var_dump() et rien pour la balise « pre »...J’ai vu effectivement que l’option mailcrypt du CS est activé. J’espère qu’il existe une solution :) ? Que faut il faire ?
      Merci

    • Ben déjà désactivé mailcrypt, et voir ce que ça retourne, ça me paraitrait logique. :)

      Mais si ça retourne carrément « null », c’est que la balise ne retourne rien du tout du tout… En tout cas pour le coup, ça n’a rien à voir avec Formidable. Il faut déjà que tu arrives à faire marcher ton champ ajouté (avec champs extra ?) avant d’essayer d’en faire quoi que ce soit autre part.

    • je pense que c’est bon, j’ai mis le filtre |mailcrypt et les mails partent...mais je ne sais pas si c’est sure à cause des attaques spam de mettre ce filtre...

    • Bonjour dans mon formulaire_mail.html de notification comment faire pour séparer cette ligne en
      Votre nom : Manou je cherche a affiché « votre nom » et « Manou » comment divisé ce code ??

      [(#GET{saisies}|table_valeur{input_2}|saisies_generer_vue{#GET{#ENV*{saisies}, 
      #ENV*{valeurs}}})]

      Pour finir comment styler cette page de formulaire_mail ? mettre un css

      MErci

    • Le squelette par défaut est un squelette minimaliste, mais tu peux parfaitement le surcharger pour faire un vrai mail html complet, avec « head », « body », et donc une balise « style » dans le « head », etc. En CSS tu pourras facilement faire ce que tu veux (mettre tout sur une ligne ou mettre tout ligne par ligne).

    • Bonjour,
      est ce possible d’afficher uniquement dans le mail de notification
      « Paul Maurice » a envoyé.... au lieu de
      Votre nom
      Paul Maurice
      parceque ce code affiche votre nom paul maurice

      [(#GET{saisies}|table_valeur{input_2}|saisies_generer_vue{#GET{#ENV*{saisies},
      #ENV*{valeurs}}})]

      MErci de votre aide

    • Personne n’a une réponse ?? J’ai fais ceci mais ca me renvoie le dernier formulaire enregistré dans la base de donnée et non pas le formulaire que je viens d’envoyer

      <BOUCLE_reponse(FORMULAIRES_REPONSES){id_formulaire}{par date}{inverse}{0,1}>
      <BOUCLE_reponse_champ2(FORMULAIRES_REPONSES_CHAMPS){nom=input_2}{id_formulaires_reponse}> #VALEUR</BOUCLE_reponse_champ2>
      </BOUCLE_reponse>
    • Le traitement « email » et le traitement « enregistrer » sont séparés et peuvent être utilisé indépendamment l’un de l’autre. Il n’est donc pas possible de se baser sur ça pour récupérer la réponse. Dans le squelette de mail, les valeurs sont dans #ENV{valeurs}.

    Répondre à ce message

  • 2

    Bonjour,

    Quand j’ajoute un champ Explication avec une mise en forme du texte (mise en Bold), l’analyse des réponse affiche en lieu et place du champ explication le texte avec les raccourcis SPIP (à savoir les doubles accolades pour du bold).

    françois

    Répondre à ce message

  • 2

    Bonjour,

    Merci pour ce plug-in qui apporte la simplicité d’utilisation au quotidien.
    Je bloque sur un problème depuis quelques jours. Si quelqu’un à une solution, cela m’éviterait de perdre des données.
    Voilà les termes de mon souci.
    Je demande aux internautes de remplir le formulaire de la partie « Contact » en choisissant le type de contact qu’ils souhaitent, à savoir au moins un type obligatoire :

    -  par e-mail
    -  par téléphone
    -  par adresse postale

    Un choix avec des cases à cocher. Jusque-là pas de soucis. Mais lorsque je crée les trois champs pour enregistrer ces différentes données, s’ils sont avec l’option « obligatoire », lorsqu’ils sont vide, le formulaire ne peut pas se valider.

    Ce qui serait souhaitable, c’est que les types de contact choisis dans le choix multiples provoquent l’apparition des champs et que ceux qui sont sélectionnés soient alors obligatoires uniquement lorsqu’ils apparaissent... Est-ce possible ?
    Peut-on avoir une condition sur l’obligation comme sur la visibilité du champ ?
    Merci de votre aide.
    Marc

    • Bonjour,

      Je suis dans le même cas que toi : un champ obligatoire sous condition.
      Existe-il une solution à cette situation ?

      Merci d’avance ! Ce plugin reste vraiment très performant !

      Nicolas

    • En théorie, il est normalement possible de le faire en utilisation la fonctionnalité "affichage conditionnel" (onglet Affichage). En effet, il me semble que lorsqu’un champ n’est PAS afficher, et bien même s’il est configuré comme obligatoire, alors son obligation ne s’applique pas lorsqu’il est caché (il me semble hein, et si ce n’est pas le cas c’est de toute façon à rajouter à la todolist car c’est ce que ça devrait faire).

      Après, vu que c’est une liste de case à cocher (et donc un tableau au final), je ne connais pas la syntaxe qu’il faut mettre dans les autres champs input. Normalement il faudrait dire « lorsque @checkbox_1@ contient ’email’ » pour conditionner l’affichage de l’input de mail, par exemple. Mais de tête je ne sais pas ce qu’il faut écrire…

      À réfléchir, en tout cas c’est une piste.

    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 :

  • 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