SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 300 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 – 2011 commentaires

156 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 29 novembre à 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 28 novembre à 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.

    Répondre à ce message

  • Le 14 novembre à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 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 à 16:14, par vallrossi En réponse à : Formidable, le générateur de formulaires

      je lai envoyé par mail.

    • Le 7 novembre à 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 à 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

  • Le 7 novembre à 12:38, par Remrem En réponse à : Formidable, le générateur de formulaires

    Bonjour,
    Nous utilisons formidable 2.15 avec Spip 3.1 sur un serveur free.
    Après plusieurs centaines de réponses sur un formulaire, lors du téléchargement des réponses en .csv ou .xls. Le message « Une erreur de chargement... » apparait.
    Avez-vous déjà rencontré ce problème ?
    Merci par avance.
    Bonne journée.

    Répondre à ce message

  • Le 5 novembre à 21:56, par Remrem En réponse à : Formidable, le générateur de formulaires

    Bonjour,
    J’utilise la version 2.15 de formidable avec Spip 3.1 sur un serveur free.
    J’ai un formulaire avec désormais un peu plus de 160 réponses. Lorsque j’essaie de télécharger les réponses au format csv ou xls, une erreur de chargement de la page apparait.
    Avez-vous déjà rencontré ce problème ?
    Merci par avance.
    Bonne journée

    Répondre à ce message

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

    Hello,

    Je viens de mettre à jour un SPIP 2 en spip-2.1.29 et Formidable en Formidable 0.9.0

    Dans les pages où sont intégrés des formulaires avec :

    1. <formulaire|formidable|id=5>

    J’ai : Strict standards : Only variables should be passed by reference in \plugins\formidable_v0\formulaires\formidable.php on line 96

    Que se passe-t-il ?

    Merci d’avance

    PNG - 79.1 ko

    Répondre à ce message

  • Le 19 octobre à 18:08, par PRX En réponse à : Formidable, le générateur de formulaires

    Bonjour,

    je voudrai savoir ce qui empêche de faire bouger la place /ordre de mes champs dans le formulaire ? Je les déplace : pas de soucis, j’enregistre et ils reviennent où ils étaient, comme un aimant.
    Il faut dire que j’ai hérité ces formulaires de Forms et Tables.
    Merci bien Ratapopoulos.

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

      Alors là je ne vois pas trop. Les saisies sont enregistrées dans une liste PHP (un tableau sans clés, enfin juste numériques) qui est sérialisé et gardé en mémoire dans un champ de spip_formulaires. Donc l’ordre est déterminé par la position dans la liste PHP. Il faudrait peut-être regarder directement ce qu’il y a dans le champ, le désérialiser, et voir si la liste n’a pas un problème…

    • Le 20 octobre à 10:09, par PRX En réponse à : Formidable, le générateur de formulaires

      Merci,
      je ne vois pas ce que je dois faire avec : « Il faudrait peut-être regarder directement ce qu’il y a dans le champ, le désérialiser, et voir si la liste n’a pas un problème… »

      Ce que je peux avoir facilement , c’est l’aide mémoire à gauche (récup de Forms & Tables) :
      @nom_site_spip@
      Nom de votre site
      @ligne_1@
      Votre société
      @ligne_7@
      Votre N° de tel avec indicatif de pays
      @ligne_2@
      Votre nom + prénom
      @email_1@
      Votre email
      @ligne_4@
      Pays
      @url_1@
      Votre site Web
      @ligne_5@
      Description succincte du projet
      @multiple_3@
      Utilisation envisagée
      @num_1@
      Nbre de terminaux à équiper
      @select_8@
      Générateurs & conception d’applications mobiles
      @select_7@
      Application métier standard ou à développer
      @select_9@
      Achat, location terminal, garanties ?
      @multiple_2@
      Caractéristiques des lectures / saisies, interfaces
      @ligne_6@
      Nom ou type éventuel du modèle de terminal souhaité (achat)
      @num_2@
      Formation nécessaire : nbre d’heures
      @ligne_8@
      Code de parrainage
      @date_1@
      Date de début de location

      je veux remonter @date_1@ sous @select_9@ .
      merci

    • Le 20 octobre à 23:26, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      Bah il faudrait aller voir dans la base le contenu brut du champ « saisies » de ce formulaire là.

    • Le 21 octobre à 09:22, par PRX En réponse à : Formidable, le générateur de formulaires

      bien : voici ce que l’on trouve dans le champ « saisies » dudit formulaire :

      1. 0 =>
      2. 'saisie' => 'input',
      3. 'options' =>
      4. 'size' => '40',
      5. 'nom' => 'ligne_1',
      6. 'label' => 'Votre société',
      7. 'obligatoire' => 'on',
      8. ),
      9. ),
      10. 1 =>
      11. 'saisie' => 'input',
      12. 'options' =>
      13. 'size' => '40',
      14. 'nom' => 'ligne_7',
      15. 'label' => 'Votre N° de tel avec indicatif de pays',
      16. 'obligatoire' => 'on',
      17. ),
      18. ),
      19. 2 =>
      20. 'saisie' => 'input',
      21. 'options' =>
      22. 'size' => '40',
      23. 'nom' => 'ligne_2',
      24. 'label' => 'Votre nom + prénom',
      25. 'obligatoire' => 'on',
      26. ),
      27. ),
      28. 3 =>
      29. 'saisie' => 'input',
      30. 'options' =>
      31. 'size' => '40',
      32. 'nom' => 'email_1',
      33. 'label' => 'Votre email',
      34. 'obligatoire' => 'on',
      35. 'explication' => 'Pas d\'email en gmail, hotmail, ... utilisez celui avec le nom de domaine de votre société',
      36. ),
      37. 'verifier' =>
      38. 'type' => 'email',
      39. ),
      40. ),
      41. 4 =>
      42. 'saisie' => 'input',
      43. 'options' =>
      44. 'size' => '40',
      45. 'nom' => 'ligne_4',
      46. 'label' => 'Pays',
      47. 'disable' => 'on',
      48. 'afficher_si' => 'false',
      49. ),
      50. ),
      51. 5 =>
      52. 'saisie' => 'input',
      53. 'options' =>
      54. 'size' => '40',
      55. 'nom' => 'url_1',
      56. 'label' => 'Votre site Web',
      57. 'explication' => 'Le site internet de votre société',
      58. ),
      59. ),
      60. 6 =>
      61. 'saisie' => 'input',
      62. 'options' =>
      63. 'size' => '40',
      64. 'nom' => 'ligne_5',
      65. 'label' => 'Description succincte du projet',
      66. 'obligatoire' => 'on',
      67. ),
      68. ),
      69. 7 =>
      70. 'saisie' => 'checkbox',
      71. 'options' =>
      72. 'datas' =>
      73. 'multiple_3_1' => 'Suivi des actifs',
      74. 'multiple_3_2' => 'Gestion inventaire',
      75. 'multiple_3_3' => 'Saisie terrain',
      76. 'multiple_3_4' => 'Gestion événementielle ',
      77. 'multiple_3_5' => 'Transport/Livraison',
      78. 'multiple_3_6' => 'Grande distribution',
      79. 'multiple_3_7' => 'Suivi de fabrication',
      80. 'multiple_3_8' => 'Autre / applications ILLIMITEES',
      81. ),
      82. 'nom' => 'multiple_3',
      83. 'label' => 'Utilisation envisagée',
      84. 'obligatoire' => 'on',
      85. ),
      86. ),
      87. 8 =>
      88. 'saisie' => 'input',
      89. 'options' =>
      90. 'size' => '40',
      91. 'nom' => 'num_1',
      92. 'label' => 'Nbre de terminaux à équiper',
      93. 'obligatoire' => 'on',
      94. 'explication' => 'nbre de licences terminal à prévoir, 9999 pour illimité',
      95. ),
      96. 'verifier' =>
      97. 'type' => 'entier',
      98. ),
      99. ),
      100. 9 =>
      101. 'options' =>
      102. 'label' => 'Générateurs & conception d\'applications mobiles',
      103. 'datas' => 'select_8_7|Générateur d\'applications KALIPSO PRO
      104. select_8_2|Générateur + licences TRACERPLUS + passerelle Connect vers les bases de données',
      105. 'nom' => 'select_8',
      106. ),
      107. 'saisie' => 'selection',
      108. ),
      109. 10 =>
      110. 'saisie' => 'selection',
      111. 'options' =>
      112. 'datas' =>
      113. 'select_7_1' => 'inventaire01',
      114. 'select_7_2' => 'pricecheck01',
      115. 'select_7_3' => 'inventaire02',
      116. 'select_7_5' => 'autre application sur mesure',
      117. ),
      118. 'nom' => 'select_7',
      119. 'label' => 'Application métier standard ou à développer',
      120. 'explication' => 'La location ou achat de licences est une possibilité face à l\'acquisition d\'un outil de conception',
      121. ),
      122. ),
      123. 11 =>
      124. 'options' =>
      125. 'label' => 'Achat, location terminal, garanties ?',
      126. 'datas' => 'select_9_1|Applications seules
      127. select_9_2|Applications avec achat de terminaux
      128. select_9_3|Applications avec achat de terminaux + garantie étendue 3 ans casse
      129. select_9_4|Application avec location hebdo de terminaux
      130. ',
      131. 'obligatoire' => 'on',
      132. 'nom' => 'select_9',
      133. ),
      134. 'saisie' => 'selection',
      135. ),
      136. 12 =>
      137. 'saisie' => 'checkbox',
      138. 'options' =>
      139. 'datas' =>
      140. 'multiple_2_1' => 'Code barre ligne',
      141. 'multiple_2_11' => 'Code barre 2 dimensions /photos',
      142. 'multiple_2_2' => 'Rfid',
      143. 'multiple_2_4' => 'Dans le froid plus de 4h/ jour',
      144. 'multiple_2_5' => 'Lecture code barre longue distance',
      145. 'multiple_2_6' => 'Format "Gun"/ pistolet',
      146. 'multiple_2_7' => 'Sans aucun réseau, par USB',
      147. 'multiple_2_8' => 'Liaison Wifi',
      148. 'multiple_2_9' => 'Liaison 3G/4G',
      149. 'multiple_2_12' => 'terminal point de vente',
      150. ),
      151. 'nom' => 'multiple_2',
      152. 'label' => 'Caractéristiques des lectures / saisies, interfaces',
      153. 'obligatoire' => 'on',
      154. 'explication' => 'Caractéristiques principales de l\'environnement - écran tactile par défaut',
      155. ),
      156. ),
      157. 13 =>
      158. 'options' =>
      159. 'label' => 'Nom ou type éventuel du modèle de terminal souhaité (achat)',
      160. 'explication' => 'Si vous souhaitez un terminal particulier, indiquez-le ici SVP : Marque ou Type : PDA , Tablette, Smartphone',
      161. 'type' => 'text',
      162. 'size' => '40',
      163. 'autocomplete' => 'defaut',
      164. 'nom' => 'ligne_6',
      165. ),
      166. 'saisie' => 'input',
      167. ),
      168. 14 =>
      169. 'saisie' => 'input',
      170. 'options' =>
      171. 'size' => '40',
      172. 'nom' => 'num_2',
      173. 'label' => 'Formation nécessaire : nbre d\'heures',
      174. 'explication' => 'Par tranches de 2h',
      175. ),
      176. 'verifier' =>
      177. 'type' => 'entier',
      178. ),
      179. ),
      180. 15 =>
      181. 'options' =>
      182. 'label' => 'Code de parrainage',
      183. 'explication' => 'Si vous venez d\'un site partenaire, faites le nous savoir SVP ! ',
      184. 'type' => 'text',
      185. 'disable' => 'on',
      186. 'size' => '40',
      187. 'autocomplete' => 'defaut',
      188. 'nom' => 'ligne_8',
      189. ),
      190. 'saisie' => 'input',
      191. ),
      192. 16 =>
      193. 'options' =>
      194. 'label' => 'Date de début de location',
      195. 'heure_pas' => '30',
      196. 'afficher_si' => '@select_9@=="select_9_4"',
      197. 'nom' => 'date_1',
      198. ),
      199. 'verifier' =>
      200. 'type' => 'date',
      201. 'options' =>
      202. 'normaliser' => 'datetime',
      203. ),
      204. ),
      205. 'identifiant' => '@580796e8ec7ef',
      206. 'saisie' => 'date',
      207. ),
      208. )

      Télécharger

    • Le 21 octobre à 10:50, par RastaPopoulos En réponse à : Formidable, le générateur de formulaires

      (J’ai désérialisé le contenu…)

      La différence que je vois c’est que les champs migrés de f&t n’ont pas d’identifiant unique mais juste leur « nom » de champ alors que ceux ajoutés ensuite par Saisies (ici la date justement) a un nom et un identifiant unique. Du coup il y a peut-être un conflit là-dedans car c’est la seule différence que je vois, je ne vois pas d’erreur dans le formatage de l’API « saisies en tableau » autrement.

    • Le 28 octobre à 17:59, par PRX En réponse à : Formidable, le générateur de formulaires

      Résolu :
      bonjour, j’ai la solution : au lieu de déplacer le champ avec la flèche à 4 direction (marche pas), il « suffit » d’aller dans l’icône « configurer » du champ et aller dans « position du champ », changer et enregistrer : là cela marche....

    Répondre à ce message

  • Le 21 janvier 2013 à 16:33, par josazar En réponse à : Formidable, le générateur de formulaires

    Bonjour,
    Merci pour ce plugin,
    Voici j’ai un problème que je mette dans les traitements : A Priori ou à Poseriori, les réponses ont toujours le statut « Publie » ...

    Je voudrais repasser en moderation a posteriori.. mais cela ne change pas la valeur du Statut des nouveaux formulaire enregistrés dans la table spip-formulaire_reponses...

    Merci

    • Le 21 janvier 2013 à 20:46, par Jacques En réponse à : Formidable, le générateur de formulaires

      Est-ce que ça ne serait pas parce que tu es connecté en tant qu’admin lorsque tu remplis les formulaires ? Pour faire des essais je change de navigateur, et d’un navigateur où je ne suis pas enregistré les enregistrements ont bien un statut non publié, que je peux changer à partir de l’interface.

    • Le 21 janvier 2013 à 21:45, par josazar En réponse à : Formidable, le générateur de formulaires

      Non ce n’est pas ça, j’y ai pensé, j’ai testé, mais même avec un autre navigateur sans être connecté, le statut reste ’publie’. ..

      Merci

    • Le 26 octobre à 18:00, par Yohooo En réponse à : Formidable, le générateur de formulaires

      Hello Josazar,

      As-tu trouvé la réponse à ta question ?

      Je n’arrive pas à faire en sorte d’obtenir un réponse proposée par défaut...

    Répondre à ce message

  • Le 11 octobre à 12:44, par gsaunier En réponse à : Formidable, le générateur de formulaires

    Chers Tous,

    Je progresse dans l’utilisation de ce « plus que » pratique plugin. Mais je rencontre un nouveau problème.

    Depuis un squelette, j’appelle un formulaire avec le code suivant :

    1. [(#FORMULAIRE_FORMIDABLE{3})]

    Lorsque je valide ce formulaire, celui-ci affiche le message de retour sans difficulté.

    Mais je cherche ensuite à pré-remplir un champ caché en ajoutant une « valeur » aléatoire (qui doit me servir pour gérer ensuite des inscriptions à un événement en fournissant une clé unique). Pour cela, je code les choses ainsi dans mon squelette :

    1. [(#SET{une_date,#DATE|strtotime})]
    2. [(#SET{un_nombre,#VAL{1}|rand{3000000}})]
    3. [(#SET{cle_id,#VAL|concat{#GET{une_date},#GET{un_nombre}}})]
    4. [(#FORMULAIRE_FORMIDABLE{3, #ARRAY{hidden_1,#GET{cle_id}}})]

    Télécharger

    Lorsque je valide le squelette, tout fonctionne... mais le message de retour ne s’affiche plus. Je retourne en revanche sur le formulaire vierge.

    Bien entendu, je n’ai rien modifié dans le comportement de base du formulaire. D’ailleurs si je retourne au code d’origine, je retrouve mon message de retour ; idem si je « passe » au hidden_1 une chaîne de caractère saisie « à la main ».

    D’où peut provenir cet étrange comportement ?

    Merci de votre aide.

    GS.

    • Le 11 octobre à 22:38, par gsaunier En réponse à : Formidable, le générateur de formulaires

      Aucune idée ?

      J’ai l’impression que l’erreur provient de la ligne « post » du formulaire qui n’est pas la même entre les deux versions. Mais je n’arrive pas à corriger l’erreur.

      Merci d’avance de votre aide...

    Répondre à ce message

Répondre à cet article

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

  • Mode portail Communiquant pour SoyezCréateurs

    29 septembre 2010 – 19 commentaires

    5e mode d’affichage de la page d’accueil, ce mode se distingue des autres par une animation proposant un fondu/enchaîné des logos des articles à la une. Zonage Configuration Zone d’entête Nom du site Slogan si plugin bandeau présent (...)

  • Plugin Logo SVG : pouvoir utiliser des logos SVG

    17 octobre – commentaires

    Le SVG est un format vectoriel donc très léger et redimensionnable sans pertes, mais SPIP ne l’acceptait pas sur les logos. Ce plugin comble ce manque. Comment ça fonctionne ? Vous installez ce plugin, vous l’activez, et c’est tout. Crédits Une (...)

  • Utilisez le framework Foundation dans vos squelettes !

    13 août 2013 – 58 commentaires

    Foundation est un framework CSS et Javascript très complet pour réaliser des sites sur une grille propre et homogène. Mais surtout, il permet de rendre un site responsive très facilement ! Ce plugin ajoute le framework Foundation sur l’espace (...)

  • LinkCheck : vérificateur de liens

    13 février 2015 – 65 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

  • GIS 4

    11 août 2012 – 1288 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 (...)

Ça spipe par là