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

166 discussions

  • 12

    Bonjour,
    j’ai besoin d’aide, je suis perdu depuis la mise a jour.
    1. Pour la configuration je dois choisir « destinataires en fonction d’un champ », pour l’ancien y’avait « Destinataire présent dans un des champ des formulaires » et via une liste déroulante on choisit cf PJ
    2. depuis la mise a jour je n’ai plus « Destinataire présent dans un des champ des formulaires » j’ai des cases a coché et même si je coche le champ de mon choix, l’adresse ne reçoit pas le mail.
    3. Je signale que le champ de mon choix est @hidden_1@, je signal aussi que je ne peux pas fixer une adresse parce que tout simplement les emails changent en fonction de l’article ou je me trouve. Mais avec l’ancienne version du plugin j’avais aucun probléme, il fallait juste choisir le champ

    • Le champ « destinataire présent dans un des champs de formulaire » a été supprimé car il permettait à n’importe qui d’envoyer des courriels à n’importe qui rien qu’en remplissant le formulaire, ce qui en faisait un nid à spam.

      Je ne vois pas où vous avez « des cases à cocher ».

      « Destinataires en fonction d’un champ » est à utiliser si vous avez plusieurs choix dans une liste déroulante (par ex « service technique »/ « facturation » / « propriétaire »). Cela ne répondra pas à votre question.

      La solution la plus propre est de choisir votre champ caché dans « Destinataires », et de mettre, ainsi qu’expliquer, l’identifiant (numéro) d’un auteur du site lorsque vous remplissez ce champ caché. Il ne faut pas mettre un email en clair (ce que vous faisiez apparement avant), car tout adresse email qui apparait en clair sur une page web (y compris dans un champ hidden) peut être récupéré par des robots spammeurs.

    • Bonjour et merci pour la réponse, voici les cases a coché qui est là depuis la mise a jour

    • Bonjour en PJ les cases a coché dont je parle et je l’ai depuis la mise a jour

    • oui, c’est bien cela. Il faut simplement ne pas mettre directement l’email, mais bien le numéro d’auteur dans le champ.

    • Merci pour l’aide que vous m’apportez (j’en ai besoin vraiment), mais je ne comprends toujours pas, si je mets l’identifiant auteur, seul l’auteur reçoit le mail.

      1. Supposons j’ai une liste d’étudiant et chaque étudiant a une ou plusieurs adresses email séparé par une virgule

      2. dans mon formulaire , je crée un champ caché ou j’affecte Email Etudiant @hidden_1@

      3. Ok si je veux q’un auteur reçoit une copie du mail je mettrai l’id auteur et NON écrire directement l’email pour éviter les spams (là je comprends)

      4. Mon problème : Comment configurer le formulaire de sorte que si je me retrouve dans une page étudiant X que l’étudiant X reçoit le mail et l’auteur reçoit une copie du mail, de même que si je me retrouve dans la page de Étudiant Y .......Z ?

      Merci de vos lumiéres

    • Tes explications ne sont vraiment pas claires, en tout cas pour moi. Plutôt que de dire plus ou moins comment tu faisais avant, commence déjà par expliquer clairement ce que tu cherches à faire. À qui tu veux l’envoyer, le formulaire est-il dans un contenu ou un squelette, d’où viennent la ou les adresses de chaque personne, etc ?

    • Bonjour Rasta et Maïeul,
      Merci de bien vouloir m’aidé, je vais essayer d’être plus claire comme vous me l’avez demandé

      1. J’ai crée une nouvelle table « Étudiant » dans la base de donnée via le plugin fabrique auto, il ya un champ dans cette table nommé « Email Etudiant ». ou chaque etudiant peut avoir une ou deux adresses emails séparé par une virgule

      2. dans mon squelette etudiant.html j’appel le formulaire #FORMULAIRE_FORMIDABLE{contact}

      3. si on se retrouve par exemple dans etudiant X (X étant id de étudiant), on rempli le formulaire et on envoie, l’étudiant X doit recevoir le formulaire et moi en tant que rédacteur du site je reçois une copie

      Mon problème : Comment configurer le formulaire de sorte que si je me retrouve dans une page étudiant X que l’étudiant X reçoit le mail et l’auteur reçoit une copie du mail, de même que si je me retrouve dans la page de Étudiant Y .......Z ?

    • Merci, c’est plus clair.

      Le système qui tu avais choisi était vraiment pas terrible
      1) nid à spam car on peut modifier le hidden facilement
      2) révélation du mail des étudiants

      Reste à trouver une solution alternative, facilement configurable.

      Ce que je pourrais voir c’est d’avoir une option, cachée par défaut, permettant de chercher l’email dans un cham quelconque d’une table quelquonce, tout en continuant de passer l’identifiant. Je sais pas ce qu’en pense Rasta ?

    • Mof je vois pas comment tu pourrais t’en sortir avec ça et ça serait énormément usine à gaz, alors en plus un truc usine à gaz qui serait caché ?

      Le plugin Contact libre de b_b permet bien cela, en passant en paramètre les adresses qu’on veut, mais c’est dans les params du formulaire donc, ça passe pas dans un des champs ensuite. Donc il faudrait pouvoir passer des options libres (un tableau arbitraire ?) qui ensuite peut être utilisé par tel traitement, tel sous plugin ou peu importe. Un 4e argument ?

    • caché par défaut dans ma tête = une case à cocher pour pouvoir voir l’endroit où définir la table et le champ.

      Le tableau libre pourrait être une solution, mais faudrait le documenter (alors que je trouve que l’interface à cet interet d’être quasi auto documente).

    • @maieul non mais c’est la fonctionnalité elle-même qui est une usine à gaz et je vois même pas ce que voudrait dire « choisir une table et un champ », à quel moment tu sais de quelle ligne de l’objet il s’agit enfin ça va faire une énorme machinerie incompréhensible (pour 2 personnes au monde), non vraiment faut surtout pas mettre un truc comme ça dans le plugin. :D

    • mouais, tu as sans doute raison. Reste à trouver un mode de documentation de ce tableau d’options.

    Répondre à ce message

  • 2

    Bonjour
    Sur un vieux Spip 2.1.30 et Fomidable 0.9.2

    Je souhaiterais qu’après la validation des formulaires, le retour se fasse non pas en haut de la page de l’article, mais en haut du formulaire : ce qui permet alors de lire directement le message de réussite ou le message d’échec,
    Avec ma vieille version de Formidable, ça ne semble pas possible. Est-ce qu’avec une version plus récente c’est faisable.

    Merci d’avance

    • C’est intégré nativement dans la version de formidable que j’utilise.

      Dans tous les cas, je conseillerai fortement de mettre à joru spip. Les version 2.x ne sont plus maintenues depuis longtemps, et c’est un coup à avoir une faille de sécu qui traine, donc un potentiel piratage.

    • Merci de cette réponse à laquelle je m’attendais un peu et qui confirme effectivement la nécessité de mettre à jour ce site.
      Un peu de cambouis sur les mains en perspective : c’est un squelette artisanal qui ne respecte pas vraiment les standards...

    Répondre à ce message

  • 1

    Export Excel : la colonne adresse IP est vide. Est-ce que c’est normal ?
    Ça me semble un bug.

    • il me semble qu’il y a une option dans les préf de formidable, cochée par défaut, qui demande à ne pas exporter les ip

    Répondre à ce message

  • 4

    Bonjour

    Depuis quelques temps (mais je ne saurai pas dire depuis quand), quand j’affiche la liste des formulaires, ces derniers sont classés par nombre de réponses, ce qui n’est pas pratique (pour moi en tout cas), car l’ordre n’est pas fixe. je voudrais pouvoir trier par numéro de formulaire. Comment faire ?

    Merci !

    • En haut de la liste des formulaires, tu a des entetes clicables, permettant de changer l’ordre de tri. Il me semble que cela conserve en mémopire d’une session à l’autre. Dans la liste de

    • Non, justement, le réglage n’est pas conservé. C’est bien ça le problème, je dois recliquer sur l’entête à chaque fois.

      Par ailleurs, il me semble que ta dernière phrase a été coupée ?

    • C’est moi qui n’ai pas fini ma phrase, mais ce n’est pas très grave.

      La version 3.45.1 tri par titre (moins arbitraire que les numéros de formulaires) + active la memoire du tri (tant que la session n’est pas fermée).

      (ps : dans la config de formidable, j’ai ajouté une option pour avoir les listes des dernieres réponses, tout formulaire confondu, sur la page d’accueil de l’espace privé).

    Répondre à ce message

  • 4

    J’observe une différence entre les 2 versions
    Formidable 3.42.5 - stable
    et
    Formidable 3.43.0 - stable

    Avec la dernière version sur la page ?exec=formulaire_edit&id_formulaire=x&configurer=traitements
    J’ai coché les 2 lignes « Envoyer par courriel » et « Enregistrer les résultats »
    et aucune des sous-options configurable ne s’affiche (cf capture)

    • Les modifications entre ces 2 versions du plugins n’affectent pas cette partie du plugin. Est-ce que par hasard tout tes autres plugins sont à jour ? vide peut etre le cache navigateur.

    • Alors, j’ai fait quelques tests sur plusieurs sites en local et en production. Résultat :

      Saisies pour formulaires 3.28.7 - stable + Formidable 3.42.5 - stable OK
      Saisies pour formulaires 3.28.9 - stable + Formidable 3.42.5 - stable pas OK
      Saisies pour formulaires 3.28.9 - stable + Formidable 3.43.0 - stable pas OK

      Si besoin d’autres tests, me faire signe !

    • C’était la modif de saisies qui posait problème. Jean-Luc vient d’envoyer une correction. Il te faut attendre la version 3.28.10 qui sera bientot disponible en zip. Merci pour le rapport de bug !

    • Ça marche ! Merci bien

    Répondre à ce message

  • 1

    Bonjour,
    J’ai essayé formidable en local, cela fonctionne parfaitement sans aucune manipulation de la base de données.
    Par contre chez l’hebergeur 1and1 (orthophonistesdumonde.fr), lorsque je veux créer un formulaire ou l’importer, j’ai un message :
    Erreur SQL 1146
    Table ’db330805263.odm_formulaires’ doesn’t exist (voir le détail en pièce jointe)

    spip en version 3.2.5, squelettes basés sur Ahuntsic.

    Merci de votre écoute et de votre aide car je suis vraiment novice en programmation.

    • tout se passe comme si l’installation c’était mal déroulé. Je vous conseille donc de desinstaller (je dis bien désinstaller, pas juste désactiver) le plugin, puis le reinstaller.

    Répondre à ce message

  • 7

    Bonsoir,

    J’ai lu attentivement la documentation sur les fonctions CVT (charger(), verifier() et traiter()) afin de pouvoir surcharger celles de Formidable, mais j’ai du louper quelque chose car je n’y arrive pas complètement !

    J’ai tenté de réécrire ces fonctions sans le _dist dans config/mes_options.php : cela semble fonctionner pour les deux dernières mais pas pour la première charger(). Si je cherche à surcharger cette première fonction même en recopiant simplement le contenu de la fonction _dist, le formulaire ne s’affiche plus en ligne !

    Pourriez-vous me repréciser comment surcharger proprement ces fonctions formulaires_formidable_charger_dist(), formulaires_formidable_verifier_dist() et formulaires_formidable_traiter_dist() ?

    De plus, autre problème : lorsque je teste le formulaire en ligne et que je ne renseigne pas les champs obligatoires, je suis surpris que la fonction formulaires_formidable_verifier_dist() ne retourne pas d’erreurs alors qu’un message d’erreur est bien affiché en ligne pour m’indiquer que les champs obligatoires n’ont pas été saisis. Pour des champs obligatoires non complétés, pouvez-vous m’indiquer comment le renvoi d’erreurs est géré ? Quelle fonction s’en occupe ? Comment récupérer ces erreurs ? J’aimerais récupérer ces erreurs dans cette fonction formulaires_formidable_verifier_dist() !

    Merci d’avance pour votre aide.

    PS : je suis sous SPIP 3.0.20 et j’ai mis à jour les dernières versions stables de Formidable (3.42.5), Saisies (3.28.6), YAML (1.5.4) et SPIP-bonux (3.5.4).

    • Si avant de faire une surcharge (qui est quand même un gros gros choc) tu expliquais ton besoin ?

    • Bonsoir Maïeul,

      Mon besoin concerne l’accessibilité : je souhaite après soumission d’un formulaire que le contenu de la balise <title> ... </title> de la page contenant le formulaire s’actualise pour indiquer si la soumission du formulaire a réussi ou échoué.

      Ex :

      <title>[Envoi effectué] - Que pensez-vous du service de paiement en ligne ? </title>

      ou

      <title>[Erreur(s) à corriger - envoi impossible] - Que pensez-vous du service de paiement en ligne ? </title>

      Avant de vous solliciter hier, j’ai cherché sur le forum du plugin et j’avais trouvé ce commentaire de 2017 fait par un autre utilisateur de SPIP. Il me semble que le besoin exprimé est le même que le mien. Cependant, je n’avais pas trouvé de réponse qui pouvait m’aider.

      Avec une ancienne version du plugin Formidable (2.9.14 !), j’avais réussi à mettre ceci en œuvre en surchargeant les fonctions formulaires_formidable_verifier() et formulaires_formidable_traiter() dans les fichiers /squelettes/formulaires/formidable.html et /squelettes/formulaires/formidable.php (ce qui n’est peut-être pas la bonne pratique !!!). Aujourd’hui, comme je souhaite faire une mise à jour du plugin Formidable dans sa dernière version (3.42.5 -> je sais que j’ai pris un peu de retard !!!), je suis en train de réétudier ceci pour ne pas perdre cette accessibilité. Or, en me basant sur la dernière version de Formidable, je n’arrive plus à refaire ce que j’avais fait à l’époque et qui fonctionnait !! Certaines surcharges de fichiers ne fonctionnent plus !

      En résumé ce que j’avais réussi à faire : j’avais rajouté un <input type="hidden" name="form_erreur" value="" /> dans le squelette de formidable et je testais dans les fonctions verifier() et traiter() si des erreurs étaient renvoyées. Si oui, je faisais dans ces fonctions un

      $_POST['form_erreur'] = 'yes'

      et j’avais un squelette inclus dans la balise <title> de la page qui testait si cette valeur était transmise. Si oui, j’ajoutais le message adéquat en début de la balise <title> et j’arrivais ainsi à personnaliser cette balise <title> après chaque soumission du formulaire.

      J’espère avoir été clair dans mes explications. Merci d’avance pour tous les conseils que vous pourrez m’apporter.

    • Bonsoir Maïeul,

      Mon besoin concerne l’accessibilité : je souhaite après soumission d’un formulaire que le contenu de la balise <title> ... </title> de la page contenant le formulaire s’actualise pour indiquer si la soumission du formulaire a réussi ou échoué.

      Ex :

      <title>[Envoi effectué] - Que pensez-vous du service de paiement en ligne ? </title>

      ou

      <title>[Erreur(s) à corriger - envoi impossible] - Que pensez-vous du service de paiement en ligne ? </title>

      Avant de vous solliciter hier, j’ai cherché sur le forum du plugin et j’avais trouvé ce commentaire de 2017 fait par un autre utilisateur de SPIP. Il me semble que le besoin exprimé est le même que le mien. Cependant, je n’avais pas trouvé de réponse qui pouvait m’aider.

      Avec une ancienne version du plugin Formidable (2.9.14 !), j’avais réussi à mettre ceci en œuvre en surchargeant les fonctions formulaires_formidable_verifier() et formulaires_formidable_traiter() dans les fichiers /squelettes/formulaires/formidable.html et /squelettes/formulaires/formidable.php (ce qui n’est peut-être pas la bonne pratique !!!). Aujourd’hui, comme je souhaite faire une mise à jour du plugin Formidable dans sa dernière version (3.42.5 -> je sais que j’ai pris un peu de retard !!!), je suis en train de réétudier ceci pour ne pas perdre cette accessibilité. Or, en me basant sur la dernière version de Formidable, je n’arrive plus à refaire ce que j’avais fait à l’époque et qui fonctionnait !! Certaines surcharges de fichiers ne fonctionnent plus !

      En résumé ce que j’avais réussi à faire : j’avais rajouté un <input type="hidden" name="form_erreur" value="" /> dans le squelette de formidable et je testais dans les fonctions verifier() et traiter() si des erreurs étaient renvoyées. Si oui, je faisais dans ces fonctions un

      $_POST['form_erreur'] = 'yes'

      et j’avais un squelette inclus dans la balise <title> de la page qui testait si cette valeur était transmise. Si oui, j’ajoutais le message adéquat en début de la balise <title> et j’arrivais ainsi à personnaliser cette balise <title> après chaque soumission du formulaire.

      J’espère avoir été clair dans mes explications. Merci d’avance pour tous les conseils que vous pourrez m’apporter.

    • Surcharger des fonctions entières, c’est le mal, car quand elles évoluent (ou simplement même que des bugs sont corrigés) c’est toujours ton ancienne version qui est utilisée. Ça doit se faire que quand vraiment on peut pas faire autrement et notamment qu’il n’y a pas de pipelines.

      Or là tu es dans un formulaire CVT, donc tu as des pipelines pour chacune des étapes (cf doc du noyau). Tu devrais donc pouvoir faire tous les ajouts que tu veux dans les pipelines « formulaire_charger », « formulaire_verifier » et « formulaire_traiter ». En veillant à bien passer après Saisies qui y fait déjà des choses (notamment la déclaration des champs justement, ainsi que leur vérification comme tu le demandais).

    • Bonjour RastaPopoulos,

      Merci pour vos conseils. Je suis d’accord, c’est en effet un peu compliqué de devoir réadapter des fonctions entières de plugin à chaque nouvelle mise à jour !

      Je n’ai jamais utilisé les pipelines et je ne vois pas trop comment les utiliser malgré quelques lectures sur le sujet !

      Quelles pages de la doc du noyau me conseillez-vous de lire ?
      Dans quels fichiers se déclarent ces pipelines ? Avez-vous un exemple complet d’utilisation de pipeline CVT pour que je m’en inspire ?

      Merci encore pour vos conseils précieux que je vais tenter de mettre en œuvre.

    • A noter qu’il y une discussion global sur ce sujet.
      https://core.spip.net/issues/4111

      pour un exemple de pipeline autour de charger/verifier/traiter

      https://programmer.spip.net/formulaire_charger
      https://programmer.spip.net/formulaire_verifier
      https://programmer.spip.net/formulaire_traiter

      et pour comment declarer un pipeline

      https://programmer.spip.net/Qu-est-ce-qu-un-pipeline

      et plutot que de modifier post directement je conseillerait d’utiliser set_request()

    • Bonjour ,

      Dans le cadre d’un audit accessibilité j’avais surchargé le fichier head/artile.html en ajoutant [(#ENV{saisie}) saisie formulaire - ] dans la balise title

      j’avais créé une composition pour ne pas surcharger inutilement tous les articles

      Dans le cas ou il y avait une erreur ça indique

      <title>erreur saisie formulaire - Contact - nom du site  </title>

      L’expert accessibilité avait validé cette solution

      Bonne journée

    Répondre à ce message

  • 2

    Bonjour,
    J’ai un comportement parfaitement incompréhensible sur un formulaire relativement vieux, et qui a subi beaucoup de modifs :
    lorsque j’ai voulu le modifier, il m’affiche sur la barre de gauche tous mes champs @xx@, et pourtant certains champs ne s’affichent pas pour pouvoir les modifier. Plus fou, la disposition des champs n’est pas la même et semble remonter à des années... Sur le site public s’affichent pourtant bien tous les champs @xx@ comme voulu.

    J’ai fait un update des plugins, puis on m’affiche « Il n’y a pour l’instant aucun champ dans ce formulaire ». Je recharge la page, et de nouveau mon formulaire s’affiche, mais toujours le même problème...
    Help !

    • 1) fait deja un export yaml, par précaution
      2) aussi une sauvegarde
      3) puis supprimme tous les fichiers sessions dans tmp. Ca peut être un souci de cache au niveau du constructeur de formulaire.

    • Bonjour Maïeul,
      c’était cela, les fichiers Sessions à effacer,
      Merci !

    Répondre à ce message

  • 4

    Pas de multi-étapes en Spip 3.1 ?

    Bonjour.

    Je tente de faire un formulaire multi-étapes (où j’ai bien coché la case « Activer la gestion multi-étapes ») mais tous mes groupes de champs apparaissent en une page, comme un formulaire classique.

    Configuration : Spip 3.1.11, Formidable 3.42.5, Saisies 3.28.6, PHP 5.3.3-7.

    Or, si j’exporte en YAML et l’importe vers un Spip 3.2.5 (même serveur, même PHP, mêmes versions de Formidable et Saisies), ça fonctionne parfaitement.

    Y aurait-il une incompatibilité avec la 3.1 ? (Ou y aurait-il un truc que j’ai loupé, quelques détails – comme certains plugins installés – étant différents entre les deux Spip ?)

    Merci d’avance pour vos réponses !

    1138.

    • J’avoue que je n’ai pas testé, et ça fait longtemps que je n’ai plus de 3.1. Mais pourtant, l’API multi-étapes a été intégré à SPIP en… 3.0 même, depuis 2012. Avant c’était en plugin en 2.1. Donc bizarre… Il n’y a aucune erreur PHP nulle part ? Si t’actives l’affichage des erreurs évidemment.

    • Et comment fait-on pour afficher les erreurs PHP ? En ajoutant ceci à config/mes_options.php

      error_reporting(E_ALL^E_NOTICE);
      ini_set ("display_errors", "On");

      comme indiqué sur cette page ?

      Mais, si j’ai bien compris, ça affiche les éventuelles erreurs sur les pages publiques. Or, ce site est en prod. :-/
      (C’est ma 3.2 qui est en dev…)

      N’y a-t-il pas moyen de limiter cet affichage d’erreurs à l’espace privé, où l’absence de multi-étapes est également présente ?

    • Ça c’est à toi de voir, soit t’as le même site en local ou sur une instance de dev, pour tester (ce qu’on devrait toujours avoir), soit tu l’actives en prod (mise à part cet endroit là, t’es pas censé avoir des erreurs ailleurs non ? donc ya rien de plus qui va s’afficher ailleurs en théorie)

    • (Mauvais timing : j’ai basculé récemment ma dev en 3.2…)

      Bon, j’ai essayé en mettant les options ci-dessus dans mes_options.php et je n’obtiens aucune erreur.

      (Pour être sûr, j’ai aussi testé de mettre

      define('SPIP_ERREUR_REPORT',E_ALL);

      et j’obtiens bien deux erreurs de variables non définies, mais pour des plugins de Giseh.)

      Je ne vois pas non plus d’erreurs dans la console.

    Répondre à ce message

  • Bonjour,

    L’export au format .xls ne peut être correctement ouvert avec Excel 2016 que si on commence par ouvrir Excel, puis qu’on ouvre le fichier et qu’on configure via les boites de dialogue qu’il y a une ligne de titre et que le séparateur est le «  ; » (un double clic sur le fichier l’ouvre en format bouillie).

    Et le format CSV n’est ouvrable qu’avec Libre Office ou Open Office, en devant préciser UTF-8 dans la boite de dialogue.

    J’aimerais pour Excel proposer d’utiliser cette lib : http://opensource.box.com/spout/
    Je l’ai utilisée avec succès dans SoyezCréateurs.
    Ce serait d’ailleurs l’occasion de mettre cette lib en plugin indépendant que Formidable et SoyezCréateurs nécessiteraient.

    Qu’en dites-vous ?

    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