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

811 discussions

  • Vianney

    La nouvelle version ne marche pas du tous sur spip 3, lors de l’installation il n’arrive même pas a creer la table spip_formulaires ...

    Répondre à ce message

  • 3

    Bonjour

    J’ai installé la version en développement (ici http://plugins.spip.net/formidable.html), et mon site est sous SPIP 3, squelette zpip modèle greeny.

    Dans l’interface privée, voici le message qui s’affiche quand j’essaye de créer un formulaire :

    Erreur SQL 1146
    Table ’svtbelro_spip.spip_formulaires’ doesn’t exist
    SELECT ’’, formulaires.id_formulaire, formulaires.titre, formulaires.identifiant FROM spip_formulaires AS formulaires ORDER BY formulaires.titre

    Une solution ? Quand j’actualise la page pour avancer, d’autres messages enchaînent...
    D’avance merci pour vos conseils.

    • Bonjour. Dans la même veine, est-ce que ce plugin est ou sera compatible Spip 3.

      Et aussi, y a il un moyen de passer du plugin forms&tables à ce plugin sans tout refaire (formulaires, personnalisations CSS, traductions…) ?

      Merci beaucoup pour votre réponse

    • Oui il y a un paquet pour SPIP 3, comme l’indique la page officielle d’info du plugin (ici c’est la page de doc) : http://plugins.spip.net/formidable.html

      Pour F&T, il y a un formulaire d’importation dans la colonne, qui permet d’importer un export de formulaire de F&T dans son format XML (se reporter à sa doc). Mais à terme je suis censé coder un script d’importation complet sur une même base (cad quand on a F&T installé, que ça aille tout importer, formulaires et réponses, dans les tables de Formidable). Mais il faut du temps... un jour...

    • OK. Merci pour votre réponse rapide.
      Je suis en train de tester, ça a l’air pas trop difficile de passer de l’un (F&T) à l’autre (Formidable).

      Jusque quelques trucs à affiner

    Répondre à ce message

  • 2

    Bonjour et merci pour ce plugin qui marche très bien chez moi.

    Il y a cependant une manip’ que je n’arrive pas a faire, mais qui doit être due à mon incompétence.
    J’aimerais créer une page « signaler un abus » pour les commentaires. Sur cette page on rappelle le contenu du commentaire puis on affiche un formulaire de contact.

    Je n’arrive pas à afficher l’id du commentaire en question dans la « value » du champ « sujet ».
    Si dans « configurer les champs » puis dans « valeur par défaut » je rentre « Abus sur le commentaire #ID_FORUM  », j’ai alors « #ID_FORUM » qui s’affiche et non le numéro de l’id demandée.

    Est-ce faisable ? Avez-vous une idée ?

    Encore merci !

    Abel

    • Cf le paragraphe « Pré-remplir dynamiquement les champs d’un formulaire depuis un squelette » dans la doc juste au-dessus. Faut noter le nom informatique généré pour ce champ, et remplir sa valeur dans le squelette. Tu peux du coup bloquer le champ en lecture seule par exemple, et le remplir toi-même dans le squelette.

    • C’est tout simplement formidable et je n’ai aucune excuse valable.

      Merci \o/

    Répondre à ce message

  • benolaos

    Bonjour,
    Je voulais vous faire part d’une erreur qui parfois s’affiche sur le site public :
    « Aucun squelette formulaires/administration.html n’est disponible... »

    Cela pourrait-il être relié à d’autres erreurs mentionnées ?
    D’où pourrait venir cette erreur ?
    Formidable est formidable, mais il reste manifestement pas mal à faire pour le rendre 100% opérationnel pour les utilisateurs non ableutis (oups, pardon, non avertis ;-)

    Répondre à ce message

  • 4

    Bonjour,

    Est-ce que je peux faire un formulaire que les visiteurs de mon site ne peuvent remplir qu’une fois par jour, en vérifiant l’adresse IP ou en vérifiant qu’une adresse e-mail ayant déja envoyé une réponse ne puisse pas le faire une deuxième fois dans la même journée mais puisse le faire les jours suivants.

    Merci

    Chris

    • oups désolé pour le message doublon, fausse manip !!!

    • De base il n’y a pas cette option, non. Pour l’instant tu peux juste permettre soit plusieurs réponses, soit qu’une seule réponse.

      Il te faudrait surcharger l’autorisation autoriser_formulaire_repondre() en testant depuis quand date la dernière réponse d’une personne, si elle a déjà répondu. Normalement, juste cette fonction devrait suffire. Mais faut programmer ça en PHP, donc.

    • L’option me convient car mon formulaire ne s’affiche qu’un jour sur le site, c’est un autre qui apparait le lendemain. En testant la fonction je me rend compte que la fonction est trés facile a contourner pour l’utilisateur, faisant appel aux cookies, il suffit de changer de navigateur, ou simplement de supprimer les cookies pour pouvoir re-utiliser le formulaire.

      merci

    • C’est évident, si ce sont des anonymes, il n’y a PAS de manière sécurisée de bloquer l’accès à une même personne : un cookie se supprime, et une adresse IP se change en changeant d’ordi ou en passant par un proxy.

      Le seul moyen d’être sûr qu’une même personne (identifiée par son email) ne réponde pas plusieurs fois, c’est d’obliger à avoir un compte et à être connecté pour répondre au formulaire.

    Répondre à ce message

  • 2

    Bonjour,

    J’utilise SPIP 2.1.13 [19292] et j’ai installé votre excellent plugin en version 0.6.6 [59564] avec JQueryUI 1.8.19 [60972] mais je n’arrive pas à déplacer les champs du formulaire à la souris dans l’espace privé lors de la création d’un formulaire (le bouton Déplacer n’apparait pas comme cela est montré dans le tutoriel sur le site http://spip.arscenic.tv/medias/video-tutorials/article/formidable-mon-premier-formulaire).

    Par l’intermédiaire de CFG, ne sachant pas trop quelles librairies de JQueryUI activer, j’ai tout coché mais sans succès. Faut-il cocher uniquement certaines librairies pour que cette fonctionnalité soit active et que le bouton apparaisse, ou y’a-t-il autre chose que j’aurai omis de faire ?

    • Non normalement il faut juste UI et Saisies à jour (il y a eu des changements de chemins de fichier dernièrement). Donc peut-être en mettant à jour Saisies.

    • Bonjour RastaPopoulos,

      Merci pour ta réponse rapide et efficace.

      En effet, en mettant à jour Saisies (en version 1.25.6 [61204]) et en cochant l’option « JQueryUI complet » lors du paramétrage de JQueryUI (par CFG), le bouton « Déplacer » apparaît maintenant et fonctionne.

    Répondre à ce message

  • 1

    Bonjour,

    Le plugin n’est pas disponible sur http://trad.spip.org ? Il manque pourtant des traductions (pas de version anglaise).

    Est-il possible de le mettre en place sur l’interface de traductions ?

    Valéry

    • Oui c’est possible, suffit de commiter sur traductions.txt à la racine.

      Par contre comme ya une version SPIP 3 de commencée, ce serait ce trunk qui récupérerait les traductions à priori. Donc pour la version 2.1 il faudra que quelqu’un se fasse les reports.

    Répondre à ce message

  • culnuteurdebase

    La gestion des pièces jointes est elle prévue pour bientôt ?

    Je m’explique : je réalise mon site et je dois choisir entre formidable et formulaire de contact avancé.

    Aujourdui formidable ne gère pas les PJ donc dois attendre un peux ou passer mon chemin ?

    Répondre à ce message

  • 18
    Antoine

    Je viens d’installer formidable, j’ai le même problème : ERREUR DE SQUELETTE

    => chrono_diff.spip_formulaires’ doesn’t exist

    effectivement aucune table n’a été créé à l’installation.

    Merci de mettre à disposition le sql pour la création des tables pour voir si ça dépanne .

    • Ben il est dans le plugin le SQL, sinon comment veux tu que ça s’installe. :)

    • Raaaah merde j’ai perdu tout mon message ya que la première phrase qui est partie. :(

      Donc je disais : et tes versions ? SPIP ? PHP ? MySQL ?

      Ce qui est bizarre c’est que pour une même version plusieurs personnes m’ont dit que ça marchait par exemple en local mais pas sur le serveur. Donc ça dépend pas juste du plugin ce bug, mais d’un élément extérieur (version de PHP peut-être, je sais pas).

      Apparemment ça ne serait pas un bug SQL mais PHP car une personne m’avait montré des logs avec des phrases du style : « fonction formidable_declarer_tables_principales() inconnue » comme si ça n’avait pas bien inclue le fichier qui les contient. Et forcément si ça n’accède pas à ces fonctions, ça ne risque pas d’installer grand chose.

    • Antoine

      J’ai fait 2 installations :

      1 => SPIP : 2.1.12, PHP : 5.3.10 MYSQL : 4.1.22 => ça ne marche pas.

      voilà ce que l’on trouve dans prive_spip.log

      Apr 01 10:37:51 78.192.124.160 (pid 297649) Erreur - ’formidable_declarer_tables_principales’ non definie !
      Apr 01 10:37:52 78.192.124.160 (pid 297649) Erreur - ’formidable_declarer_tables_auxiliaires’ non definie !

      2 => SPIP : 2.1.12 PHP : 5.2.4-2ubuntu5.12 MYSQL : 5.0.51a => ça marche

      Voici le sql dont je parlais, je l’ai récupéré de ma 2d install et exécuté sur la première et ça marche (pour info je ne l’ai pas trouvé dans le plugin,) :

      CREATE TABLE IF NOT EXISTS spip_formulaires (
      id_formulaire bigint(21) NOT NULL AUTO_INCREMENT,
      identifiant varchar(200) DEFAULT NULL,
      titre text NOT NULL,
      descriptif text,
      message_retour text NOT NULL,
      saisies text NOT NULL,
      traitements text NOT NULL,
      public enum(’non’,’oui’) NOT NULL DEFAULT ’non’,
      statut varchar(10) NOT NULL DEFAULT ’’,
      maj timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      apres varchar(12) NOT NULL DEFAULT ’’,
      url_redirect varchar(255) DEFAULT NULL,
      PRIMARY KEY (id_formulaire)
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

      — --------------------------------------------------------

      — 
      — Structure de la table spip_formulaires_liens
      — 

      CREATE TABLE IF NOT EXISTS spip_formulaires_liens (
      id_formulaire bigint(21) NOT NULL DEFAULT ’0’,
      id_objet bigint(21) NOT NULL DEFAULT ’0’,
      objet varchar(25) NOT NULL DEFAULT ’’,
      PRIMARY KEY (id_formulaire,id_objet,objet),
      KEY id_formulaire (id_formulaire)
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

      — --------------------------------------------------------

      — 
      — Structure de la table spip_formulaires_reponses
      — 

      CREATE TABLE IF NOT EXISTS spip_formulaires_reponses (
      id_formulaires_reponse bigint(21) NOT NULL AUTO_INCREMENT,
      id_formulaire bigint(21) NOT NULL DEFAULT ’0’,
      date datetime NOT NULL DEFAULT ’0000-00-00 00:00:00’,
      ip varchar(255) NOT NULL DEFAULT ’’,
      id_auteur bigint(21) NOT NULL DEFAULT ’0’,
      cookie varchar(255) NOT NULL DEFAULT ’’,
      statut varchar(10) NOT NULL DEFAULT ’’,
      maj timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (id_formulaires_reponse),
      KEY id_formulaire (id_formulaire),
      KEY id_auteur (id_auteur),
      KEY cookie (cookie)
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

      — --------------------------------------------------------

      — 
      — Structure de la table spip_formulaires_reponses_champs
      — 

      CREATE TABLE IF NOT EXISTS spip_formulaires_reponses_champs (
      id_formulaires_reponse bigint(21) NOT NULL DEFAULT ’0’,
      nom varchar(255) NOT NULL DEFAULT ’’,
      valeur text NOT NULL,
      maj timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (id_formulaires_reponse,nom),
      KEY id_formulaires_reponse (id_formulaires_reponse)
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

    • Antoine

      en fait, NON :

      On peut créer le formulaire, mais ça ne s’enregistre pas correctement en base

    • Mais comme le montre le log que tu trouves (et que d’autres m’ont montré aussi) ça a plus l’air d’être une erreur PHP que SQL. Puisqu’il ne trouve pas certaines fonctions, qui pourtant existent dans les fichiers, mais comme si SPIP n’avait pas réussi à inclure ceux-ci avant les appels des fonctions.

      Un problème avec PHP 5.3 lors de l’installation ? Mais je vois pas quoi car ce sont de simples « include_spip() » classique à priori, et pourtant ça marche pour les autres plugins. Et je vois pas ce qui a changé dans le code en rapport avec ces fichiers (dans base/).

    • benolaos

      Bonjour,
      Un élément de réponse ? Je viens de me rendre compte que tant que mes sites tournent avec du MySQL5.0 ça va, mais que les derniers sites (lancés sur OVH) sont en MySQL5.1 et que ceux-ci coincent.
      Cela pourrait-il être un début de réponse ?

    • Il ne me semblait pas puisque c’était des erreurs PHP dans les logs, pas des erreurs SQL. Une personne a réussi a faire marcher (sur OVH aussi, tiens tiens tiens) en enlevant certaines lignes vides dans les deux fichiers du dossiers « base/ ».

    • Pour le cas où cela intéresse : avec PHP 5.3.6 (et MySQL 5.0.8) je n’ai pas eu de problème.

    • Moi non plus, mais apparemment c’est chez OVH que ça ne marcherait pas, d’après les différents retours qu’il y a eu.

      Parmi ceux qui ont eu le bug, y en a-t-il qui ne soient pas chez OVH ?

    • Antoine

      1 => SPIP : 2.1.12, PHP : 5.3.10 MYSQL : 4.1.22 => ça ne marche pas.

      Ce serveur n’est pas chez OVH mais chez un hebergeur US.

    • Même problème pour moi sur OVH et sur One.com
      lorsque je rentre dans edition formidable plein d’erreurs de squelettes puis des erreures a chaque page du plugin

    • Et si vous enlever des lignes vides dans les deux fichiers du dossier base/ ça fait quoi ? Au moins celles juste après la balise d’ouverture, et celles juste avant la balise de fermeture.

    • benolaos

      J’ai testé, j’ai même retiré TOUTES les lignes vides de TOUS les fichiers du plugin... ça ne change manifestement rien à l’affaire...

    • Je précise qu’il ne faut pas les retirer après coup, mais bien avant toute installation, puisque c’est durant l’installation qu’il ne trouve pas les fichiers où sont décrites les tables. Une personne avait indiquée qu’elle avait ce problème de non-chargement des fichiers PHP et qu’elle avait résolu comme ça (ce qui me semble un peu énigmatique mais tentons).

    • HerveB

      Bonjour,

      Ce plugin porte décidément bien son nom, Bravo !
      J’ai rencontré moi aussi les problèmes cités plus haut : utilisation en local OK, bug chez OVH.
      (configuration en vigueur actuellement chez OVH : PHP 5.3.10 / MySQL 5.1)

      Je confirme qu’après avoir nettoyé les 2 fichiers du dossier base/ de leur ligne vide avant et après les balises d’ouverture, fermeture, la réinstallation du plugin s’opère normalement et il fonctionne alors correctement.

      Merci donc pour le partage, et le support !

    • J’ai pu constaté lors d’une récente installation que le fichier formidable_tables.php était plat (une seule ligne), aussi la création des tables n’était pas opérationnelle.
      Après réécriture du fichier, la création des tables se fait normalement.

    • C’est vraiment bizarre car il n’est NI plat, NI n’a de lignes vides en dehors des balises PHP (normalement c’est ça qui fait planter, les lignes vides à l’intérieur des balises PHP n’ont pas à avoir d’incidence, sinon c’est un bug serveur).

    • J’ai vérifié tous les fichiers php du plugin sur mon installation, aucun ne présentait l’anomalie constatée et signalée. j’ai également fait un sondage dans les fichiers de spip, pas la moindre trace de fichier sur une seule ligne. Après réécriture du fichier avec bluefish tout est devenu opérationnel.

      Cordialement cC

    Répondre à ce message

  • 8

    Bonjour,

    Merci bcp. pour ce plugin !

    Je bute en ce moment à cet endroit dans traiter/email.php (vers ligne 117) :

    // on mets le couriel de l'envoyeur dans Reply-To et on laisse
    // le from par defaut de Facteur car sinon ca bloque sur les SMTP un peu restrictifs

    Or, j’ai un SMTP qui n’est pas restrictif, et un formulaire qui a besoin d’avoir l’adresse de l’envoyeur dans le From et non pas le Reply-to (c’est le cas d’un abonnement à un mailing list LISTSERV).

    Est-ce que ce serait acceptable d’ajouter une option pour pouvoir quand même choisir d’utiliser le From ?

    • Cédric a modifié exprès ce point pour passer certains SMTP : http://zone.spip.org/trac/spip-zone/changeset/58923/_plugins_/formidable/branches/v0

      Mais effectivement ça ne concerne pas tout le monde et mériterait de pouvoir être configuré quand on sait à quel SMTP on a affaire.

      Ce que je me demande c’est si les plugins qui utilisent Facteur ne devraient pas rester comme ils étaient, et que ce soit dans Facteur qu’on ait ce choix.

    • Merci de la réponse rapide. Moi je ne vois pas comment faire pour le mieux alors. En attendant, je vais utiliser la version de formidable d’avant la révision 58923.

    • Mais non ... cela ne marche pas bien avec SPIP 3.

    • Mon avis c’est que « Envoyer un mail d’inscription à une liste de diffusion » c’est un besoin fonctionnel différent de « Envoyer la réponse au formulaire par email » :

      • dans le premier cas l’info importante est l’email et est formatée pour une machine (doit être dans le from), et le contenu du mail peut être vide.
      • dans le second cas l’info importante est la réponse au formulaire, l’email n’étant qu’une info parmi les autres, et le mail est formaté pour un humain.

      Paolo, je pense donc que ton besoin justifie un traitement particulier proposé dans Formidable. En distinguant les usages on garde des fonctions simples qui font bien une seule chose plutôt que d’essayer de faire une usine à gaz configurable qui fasse tout à la fois.

    • OK, alors on travaille sur Formidable. Est-ce que toi ou Rasta veut le faire, ou est-ce que je vois ici si on arrive à faire ?

      Avec LISTSERV en effet le message (body) doit contenir un texte comme :
      SUB TAIZE-FR-L prénom nom (ce que j’arrive à faire en surchargeant le squelette). Le From doit contenir l’adresse de l’abonné. Et voilà le prob.

      En fait, en ce moment, les labels de Formidable ne sont pas exactes : « Courriel de l’envoyeur » et « Choisissez le champ qui contiendra le courriel de l’envoyeur » fait penser qu’on peut faire quelque chose qu’on ne peut pas actuellement.

      ... je vois que Formidable pas localisé en anglais. Ça je pourrais bien faire. Mais ce n’est pas dans le système de traduction ?

    • « traitement particulier proposé dans Formidable » — bon avec l’aide d’un jeune ami c’est ça que j’ai essayé de mettre en place tout à l’heure.

    • Ça doit être un truc comme ça :

      Un fichier traiter/diffusion.yaml qui décrit le traitement

      titre: 'Inscrire la personne sur une liste de diffusion'
      description: 'Ce traitement utilise une adresse fournie par la personne qui répond afin de l'inscrire sur une liste.'
      options:
        -
          saisie: 'champ'
          options:
            nom: 'champ_email'
            label: 'Choisir le champ qui contiendra l'email à inscrire'
            env:true
        -
          saisie: 'champ'
          options:
            nom: 'champ_prenom'
            label: 'Choisir le champ qui contiendra le prénom à inscrire'
            env:true
        -
          saisie: 'champ'
          options:
            nom: 'champ_nom'
            label: 'Choisir le champ qui contiendra le nom à inscrire'
            env:true

      Un fichier traiter/diffusion.php avec une fonction

      function traiter_diffusion_dist($args, $retours){
          $formulaire = unserialize($args['formulaire']);
          $options = unserialize($args['options']);
      
          // On récupère la valeur des champs contenant les infos
          $email = _request($options['champ_email']);
          $prenom = _request($options['champ_prenom']);
          $nom = _request($options['champ_nom']);
      
          // On envoie au bon endroit
          $envoyer_mail = charger_fonction('envoyer_mail','inc');
          $envoyer_mail($email, 'Inscription', "SUB TAIZE-FR-L $prenom $nom");
      }
    • Ah j’avais pas vu ton commit de ce midi !

      Mais Cédric parlait bien dans son message de créer un traitement propre à ton besoin, et non de modifier le traitement existant.

      Cf ma proposition ci-dessus, écrit à la va-vite, mais qui colle à peu près.

    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