SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 295 visiteurs en ce moment

Accueil > Interactivité, échanges > Formulaires > Formidable > Formidable, le générateur de formulaires

Formidable, le générateur de formulaires

23 janvier 2012 – par RastaPopoulos – 2051 commentaires

159 votes

Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs.

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 :

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}

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

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 :

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

Voir aussi sur le wiki

-  Complément de doc et exemples sur les boucles et balises de formidable
-  todoFormidable
-  Formidable, présentation aux Grottes (2010)

Voir en ligne : http://plugins.spip.net/formidable

Dernière modification de cette page le 21 juillet 2016

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 20 janvier à 14:45, par PRX En réponse à : Formidable, le générateur de formulaires

    Amélioration ?
    Bonjour , je cherche à paramétrer et supprimer les 3 lignes envoyées dans l’email de confirmation à celui qui poste :
    « Envoi via le site MONSITE
    Vous pouvez voir cette réponse sur cette page.
    Vous pouvez gérer l’ensemble des réponses sur cette page. »

    Comment est-ce possible SVP ? Merci d’avance
    (MAJ de V2.18.1 vers 2.18.2 sans soucis au passage)

    • Le 20 janvier à 14:53, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Il te faut surcharger le fichier notifications/formulaire_email.html du plugin Formidable, en le recopiant dans le dossier notifications de ton dossier squelettes et en modifiant les lignes finales.

    • Le 20 janvier à 14:54, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Ps : personnellement je trouve ces liens bien pratiques…

    • Le 20 janvier à 14:56, par Maïeul En réponse à : Formidable, le générateur de formulaires

      A mais ces lignes ne sont présentes que pour les gens qui reçoivent toutes les réponses du formulaire, pas dans l’accusé de réception… ou alors il y a un bug quelque part.

    • Le 20 janvier à 15:17, par PRX En réponse à : Formidable, le générateur de formulaires

      je pencherai sur le bug car « avant » effectivement ces lignes n’étaient que pour l’administrateur du site, maintenant le « client » les reçois aussi, et je ne trouve pas cela bon au niveau sécurité..

    • Le 20 janvier à 15:27, par Maïeul En réponse à : Formidable, le générateur de formulaires

      hum, il doit y avoir un problème chez toi.

      Je viens de refaire un test en local avec les toutes dernières versions du plugins, et la personne qui pose a bien un message court, sans lien.

      Du reste, je ne vois rien dans les modifications récentes qui aurait pu changer le comportement de l’accusé de réception.

      Peux tu m’envoyer un yaml du formulaire problématique, que je fasse des tests ?

    • Le 20 janvier à 22:01, par Maïeul En réponse à : Formidable, le générateur de formulaires

      bon, je viens de tester le yaml > effectivement cela m’envoi aussi le lien dans l’accusé de réception.

      Je regarde la cause.

    • Le 20 janvier à 22:24, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Je viens de regarder. Tu n’utilise pas la fonction d’AR, mais tu dis d’envoyer les réponses selon un champ du formulaire. Donc la personne recoit bien la réponse, et pas un AR, comme d’ailleurs on peut le constater dans le titre du mail « XXX vous a écrit » et pas « Merci de votre réponse ».

      Ci joint une copie d’écran qui te montre comment avoir le bon traitement.

      Ton erreur provient du fait que la configuration « Destinataire présent dans un des champ des formulaires » n’aurait pas du exister, parce qu’elle permet d’envoyer des mails à n’importe qui et est redondante avec la notion d’AR.

      PNG - 179.1 ko

    Répondre à ce message

  • Le 20 janvier à 17:34, par Le Jaseur Boreal En réponse à : Formidable, le générateur de formulaires

    Bonjour,

    Comment dans un champ : faire accepter et vérifier la saisie de codes postaux différents selon les pays en Europe ?

    Dans un champ obligatoire de type code postal, la vérification souhaitée lors du remplissage du champ, bloque si c’est un code postal d’un autre pays, avec par exemple « LV4865 »

    Comment procéder .

    Merci de vos suggestions ?

    • Le 20 janvier à 17:59, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      Il n’existe pas de vérification générique pour plein de pays en même temps, et encore moins lié automatiquement à un autre champ pour détecter de quel pays il faudrait faire la validation. Donc non ce n’est pas du tout possible. Donc il ne faut pas ajouter de validation sur ce champ à priori à par l’obligation de le remplir peut-être.

    • Le 20 janvier à 21:04, par Le Jaseur Boreal En réponse à : Formidable, le générateur de formulaires

      Merci pour la réponse,
      restons pragmatiques et simples ;-))

    Répondre à ce message

  • Le 20 janvier à 19:30, par Le Jaseur Boreal En réponse à : Formidable, le générateur de formulaires

    Bonsoir,

    *Comment envoyer le courriel des résultats à plusieurs destinataires ?

    Une erreur apparaît, dès que deux adresses sont en liste, séparées par une virgule.

    Poster le résultat du formulaire par courriel à une liste de destinataires.
    Il y a 1 erreur dans votre saisie, veuillez vérifier les informations.

    Destinataires supplémentaires
    L’adresse de courriel prenom.nom@free.fr, mot3lv@inbox.lv, n’a pas un format valide.

    Le format devient valide quand on inscrit qu’une seule adresse !

    Y aurait-il un truc coincé quelque part ?

    Merci de votre expérience .
    @+

    Répondre à ce message

  • Le 2 janvier à 15:42, par PhJ En réponse à : Formidable, le générateur de formulaires

    Bonjour,
    Je viens de faire la mise à jour du plugin (3.0.0 le 2/1/2017), et la partie site privé ne fonctionne plus (refonctionne après suppression de Formidable par ftp).
    Il me semble (?) avoir vu afficher une erreur dans base/formidable_tables.php
    Spip 3.1.3 et autres plugins à jour, Saisies en 2.17.0, Api de vérification en 1.4.1). Site hébergé chez Ovh : php 7.0.6, Mysql en 5.1.73.
    Une idée, merci,
    PhJ

    • Le 2 janvier à 20:28, par Le Jaseur Boreal En réponse à : Formidable, le générateur de formulaires

      Bonsoir ,
      problème d’accès au site après la mise à jour du seul plugin formidable !
      L’en tête s’affiche seule en haut d’une page blanche.
      Et impossible accéder partie privée.

      Une solution

    • Le 2 janvier à 21:04, par Maïeul En réponse à : Formidable, le générateur de formulaires

      arf. embetant. on a pourtant fait pas mal de test avant de sortir cette 3.0.

      tu peux retrouver l’ancienne version de formidable ici http://files.spip.org/spip-zone/formidable_v2.zip, il te suffit de remplacer ta version de formidable pour revenir normalement à l’ancien.

      et pour pouvoir debuger cette version, il nous faudrait avoir plus d’info sur le debugage, en utilisant les options listées ici http://www.spip.net/fr_article4453.html#infos_plus

      Avoir la version de PHP serait un plus également.

    • Le 2 janvier à 21:15, par Le Jaseur Boreal En réponse à : Formidable, le générateur de formulaires

      (suite) après avoir supprimé "Formidable par FTP
      Coté privé ce message apparaît avec une phrase inhabituelle en langue russe :

      Erreur dans les plugins :
      /home/lettonie/www/plugins/auto/formidable/v3.0.0/formidable_fonctions.php |

      Impossible d’activer le plugin plugins/auto/formidableparticipation/v1.0.3
      Для этого плагина необходим FORMIDABLE ≤ 2.*.* или новее.

      Que faut-il en penser ?
      Spip serait-il déjà « hacké » par les spécialistes du kremlin entrant par Formidable ?

      Ceci chez OVH en SPIP 3.1.3 [23214] + écran de sécurité 1.2.7 - php7

    • Le 2 janvier à 22:40, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Le fait que tu aies du russe est étrange, mais il n’y aucun hackage de Formidable. Juste un oubli de test de compat PHP 7.

      Si tu installe la version 2 de Formidable en suivant le lien que j’ai mentionné, tu devrais pouvoir réactiver tes besoins, en attendant que je debugue, j’espère rapidement, la version 3

    • Le 2 janvier à 23:07, par Maïeul En réponse à : Formidable, le générateur de formulaires

      La version 3.0.1 rétablit la compatibilité avec PHP 7.

      Testé par moi + un autre Spipeur.

      Encore désolé pour ce contretemps.

    • Le 3 janvier à 11:56, par PhJ En réponse à : Formidable, le générateur de formulaires

      Effectivement, tout est rétabli avec la version 3.0.1 et Vérifier en 1.4.2
      Merci.
      PhJ

    • Le 11 janvier à 18:08, par Le Jaseur Boreal En réponse à : Formidable, le générateur de formulaires

      Bonjour,

      Après avoir testé une ancienne version de Formidable ( merci Maïeul pour la suggestion ) et lisant que la Version 3.0.1 fonctionne avec Php7

      J’ai mis à jour Formidable 3.0.1. message Ok pour la Maj.

      Ensuite j’ai mis à jour « Fusion pour Formidable » et là un message contradictoire :

      "Impossible d’activer le plugin ../plugins/auto/formifusion/v1.0.3
      Nécessite le plugin FORMIDABLE en version ≤ 3.0.*."

      JPEG - 55.9 ko
    • Le 11 janvier à 18:18, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Le message n’est pas contradictoire. Formidable 3.0.1 fonctionne bien avec PHP 7.

      En revanche, fusions de formulaire indique qu’il est compatible avec la version 3.0.0, mais pas plus loins… hors actuellement on en est à la version 3.1.0 de Formidable. Donc cela ne pouvait activer.

      La version 1.0.4 de fusions de formulaire étend la compatibilité à Formidable 3.x.x.

    • Le 11 janvier à 20:23, par Le Jaseur Boreal En réponse à : Formidable, le générateur de formulaires

      Tout est bon avec Fusion Form 1.04

    Répondre à ce message

  • Le 9 janvier à 19:34, par DD En réponse à : Formidable, le générateur de formulaires

    Bonjour,

    Je voudrais modifier le squelette de l’accusé de réception pour enlever le chemin d’accès aux fichiers joints mais le squelette par défaut plugins/formidable/notifications/formulaire_accuse.html contient uniquement

    [(#ENV*{message_retour}|propre)]

    #VOIR_SAISIES{#ENV*{saisies}, #ENV*{valeurs}}

    <p>---- <br />
    <:envoi_via_le_site:> <a href="#URL_SITE_SPIP">#NOM_SITE_SPIP</a></p>

    Comment faire ? Merci

    • Le 9 janvier à 21:52, par Maïeul En réponse à : Formidable, le générateur de formulaires

      bonjour,

      il aurait mieux valu poser cette question sur l’article concernant l’envoi de fichier…
      l’url des fichiers joints sont passés en paramètres lors de l’appel au squelette, dans le #ENV*{valeur}. Il faut donc opérer en amont au niveau du PHP.

      Je vais ajouter une constante à régler pour ne pas avoir dans l’accusé de reception (cela étant, je pense qu’il est bon de d’avoir cet url dans l’accusé de reception : cela permet à la personne de vérifier si jamais elle a un doute sur le fichier envoyé)

    • Le 9 janvier à 22:15, par DD En réponse à : Formidable, le générateur de formulaires

      Oui j’ai pensé à poster sur la page d’envoi de fichier mais la modif du squelette peut être nécessaire pour d’autres champs.
      Si on laisse uniquement le nom du fichier avec son extension mais sans le chemin d’accès l’émetteur pourra vérifier le fichier il me semble.

      Merci en tout cas pour la réponse rapide.

    • Le 9 janvier à 22:30, par Maïeul En réponse à : Formidable, le générateur de formulaires

      oui, si on veut, pour d’autre choix.

      Je t’invite à lire la doc de saisies pour comprendre à quoi correspond #VOIR_SAISIE

    • Le 9 janvier à 23:10, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Avec la version 3.1 du plugin, prochainement disponible, il est possible de supprimer les liens dans l’accusé de réception en mettant

      1. define('_FORMIDABLE_LIENS_FICHIERS_ACCUSE_RECEPTION', false);

      dans le fichier mes_options.php (ou tout autre fichier d’option).

    • Le 10 janvier à 00:49, par DD En réponse à : Formidable, le générateur de formulaires

      Yeah ! Merci

    Répondre à ce message

  • Le 20 décembre 2016 à 19:35, par Claude En réponse à : Formidable, le générateur de formulaires

    Bonjour Rastapoloulos,

    J’ai installé ton plugin le week-end dernier (sur Spip 3.0.20), et je te remercie du joli travail que tu nous offres !

    J’interviens en amateur dans une asso humanitaire (Biologie Sans Frontières www.bsf.asso.fr) qui a des fiches de compétence à gérer (plusieurs 100aines), ce qui correspond aux compétences de personnes susceptibles de partir en interventions pour aider au développement de la santé.

    Dans ce contexte, j’aurais aimé à court terme avoir tes réponses sur les sujets ci-après :
    1- as-tu une doc détaillée qui présente toutes les fonctions de paramétrage etc...
    2- qu’est censé faire la modération a posteriori (aucun enregistrement va dans l’onglet « A modérer »
    3- que fait « Modifiable : Les visiteurs peuvent modifier leurs réponses après coup. » ? je ne vois pas de différence avec ou sans cette coche (l’enregistrement est (r)ajouté en base et non modifié).
    4- Comment fait-on pour réafficher le formulaire vide après une utilisation ?

    5- notre besoin est de disposer d’une gestion avec recherche (sur critères de filtrage), modification (un enregistrement) et suppression (dans l’espace privé ou public) : as-tu des exemples de codes, des conseils ou avis à me donner ?

    J’ai vu que tu proposais des services payants ; cela peut m’intéresser.

    NB : j’ai essayé de t’écrire par le formulaire présent à https://contrib.spip.net/RastaPopoulos, mais « erreur technique »

    Merci d’avance
    Claude

    Répondre à ce message

  • Le 28 novembre 2016 à 14:57, par Bouquet En réponse à : Formidable, le générateur de formulaires

    Bonjour

    Malgré les dernières mises à jour (Spip 3.1.3, Saisies 2.8.1, Formidable 2.15.0), j’ai toujours un problème qu’ont déjà rencontré certains et qui d’après eux semblait résolu.
    J’ai des champs obligatoires (Liste déroulante, Bloc de texte, oui ou non) dans un menu caché qui n’apparait que quand certains paramètres sont cochés et le formulaire n’est pas envoyé tant que les champs obligatoires cachés ne sont pas remplis alors qu’ils ne devraient pas l’être et j’ai le message « Veuillez sélectionner un élément de la liste » par exemple.
    Comment venir à bout de ce problème ?
    Si le fait de repasser le site en html 4 résout le problème, cela implique-t-il des conséquences sur le comportement du site et sur les nombreux articles déjà fait.

    • Le 12 décembre 2016 à 17:34, par Maïeul En réponse à : Formidable, le générateur de formulaires

      étonnant cela… il faudrait m’envoyer un fichier .yaml du formulaire pour que je puisse reproduire et le cas échéant résoudre cela.

    • Le 12 décembre 2016 à 18:41, par Bouquet En réponse à : Formidable, le générateur de formulaires

      Bonsoir

      J’envoie le fichier sur l’adresse privée.

      Je l’ai testé sur plusieurs sites mais sur le même serveur.

      Cordialement

    • Le 12 décembre 2016 à 18:53, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Je viens de tester en local (SPIP 3.1, saisies 2.14.0, verifier 1.3.0), HTML 5 activé -> aucun souci.

      Peux tu mettre à jour les plugins, refaire un test (après avoir vidé le cache éventuellement), et me redire ? Si cela ne marche pas, m’envoyer l’url d’une page de démo que je puisse voir ce qu’il en est (si tu ne veux pas publier ce formulaire, tu peux imaginer de mettre un article en « proposer à l’évaluation » et de me donner un accès auteur pour que je puisse le prévisualiser)

    • Le 12 décembre 2016 à 19:31, par Bouquet En réponse à : Formidable, le générateur de formulaires

      Tous les plugins sont à jour

      Tu peux tester sur un site de test à l’adresse http://jlbpc.se-unsa.org/Test-Guillaume

      Cordialement

      Jean-Louis

      PNG - 192.7 ko
    • Le 12 décembre 2016 à 21:25, par Maïeul En réponse à : Formidable, le générateur de formulaires

      ah, mais là c’est pas qu’il te dit qu’il y a une erreur, c’est carrément qu’il ne te soumet pas le formulaire…
      je regarde cela, je soupconne vagument un problème avec le var_zajax

    • Le 12 décembre 2016 à 21:49, par Maïeul En réponse à : Formidable, le générateur de formulaires

      vu, en fait il y a la combinaison de deux problèmes :
      1. je n’avais pas prévu le cas des select
      2. je n’avais pas prévu que l’afficher_si pouvait porter aussi sur le fieldset, et pas sur la saisie directement

    • Le 12 décembre 2016 à 23:28, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Je viens de commiter des changements qui devraient résoudre cela.

      En tous cas en local, l’exemple, qui en fait ne marchait pas, remarche.

      Il faut mettre à jour vers la version 2.14.1 de saisies.

    • Le 13 décembre 2016 à 08:18, par Bouquet En réponse à : Formidable, le générateur de formulaires

      Bonjour

      Super.

      Après la mise à jour de saisies en 2.4.1, ça fonctionne parfaitement en production.

      Merci beaucoup

      Jean-Louis

    • Le 13 décembre 2016 à 10:57, par Maïeul En réponse à : Formidable, le générateur de formulaires

      de rien.

      Je pense ne pas avoir oublié de type de champs, mais si pour x raison cela ne marche pas avec un champ particulier, me recontacter, toujours avec un YAML.

    Répondre à ce message

  • Le 29 novembre 2016 à 16:04, par alcide47 En réponse à : Formidable, le générateur de formulaires

    Bonsoir ,
    J’ai parcouru avec attention beaucoup de forums et j’ai repris l’exemple de "un exemple de l’utilisation de « formidable » que j’ai adapté à mon formulaire pour l’insérer dans un article.
    J’ai recopié la méthode proposée dans l’article « Mon premier formulaire pas à pas : c’est Formidable ! » sachant que je ne trouve pas dans ces lignes de références au formulaire de référence pour permettre à la balise de le trouver.

    Quand j’ouvre l’espace « public », j’ai bien le tableau mais les réponses n’apparaissent pas. Il n’y a a que la formulation « voir la réponse etc ».
    Comme je ne suis pas un expert mais que je cherche à apprendre, quelqu’un peut-il me dire comment indiquer l’endroit où ce petit programme doit aller chercher les données pour les reproduire dans l’article public.
    J’ai initié une pétition et je voudrais avoir davantage de champs visibles au public que dans celle de SPIP.

    PNG - 9.5 ko

    Répondre à ce message

  • Le 14 novembre 2016 à 14:20, par vl En réponse à : Formidable, le générateur de formulaires

    Bonjour,
    le plugin génère après chaque insertion d’un fieldset, un h2 ou h3 .legend ce qui est plutôt inapproprié. J’aimerais modifier ceci pour insérer une balise [legend] appropriée à la place, mais je ne trouve pas comment surcharger cela proprement. Le fait que cette balise « .legend » soit tantôt un h2, tantôt un h3 est également un mystère ...
    J’aimerais dans la foulée modifier les [label] sans for=« » qui sont générés en guise de titre de groupe de boutons radios ou case à cocher, mais je n’ai pas trouvé non plus comment modifier cela.
    Merci beaucoup de m’indiquer le chemin des fichiers à copier dans mon dossier squelette en vue de modifications ( formidable ou saisies ?). Dois-je les copier à la racine de squelette ou dans des sous-dossiers ? Dois-je régénérer les formulaires après modifications ?
    Merci d’avance pour les réponses, désolée si ce sujet a déjà été abordé mais j’ai beau chercher je ne trouve pas la solution.

    • Le 14 novembre 2016 à 16:01, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      Tout le cœur est le plugin Saisies. Donc les saisies, dans le chemin relatif « saisies/truc.html ». Et ici en l’occurrence « saisies/fieldset.html ».

    • Le 14 novembre 2016 à 17:38, par vl En réponse à : Formidable, le générateur de formulaires

      Merci pour cette réponse. J’ai modifié saisies/fieldset.html + cache supprimé + cache plugins, et... Rien. Je l’ai même fait directement dans le plugin momentanément pour test. Peut-être faut-il régénérer les formulaires après modification ? Le dossier saisies doit être à la racine de squelettes pour faire ça proprement ?

    • Le 16 novembre 2016 à 13:59, par vl En réponse à : Formidable, le générateur de formulaires

      Merci pour ce plugin et la réponse. J’ai remplacé les h2 et h3 par une balise [legend]
      A titre d’info si cela peut servir à quelqu’un il faut également modifier le js de construire_formulaire.html pour que les onglets s’affichent correctement dans l’éditeur de formulaires (h3 => legend).
      Par contre j’ai un souci avec les champs type=email, date et tel.
      Impossible d’avoir ni le type ni la class email sur un champs email ( avec vérification d’email activée) idem pour date et tel.
      Le type reste text et la class aussi. Le site est bien sûr en html5, décla doctype valide et html5 activé dans la configuration spip.
      Y à t’il une manip supplémentaire à faire ?
      Merci d’avance pour la réponse.

    Répondre à ce message

  • Le 2 septembre 2016 à 12:53, par vallrossi En réponse à : Formidable, le générateur de formulaires

    bonjour, j’ai un bug avec le plugin : en html5, tout mes champs obligatoires doivent être saisie sinon le formulaire ne s’envoie pas. Le soucis est que j’ai des champs obligatoires qui apparaissent qu’après avoir coché d’autres champs donc son masqué si la conditions de remplissage n’est pas respecté.
    J’ai du désactiver le html5 pour pouvoir faire fonctionné le formulaire.
    Quelqu’un aurais une idée ?

    • Le 2 septembre 2016 à 12:57, par vallrossi En réponse à : Formidable, le générateur de formulaires

      En vérifiant, se n’ai pas html5 qui est le problème.
      Mes champs obligatoire facultatifs me bloque l’envoi du formulaire alors qu’avant cela fonctionnais sur spip2.1.

    • Le 13 septembre 2016 à 18:45, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      Moi je n’active pas ça dans l’interface d’admin, car ça n’a pas de sens je trouve : c’est à ceux qui maintiennent tel jeu de squelettes publics précis de dire que ce jeu de squelettes est en HTML5. Donc moi je l’active dans le options.php de mes squelettes.

      Un truc du genre :

      1. // Activer HTML5 depuis le squelette
      2. if (!test_espace_prive()) {
      3. $GLOBALS['meta']['version_html_max'] = 'html5';
      4. }

      Télécharger

    • Le 16 septembre 2016 à 14:05, par vallrossi En réponse à : Formidable, le générateur de formulaires

      Ce n’est pas HTML5 le problème mais le plugin formidable. Je m’excuse de mettre mal exprimé alors j’explique mon problème.
      J’ai des champs obligatoires dans un menu qui apparait que quand certains paramètres sont cochés.Le soucis viens du traitement : le formulaire n’est pas envoyé tant que touts les champs obligatoires sont remplis alors que certains ne devraient pas l’être.
      Sous mon ancien Spip cela fonctionnais très bien et depuis la mise a jour (vers 3.1) j’ai ce soucis.

    • Le 1er novembre 2016 à 15:00, par Yohooo En réponse à : Formidable, le générateur de formulaires

      Hello @vallrossi,

      Je me heurte au même problème que toi.

      As-tu trouvé une solution ?

    • Le 2 novembre 2016 à 09:42, par vallrossi En réponse à : Formidable, le générateur de formulaires

      bonjour,
      j’ai pas de vrai solution, juste une provisoire : désactiver les champs obligatoires cachées.

    • Le 3 novembre 2016 à 11:00, par Yohooo En réponse à : Formidable, le générateur de formulaires

      Alors, voici ma bidouille pour sortir de l’impasse. Elle consiste à modifier les plugins Saisies et Formidable . C’est donc un peu boiteux (et se serait pas mal que ces 2 plugins évoluent en même temps mais c’est pas Yohooo le bricoleux qui va prendre le risque de casser ces deux merveilleux plugins avec son code hasardeux :

      ETAPE 1 : Tout d’abord, on créé dans «  Saisies  » une fonction pour vérifier si le champ « afficher_si_remplissage » est rempli. Pour cela on copie le fonction « saisies_verifier_afficher_si » dans « saisies/inc/saisies_afficher.php » et on la modifie un peu :

      1. /**
      2.  * Lorsque l'on valide les formulaires, les saisies ayant une option afficher_si_remplissage
      3.  * et dont les conditions ne sont pas remplies ne doivent pas être vérifiées
      4.  *
      5.  * @param array $saisies
      6.  * Tableau de descriptions de saisies
      7.  */
      8. function saisies_verifier_afficher_si_remplissage($saisies, $env = null) {
      9. // eviter une erreur par maladresse d'appel :)
      10. if (!is_array($saisies)) {
      11. return array();
      12. }
      13. foreach ($saisies as $cle => $saisie) {
      14. if (isset($saisie['options']['afficher_si_remplissage'])) {
      15. $condition = $saisie['options']['afficher_si_remplissage'];
      16. // On gère le cas @plugin:non_plugin@
      17. preg_match_all('#@plugin:(. )@#U', $condition, $matches);
      18. foreach ($matches[1] as $plug) {
      19. if (defined('_DIR_PLUGIN_'.strtoupper($plug))) {
      20. $condition = preg_replace('#@plugin:'.$plug.'@#U', 'true', $condition);
      21. } else {
      22. $condition = preg_replace('#@plugin:'.$plug.'@#U', 'false', $condition);
      23. }
      24. }
      25. // On gère le cas @config:plugin:meta@ suivi d'un test
      26. preg_match_all('#@config:(. ):(. )@#U', $condition, $matches);
      27. foreach ($matches[1] as $plugin) {
      28. $config = lire_config($plugin);
      29. $condition = preg_replace('#@config:'.$plugin.':'.$matches[2][0].'@#U', '"'.$config[$matches[2][0]].'"', $condition);
      30. }
      31. // On transforme en une condition valide
      32. if (is_null($env)) {
      33. $condition = preg_replace('#@(. )@#U', '_request('$1')', $condition);
      34. } else {
      35. $condition = preg_replace('#@(. )@#U', '$env["valeurs"]['$1']', $condition);
      36. }
      37. eval('$ok = '.$condition.';');
      38. if (!$ok) {
      39. unset($saisies[$cle]);
      40. if (is_null($env)) {
      41. set_request($saisie['options']['nom'], null);
      42. }
      43. }
      44. }
      45. if (isset($saisies[$cle]['saisies'])) { // S'il s'agit d'un fieldset ou equivalent, verifier les sous-saisies
      46. $saisies[$cle]['saisies'] = saisies_verifier_afficher_si_remplissage($saisies[$cle]['saisies'], $env);
      47. }
      48. }
      49.  
      50. return $saisies;
      51. }

      Télécharger

      ETAPE 2 : On utilise la nouvelle fonction créée à la génération d’un formulaire formidable.

      Ligne 219, dans formidable/formulaires/formidable.php, on ajoute donc :

      1. $saisies = saisies_verifier_afficher_si_remplissage($saisies);

      On vient de faire en sorte de valider les champs du formulaire seulement si ceux-ci sont visibles.

      ETAPE 3 : Il reste un problème : du javascript affiche des infobox lorsque les champs obligatoires sont vides. Et ce, avant même que le formulaire ai pris le temps de vérifier le contenu grâce à notre nouvelle fonction.

      Nous allons désactiver les infobullles pour les champs colportant une variable « afficher_si_remplissage ». Et ce, quel que soit l’état de celui-ci. Pour cela, nous allons enlever l’attribut required des formulaires de ce type. Ainsi, pour les champs obligatoires :
      -  Si le champ est toujours visible, le message d’erreur s’affichera via javascript au cas où celui-ci est mal rempli.
      -  Si le champ est déplié et que celui-ci est mal rempli (ou que le navigateur ne supporte pas le javascript), les messages d’erreurs s’afficheront après rechargement du formulaire
      -  Si le champs est invisible, et qu’il n’est donc pas rempli, aucun message ne s’affichera.

      Pour cela, je modifie le squelettes de saisie : saisies/saisies/_base.html

      Ligne 39 , je crée une variable « obligatoirejs » qui change d’état en fonction du contexte :

      1. [(#ENV{afficher_si_remplissage}|oui)[(#SET{obligatoirejs,'non'})]]
      2. [(#ENV{afficher_si_remplissage}|non)[(#SET{obligatoirejs,#GET{obligatoire}})]]
      3.  

      Télécharger

      Je passe cette variable dans les 2 balises #INCLURE lignes 41 :

      1. [(#INCLURE{fond=saisies/#ENV{type_saisie},obligatoire=#GET{obligatoirejs},env,disable=#GET{disable},readonly=#GET{readonly}})]

      ... et 53 :

      1. [(#INCLURE{fond=saisies/#ENV{type_saisie},obligatoire=#GET{obligatoirejs},env,nom=[(#ENV{nom}|saisie_nom2name)], disable=#GET{disable},readonly=#GET{readonly},describedby=[(#ENV*{explication}|?{[explication_(#ENV{nom}|saisie_nom2name)]})]})]

      Je ne touche :
      -  ni à la mention « obligatoire » visible derrière le champ car j’ai besoin de celle-ci pour indiquer à l’internaute le caractère obligatoire du champ au cas où celui-ci est déplié
      -  ni aux balises qui afficheront le message d’erreur en cas de non remplissage du champ.

      ... et ça marche.

    • Le 3 novembre 2016 à 11:02, par Yohooo En réponse à : Formidable, le générateur de formulaires

      En fait, j’ai trouvé une bidouille pou y arriver.

      J’ai publié une longue réponse. Mais elle est en attente de relecture.
      (il doit y avoir un filtre de modération qui modère à posteriori les long ajouts sur ce forum... )

    • Le 3 novembre 2016 à 11:09, par Maïeul En réponse à : Formidable, le générateur de formulaires

      ca m’étonne cette histoire, j’était persuadé d’avoir déjà implementé cela.

      je peux essayer de regarder ce week-end pour le mettre directement dans le plugin.

      Mais la règle en général chez SPIP, c’est que tout le monde est légitime à faire des modifs…

    • Le 4 novembre 2016 à 21:35, par Yohooo En réponse à : Formidable, le générateur de formulaires

      Je veux bien que tu soulèves le capot car on touche à 2 plugins et je crains les effets collatéraux.

    • Le 6 novembre 2016 à 11:28, par Maïeul En réponse à : Formidable, le générateur de formulaires

      bon, alors je viens de tester à nouveau> chez moi cela marche directement, pas besoin de manip.

      peux tu m’envoyer un export yaml du formulaire qui posait souci ?

    • Le 7 novembre 2016 à 10:47, par vallrossi En réponse à : Formidable, le générateur de formulaires

      bonjour, si joint un formulaire qui fonctionne pas (c’est un formulaire de test mais ils font tous pareil).
      quand je clique sur validé, j’ai un message qui me demande de complété le formulaire et quand on vérifie on vois bien que c’est l’attribut caché obligatoire qui pose problème.

      PNG - 1.1 ko
    • Le 7 novembre 2016 à 10:50, par Maïeul En réponse à : Formidable, le générateur de formulaires

      je ne vois pas le fichier yaml joint.

      peut tu me l’envoyer directement à mon adresse courriel (monprenom@monprenom.net)

    • Le 7 novembre 2016 à 11:00, par vallrossi En réponse à : Formidable, le générateur de formulaires

      Le fichier est le png ou il faut retirer l’extension.
      Je vous est envoyé le fichier par mail.

    • Le 7 novembre 2016 à 16:03, par Maïeul En réponse à : Formidable, le générateur de formulaires

      je ne vois pas non plus de .png lié.

      J’attend l’envoi par courriel.

    • Le 7 novembre 2016 à 16:14, par vallrossi En réponse à : Formidable, le générateur de formulaires

      je lai envoyé par mail.

    • Le 7 novembre 2016 à 17:42, par Maïeul En réponse à : Formidable, le générateur de formulaires

      Il y avait deux problèmes distincts, mais connexes.

      -  d’une part la distinction entre afficher_si_remplissage et afficher_si n’était pas prise en compte.
      -  d’autre part l’attribut required du HTML5, qui existaient même si le champ était masqué.

      Deux séries de commits sur le plugins saisies corrigent ces deux problèmes (http://zone.spip.org/trac/spip-zone/changeset/100420 et http://zone.spip.org/trac/spip-zone/changeset/100421)

      Pas besoin de toucher à formidable.

      Il suffit donc d’attendre le zip de la version 2.8.1 de saisies.

    • Le 8 novembre 2016 à 08:40, par vallrossi En réponse à : Formidable, le générateur de formulaires

      Merci de votre intervention, je vais attendre la mise a jour alors.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • GIS 4

    11 août 2012 – 1308 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2051 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • Pages uniques

    11 décembre 2008 – 259 commentaires

    Allez, avouez... il ne vous est jamais arrivé d’avoir besoin d’articles qui ne sont rattachés à aucun rubriquage particulier ? Des articles uniques, n’ayant ni de thème, ni de rapport avec aucun autre ? Ou encore des articles pour lesquels vous avez (...)

  • ciar : plugin « Accès restreints issus de Giseh »

    28 novembre 2011 – 86 commentaires

    Cette version ajoute une gestion par groupe d’auteurs, ainsi que la compatibilité avec SPIP 3. Pour mémoire, le plugin « ciar » offre des accès restreints reprenant les fonctionnalités de ceux de Giseh. Le plugin est utilisable sans utiliser les autres (...)

  • Saisies

    27 mars 2010 – 474 commentaires

    Introduction Créer un formulaire est une tâche toujours un peu répétitive : les champs ont souvent les mêmes propriétés, le même accompagnement (message d’erreur, explication, ...) et la même structure HTML. Ce plugin est un outil pour les développeurs (...)