Formidable, le générateur de formulaires

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

Cette documentation est valable à partir de la version 6.1.0 de Formidable.

Introduction

Historiquement, deux plugins avaient déjà été développés précédemment pour gérer des formulaires :

  • Forms &Tables, qui n’a pas été complètement porté pour SPIP 2.
  • et spip-formulaire créé par artego mais qui n’était plus maintenu.

La question s’est donc posée : construire sur la base d’un des deux plugins ou repartir de zéro ?
Form &Table, très complet pour les utilisateurs, présentait l’inconvénient d’avoir un côté « fourre-tout » qui le rendait difficilement modifiable et difficile à personnaliser par les dévs.

Il a finalement été décidé de repartir de zéro pour proposer quelque chose :

  • de plus facile à utiliser pour les utilisateurs d’une part,
  • mais aussi de plus facile à personnaliser pour les développeur⋅euses.
    Avec le parti pris de se baser de préférence sur plusieurs petits plugins spécialisés et de tirer parti de la nouvelle norme CVT.

Interface utilisateur

L’utilisation basique de l’interface est abordée dans ce screencast : Mon premier formulaire pas à pas : c’est Formidable !

Appeler mon formulaire

Vous devez appeler le formulaire ayant le nom « formidable », en lui passant en paramètre l’identifiant de votre formulaire.

Dans un contenu

Utilisez le modèle <formulaire> classique : <formulaire|formidable|id=34> ou bien <formulaire|formidable|id=contact>

Dans un squelette


#FORMULAIRE_FORMIDABLE{34} ou bien #FORMULAIRE_FORMIDABLE{contact}

Afficher les résultats du formulaire

Dans un contenu

Utilisez le modèle <formulaire_analyse|id_formulaire=34>

Pré-remplir dynamiquement les champs d’un formulaire

À noter, vous avez la possibilité de surcharger dans l’appel, les valeurs par défaut des champs de votre formulaire. Pour cela, vous devez passer un tableau de nom=>valeur en deuxième paramètre. Vous pourrez trouver les noms de vos champs dans l’aide-mémoire situé sur la page de configuration des traitements.

Dans un contenu

Le tableau de valeurs dans un paramètre defaut sous forme d’une suite de chaînes « clé,valeur » séparée par des virgules :
<formulaire|formidable|id=contact|defaut=hidden1,valeur,input_5,autrevaleur>

Dans un squelette

Le tableau en deuxième paramètre :

#FORMULAIRE_FORMIDABLE{contact, #ARRAY{nom_du_champ, Ma valeur}}

C’est particulièrement utile pour remplir un champ caché avec une valeur dynamique venant du squelette :

#FORMULAIRE_FORMIDABLE{contact, #ARRAY{hidden_1, #ID_DOCUMENT}}

Autres options utilisable dans le squelette

Il est possible de passer des options comme troisième argument du formulaire, sous forme de tableau (#ARRAY).

Options possible comme troisième argument de #FORMULAIRE_FORMIDABLE
Nom de l’optionFonctionType
forcer_modif Permet de forcer la modification d’une réponse, même si non autorisé Booléen
id_formulaires_reponses Identifiant de la réponse à modifier Entier
no_ajax Désactiver l’ajax sur le formulaire Booléen
traiter_email_destinataires Destinataires pour le traitement Tableau (#ARRAY) d’emails ou liste d’emails séparés par des virgules
traiter_email_destinataires_methode Indique si traiter_email_destinataires doit remplacer les emails déjà configurés dans le traitement ou les ajouter Au choix 'remplacer' ou 'ajouter' (valeur par défaut)
url_redirect Url de redirection Chaine

Exemple d’un formulaire Formidable dont l’identifiant est contact_libre et dont l’email destinataire est dans le champ email de la table de votre objet #EMAIL de la table spip_contacts ….

<div class="ajax">
#FORMULAIRE_FORMIDABLE{contact_libre,'',#ARRAY{traiter_email_destinataires,#EMAIL}}
</div>

Case unique

Pour rendre obligatoire la réponse oui à une case unique (pour la validation de conditions d’utilisation par exemple), il faut simplement rendre le champ obligatoire.

Courriels de notification

Une option des traitements proposés permet d’envoyer un mail de notification automatiquement, à chaque saisie d’un formulaire.

Le squelette par défaut employé pour la mise en forme de ces mails est plugins/formidable/notifications/formulaire_email.html. Vous pouvez le copier dans le répertoire ’notifications’ de votre squelette et l’y modifier à votre guise. Cette modification vaudra pour tous les formulaires.

Pour utiliser un squelette spécifique pour les mails de notification de l’un seulement des formulaires définis avec Formidable, il suffit d’ajouter son squelette dans le répertoire ’notifications’ de votre dossier squelettes, mais en ajoutant l’identifiant.

IDENTIFIANT étant l’identifiant du formulaire défini dans Formidable, les squelettes doivent se nommer :
formulaire_IDENTIFIANT_email.html pour le mail aux destinataires
formulaire_IDENTIFIANT_accuse.html pour l’accusé de réception du visiteur

Conservation des IP

Les adresse IP des personnes répondant aux formulaires sont stockées en base de donnée. Depuis la version 1.5 (SPIP 3) / 0.7 (SPIP < 3), elle sont automatiquement hashé, de manière à ce que l’IP ne soit plus reconnaissable, au bout de 124 jours (environ 4 mois).

Pour changer ce délai, vous pouvez redéfinir la constante _CNIL_PERIODE dans votre fichier mes_options.php.

Par exemple :

define('_CNIL_PERIODE', 24*3600);

permet de hasher les IP toutes les 24 heures.

Si vous voulez désactiver le hashage, mettez la valeur à 0.

Envoi de fichiers

Lire l’article complémentaire : Envoyer des fichiers avec un formulaire Formidable.

Mise en forme des saisies

Le plugin ne prévoit aucun réglage de mise en forme des saisies : c’est à chaque squelette d’avoir ses styles. Il respecte cependant la convention d’écriture des formulaire SPIP. Il permet d’ajouter des classes spécifiques sur les saisies.

Affichage des réponses sous forme de tableau

Le plugin Formidable Tablesorter permet d’afficher sous forme de tableau les réponses, dans l’espace privé, avec possibilité de tri et de filtre.

Voir aussi sur le wiki


-  Complément de doc et exemples sur les boucles et balises de formidable
-  Exemples de stylage CSS d’un formulaire Formidable
-  todoFormidable
-  Formidable, présentation aux Grottes (2010)

Discussion

812 discussions

  • 5

    Bonjour,

    Et bravo pour cet outil.

    J’ai un formulaire dans un article et j’aimerais qu’un des champs soit pré-rempli automatiquement avec le titre de l’article dans lequel il apparaît.

    Possible ? Pas ?

    Un grand merci à vous

    • Oui et non. En squelette on peut, comme expliqué juste au-dessus dans la documentation de cette page. Dans une insertion en modèle dans un contenu, là ce n’est pas possible.

      Après si c’est dans UN article précis, qu’on connait donc forcément, il suffit de mettre une valeur par défaut du même titre que l’article, dans le champ en question.

    • Pas sûr de très bien comprendre... (un peu neuneu !)

      Mon formulaire est dans le squelette article :

      #FORMULAIRE_FORMIDABLE{commentaires_malles, #ARRAY{@input_3@, #ID_ARTICLE}}

      Est-ce que dans le champ « @input_3@ » j’aurais l’ID de l’article qui a fait l’objet de la saisie ?

      Merci de votre bienveillance.

      Robert

    • Oui, mais sans les arobases, comme l’indique la documentation ci-dessus.

    • Oui. Merci, ça marche...

      C’est quand même dommage de ne pouvoir récupérer directement le titre de l’article.

      Merci et bravo

      Robert

    • Mais de quoi tu parles ? Je te dis que c’est possible en squelette, tu me dis qu’en plus ton insertion est bien dans un squelette et non dans un contenu, et ensuite tu dis que c’est dommage de pas pouvoir...

      Si tu peux mettre l’ID dans le tableau, ça veut bien dire que tu peux mettre n’importe quoi d’autre, non ? Tu mets #TITRE, #TEXTE, « crotte de bique », #GETprout, ou n’importe quoi que tu veux retrouver en valeur par défaut dans un des champs.

    Répondre à ce message

  • 7

    Pour le besoin d’un de mes sites, j’ai utilisé Twitter Boostrap pour la gestion du responsive, dont les formulaires. J’ai surchargé certain fichier du plugin dans les squelettes, mais cela modifie également les formulaires de l’administration... du coup ceux-ci ne sont plus utilisable.

    Comment faire ?

    • C’est quoi le rapport avec le plugin documenté ici ?

    • En me relisant j’ai compris que je pouvais ne pas être clair, désolé ;-)

      J’ai surchargé dans mes squelettes l’HTML généré par les plugins Formidable et Saisies car j’utilise Twitter Bootstrap pour mes pages publique. Depuis l’interface d’administration du plugin reprend ces fichiers modifié. Je croyais pourtant que les fichiers dans le répertoire squelettes ne servaient que pour les pages publique du site.

    • Absolument pas, ya une liste de chemin avec un ordre de priorité (squelettes/ puis plugins/ puis prive/ puis racine, etc) et le fichier qui a la priorité la plus haute est pris. Donc si tu surcharges n’importe quoi utilisé aussi dans le privé, ben ça le surcharge partout.

      Mais je vois absolument pas pourquoi il faudrait surcharger les squelettes de Saisies pour utiliser Bootstrap... je l’utilise depuis longtemps et ya juste à adapter les CSS, pas modifier le HTML.

      Il y a même un plugin pour ça, qui intègre le framework ET ajoute à Bootstrap les adaptations propres à SPIP : http://zone.spip.org/trac/spip-zone/browser/_plugins_/bootstrap

    • Non, le dossier squelettes a un nom mal choisie lié à un héritage historique.

      Il surcharge tt type de squelettes, que ceux soient appelés en public ou ou privé.

      Pour résoudre le pb plusieurs solutions

      a) regarder du côté du plugin spip bootstrap
      http://zone.spip.org/trac/spip-zone/browser/_plugins_/bootstrap -> aucune idée de ce qu’il fait, ne connaissant rien à bootstrap et à tt ces « framework » css mais c’est cedric qui l’a codé, il doit y avoir quelque chose de propre et utile derrière
      b) intégré les css bootstrap dans l’espace privé de SPIP. Avec la pipeline http://programmer.spip.net/header_prive.
      c) dans le squelette de saisie générer un HTML ≠ selon qu’on est en espace privé ou pas. http://www.spip.net/fr_article5577.html

    • bon, ben Rasta me confirme que l’option a) est la meilleure.

    • Tout d’abord merci de vos réponses et de leurs rapidité.
      Je ne connaissais pas ce plugin, je vais donc l’essayer.
      Une première remarque cependant, ayant besoin de modifier les fichiers less de Bootstrap afin d’adapter le framework au besoin requis pour le site (par ex : largeur et nombres des colonnes de la grille, padding des lignes, modification cosmétique...), le défi sera donc d’appliquer mes modifications au plugin Bootstrap pour Spip sans que cela casse tout !
      Je vous tiendrais au courant.
      Merci encore

    • Il suffit juste de surcharger l’une ou l’autre des feuilles LESS en gardant la même arborescence relative (css/truc.less). Essentiellement variables.less à changer en fait, pour calibrer la grille et la typographie. Ensuite le reste (le thème graphique, couleur, etc) se fait plutôt en surcharge CSS en aval.

      Cf pour exemple les thèmes des squelettes de la famille SPIPr (spipr-dist, spipr-blog, etc), qui utilise Bootstrap comme base :
      http://zone.spip.org/trac/spip-zone/browser/_themes_/spipr/v1/readable/css

    Répondre à ce message

  • 3
    jpquartier

    Bonjour,

    en cas d’absence de réponse à un champ obligatoire la phrase suivante est retournée :
    « Il y a des erreurs dans les champs ci-dessous, veuillez vérifier votre envoi. »

    J’aimerai modifier cette phrase, en particulier son style, mais je ne la trouve nulle part dans les différents scripts utilisés.

    Merci par avance de guider mes recherches !

    • Le style n’est pas du ressort de ce plugin, mais du thème, des fichiers CSS utilisés dans le site.

    • jpquartier

      merci pour cette réponse.
      j’ai rajouté une ligne dans le fichier habillage.css et obtenu ce que je cherchais.

      Question complémentaire : comment modifier le texte envoyé en cas d’erreur ? Je n’ai pas trouvé où se cachait cette phrase.

      Et merci et bravo pour ce génial plugin qui fonctionne parfaitement tout en étant simple d’utilisation !

    • Il n’y a pas de moyen de changer cette phrase pour l’instant, à part globalement en surchargeant la chaîne de langue utilisée pour cette phrase (en ayant un fichier de langue du même nom, je crois que c’est dans celui de Saisies, mais en ne laissant dedans que la chaîne qu’on veut changer).

    Répondre à ce message

  • 4
    Polar oïd

    Bonjour,

    J’aimerais savoir si il serait possible de demander à un formulaire de mettre à jour une table native SPIP, par exemple spip_auteurs (en plus des tables natives du plugin lui-même) ? Si oui, comment ?

    Fabriquer un formulaire qui pourrait faire cela serait Formidable ;) !

    • Polar oïd

      Formidable et Formitable : modifier un champ dans la table spip_auteurs


      Merci pour cette réponse qui ouvre des perspectives jusque la remisées à la case impossibilité, sans ce plugin FormiTable que je suis en train de tester.

      Au stade actuel, je ne parviens pas à le configurer correctement... Dans un premier temps, si tu voulais me mettre sur la voie ?

      J’aimerais pouvoir modifier le contenu du champ bio dans la table spip_auteurs grâce à un formulaire Formidable (paramétré avec FormiTable) qui contient un champ unique de type @input_1@. J’aimerais que le formulaire intervienne pour l’ id_auteur en session.

      1 : J’aimerais que le Formulaire enregistre les réponses dans la base (comme dans le cas d’un fonctionnement normal ou cette option est choisie) et qu’il fasse une maj de spip_auteurs => bio .

      Du coup, je ne sais pas comment paramétrer FormiTable : « Simple Table Utilisateur » ou « Enregistrement dans une table utilisateur » ? De plus, Faut-il conserver simultanément l’option « Enregistre les résultats du formulaire dans la base de données » de Formidable ?

      2 : Si je sélectionne l’option « Enregistrement dans une table utilisateur » comment paramétrer la suite ?

      2-1 : « Table destinataire » => spip_auteurs ?
      2-2 : « Correspondances du formulaire vers la table » => input_1|bio ?
      2-3 : « Champ auteur » => ?
      2-4 : « Réponses multiples » => « oui » (ici c’est ce que je veux)
      2-5 : « Clé primaire » => ? (je ne comprends pas, est-ce la clé primaire de spip_auteurs, si oui quelle est-elle ? Je ne maitrise pas suffisamment mysql...)
      2-6 : « Modération » => ici je voudrais que les résultats soit publiés par défaut donc je sélectionne « modération à posteriori »
      2-7 : « Champ statut » => d’après ce que je comprends spip_auteurs ne nécessite pas de statut pour les réponses, dans ce cas, que faut-il faire avec ce champ ? le laisser vide ? Dans mon cas, je vide le champ...

      Je fais un test, voici ce que me retourne le formulaire :

      Erreur : l'insertion dans la table (spip_auteurs) ne se fait pas bien.Duplicate entry '1' for key 'PRIMARY'

      Array
      (
          [bio] => test
          [id_auteur] => 1
      )

      Bref, y à un problème :)

      -  Je ne comprends pas la question de la clé primaire.
      -  Je ne comprends pas les différences entre les paramétrages « La sauvegarde est faite dans une table utilisateur, sans alimenter la table de formidable » et « La sauvegarde est faite dans une table utilisateur, sans se  »référer«  => ( ? pas suffisamment explicite) à la table de réponse gérée par formidable » et la relation avec « Enregistre les résultats du formulaire dans la base de données » de formidable...
      -  Je ne comprends pas comment paramétrer « Champ auteur »
      -  Je ne comprends pas comment il faut paramétrer « Champ statut »

      La documentation du plugin est assez succincte pour les non initiés, on ne trouve pratiquement aucun retour d’expérience concernant l’utilisation de FormiTable sur le net => Besoin d’aide !

      Je suis persuadé que ce plugin ouvre sur de nombreuses possibilités très attendues car il permet de fabriquer des formulaires qui interagiraient avec les tables SPIP natives, tables que Formidable n’atteint pas, puisque tournant sur lui même à ce niveau.

      Si tu pouvais répondre à ces quelques questions, ce poste aurait une grande valeur pour ceux qui voudraient entamer l’utilisation de Formitable et qui, comme moi, ne sont pas spécialistes de mysql ni de la fabrication de formulaires CVT...

      Merci d’avance pour la communauté des users SPIP et de moi ;)

      T.

    • Aucune idée, c’est JLuc qui a fait ce plugin, pas moi, et je ne l’utilise pas. :)

    • Hello,

      je n’utilise plus formitable (et ne fais plus de devs spip ces temps ci).

      En tout cas, voici quelques réponses en bref qu’il te faudrait tester :
      -  la clé primaire de spip_auteurs c’est id_auteur
      -  le champ auteur, c’est aussi id_auteur
      -  ya pas de champ statut donc tu n’y met rien

      Mais le problème surtout c’est que tu veux éditer la bio DE L’AUTEUR COURANT « en session », et que ça n’est absolument pas prévu pour autant que je me souvienne. Il te faudra faire un dev spécial, et pour cela ce sera probablement bien plus simple de faire un formulaire sans formitable en php et HTML, éventuellement avec CVT.

    Répondre à ce message

  • 1

    Bonjour Rastapolpoulos

    Je vois qu’il est possible de remplir dynamiquement les champs d’un formulaire dans un squelette.

    Mais est-il possible de le faire dans un article ?

    <formulaire|formidable|id=form1|monchamps=2.7>

    MERCI

    • Non ce n’est pas possible car le modèle « formulaire » qui est à SPIP, pas au plugin, n’accepte que de donner les paramètres du formulaire (des fonctions CVT quoi), dans le même ordre, ya pas de notion de clé=>valeur en fait, le nom des variables n’est pas utilisé, ça appelle juste le formulaire en passant les paramètres. Or les champs doivent être donnés dans un tableau pour l’instant, donc pas possible.

    Répondre à ce message

  • 1

    Bonjour tout le monde,

    J’ai une question concernant l’aspect « multilingue » du plugin. J’utilise des balises « multi », malheureusement mes formulaires n’apparaissent que dans ma langue par défaut.

    J’utilise également le plugin « Multilang », celui-ci n’apparait pas lors de l’édition des formulaires ... La config de Multilang propose l’activation sur les formulaires ... mais peut être qu’il ne s’agit que du plugin form et tables avec lequel, pour sûr, tout cela fonctionne.

    Est-ce un oubli dans ma config ?

    Je vous remercie pour cette contrib qui fait désormais partie des incontournables !

    Cordialement,
    Julien

    • J’avoue que je n’ai jamais testé vraiment ça, en tout cas pour Multilang. Pour les multi normalement ça marche bien partout, y compris dans les listes de valeurs de liste déroulante.

      Tu insères ton formulaire dans un squelette où dans un contenu SPIP ? Si c’est dans un contenu et que celui-ci est dans ta langue principale (un article ou une rubrique, etc), ben ça prend peut-être la même du coup. Tu utilises l’option « forcer_lang » (http://programmer3.spip.net/Forcer-la-langue-selon-le-visiteur) ?

    Répondre à ce message

  • 1
    Polar oïd

    Bonjour,

    Tour d’abord, merci à tous les contributeurs qui nous font avancer dans l’utilisation de ce plugin formidable !

    J’aimerais disposer d’ id_formulaires_reponse au retour du formulaire c’est à dire une fois que celui-ci à été validé (donc id_formulaires_réponse est en bdd ). J’aimerais configurer l’url de retour avec id_formulaires_réponse sous la forme &id_formulaires_reponse=id_formulaires_reponse afin de pouvoir exploiter certaines données de ce formulaire qui seraient passées en variables d’environnement dans un squelette via l’url et récupéré comme tel : #ENV{id_formulaires_reponse}...

    Aprés la validation du formulaire, je ne trouve pas id_formulaires_reponse dans ce que retourne la balise #ENV placé dans la page ou se trouve le formulaire... Rien avec #SESSION non plus...

    Comment faire pour récupérer id_formulaires_reponse aprés la validation d’un formulaire ?

    Il me semble que de pouvoir disposer de cette information est d’une grande importance si on souhaite exploiter les données soumises à un formulaire. J’ai retourné tout le forum, je ne trouve pas de réponse. Les posts qui évoquent la question de l’utilisation id_formulaires_reponse ne suffisent pas à trouver de réponse dans mon cas voir :

    http://contrib.spip.net/Formidable-le-generateur-de-formulaires?debut_comments-list=100#forum461122

    http://contrib.spip.net/Formidable-le-generateur-de-formulaires?debut_comments-list=10#forum467090

    J’arrive à récupérer la variable avec :

    <BOUCLE_reponse(FORMULAIRES_REPONSES){tout}{id_formulaire=#ENV{id_formulaire}}>
    
    #ID_FORMULAIRES_REPONSE
    
    </BOUCLE_reponse>

    dans le squelette qui contient le formulaire mais cette boucle me retourne toutes les réponses au formulaire et j’aimerais disposer uniquement de id_formulaires_reponse relative au formulaire validé en session...

    Avez-vous des suggestions, afin que je puisse poursuivre mon développement ?

    Bien à vous amis spipeurs !

    • Sur la page sur laquelle tu as redirigé, tu dois pouvoir récupérer l’identifiant de la réponse du visiteur en cours.

      #SET{liste_reponses, #ID_FORMULAIRE|formidable_verifier_reponse_formulaire}

      Tu as alors dans cette variable un tableau, contenant la liste des identifiants de réponses du visiteur en cours à ce formulaire-là (dont il faut connaître l’id évidemment).

      Si c’est un formulaire où les gens ne peuvent répondre qu’une seule fois, ben t’as qu’une seule valeur dedans. Sinon t’as toutes les réponses associées au même visiteur.

      Tu peux donc utiliser ces identifiants pour afficher les champs de réponses ou autre, suivant ce que tu voulais faire.

    Répondre à ce message

  • 2

    Bonjour,

    Petit retour de bug (?), sur un spip 3.010 tout frais, et le bien-nommé Formidable 1.3.5, en fin de configuration de formulaire, je reçois : « Fatal error : Unsupported operand types in /var/www/blablabla/plugins/auto/formidable/v1.3.5/formulaires/formidable.php on line 54. »
    La version de PHP est 5.1.6, au cas où... Merci.

    Bien cordialement, Luc.

    • PHP 5.1 est notoirement bugué et a duré très peu de temps, vite remplacée par la 5.2, qui rajoute au passage quelques fonctions. Il faut au minimum PHP 5.2 pour Formidable, mais en général aussi.

    • Juste, juste ; les hébergeurs suisses ne sont plus ce qu’ils étaient. Je vais regarder le moyen de faire upgrader ça. Merci beaucoup, et quelle promptitude !

    Répondre à ce message

  • 6

    Vraiment super (pour ne pas dire formidable) et très complet.

    Je viens de faire deux formulaires qui fonctionnent très bien et j’aimerais remplacer le
    [Obligatoire] qui, à mon sens, diminue la lisibilité par une simple étoile.

    Je n’ai pas trouvé où ça se trouve - possible de m’aider ?

    • C’est l’étoile qui diminue la lisibilité et l’accessibilité. Pour que ce soit accessible avec des étoiles il faut ajouter plein de choses en plus : au minimum une légende en début de formulaire, ainsi que des attributs « title » sur chaque étoile pour avoir le texte « obligatoire » dessus.

      Mais ça peut peut-être être fait en CSS aussi... Du genre (au hasard complet) :

      .formulaire_spip .obligatoire{ text-indent:-10000px; }
      .formulaire_spip .obligatoire:after{ content:"*"; color:red; }
    • Oui , rien à voir avec formidable, de fait.

      J’ai trouvé une autre solution sur spip.user :
      placer dans squelettes/lang/ un fichier local_fr.php ainsi composé :

      <?php
      // This is a SPIP language file  --  Ceci est un fichier langue de SPIP
      $GLOBALS[$GLOBALS['idx_lang']] = array(
      'info_obligatoire_02' => '*',
      );
      ?>

      une légende en début de formulaire et le tour est joué - en tout cas je trouve le résultat plus sobre
      encore merci

    • Je le répète, ça ne coûte rien : c’est TRES MAL du point de vue de l’accessibilité (et ce n’est pas une question de « goût et couleur ». Mais tu fais bien ce que tu veux... :-)

    • C’est sympa de dire que c’est « Très mal » mais pourquoi donc ?
      Etant donné que tous les formulaire que l’on trouve sur le web sont généralement doté d’une étoile lorsque les champs sont obligatoire...

      Cordialement ;-)

    • Bonsoir Jérémy

      L’idée globale est de permettre l’accès aux sites au plus grand nombre de personnes , y compris à l’ensemble des personnes qui ont des problèmes d’accessibilité (personnes rencontrant des problème de vue, par exemple).

      Dans certains cas, les pages ne sont pas vues, mais dictées par le navigateur (à haute voix) ; biens des personnes utilisent une loupe qui ferait criser les personnes ayant une bonne vue...

      Avez-vous déjà vécu ce moment agaçant ou il manque un élément pour valider un formulaire et ou vous ne réussissez pas à voir lequel c’est ?

      Si vous voulez avoir une approche de ce dont je veux parler, essayez de remplir un formulaire en le lisant à travers un verre...

      Nous n’avons pas tous la même vision et le contenu de votre site peut tous nous intéresser.

      Cordialement
      Jean-Michel

    • Polar oïd

      Solution JavaScript avec une class « red » pour le css. L’avantage de cette solution permet de ne pas modifier la source du plugin...

      <script language="JavaScript">
      jQuery.noConflict();
      jQuery(document).ready(function() {
      
      // on remplace le contenu du span de class ".obligatoire" par une " * " ou autre...
      	
      jQuery('span.obligatoire').replaceWith('<span class="red"> *</span>'); 
      
      // on détermine la couleur du span de class ".red"
      
      jQuery('.red').css({
      "color" : 'red'
      });
      
      });
      
      </script>

      Note : jQuery.noConflict() ; permet d’éviter les conflits à propos de l’appel de l’alias « $ » avec une autre librairie qui utiliserait également ce nom pour une de ces fonctions. A l’appel de cette fonction, « $ » ne sera plus considérée comme l’alias de jQuery, il faudra utiliser le nommage jQuery.

      Note2 : On peut simplement modifier la feuille de style pour indiquer la couleur de l’étoile sans utiliser la méthode jQuery().css() ;

      Note3 : Par extension, on peut utiliser jQuery pour mettre en forme l’ensemble des formulaires qu’on voudra. Ce qui permet par exemple d’utiliser les nombreuses animations proposées par JQuery... On prendra soin d’ajouter une balise « noscript » pour inviter l’utilisateur à activer javascript si nécessaire dans son navigateur...

      <noscript>Vous devez activer JavaScript dans votre navigateur pour utiliser ce formulaire, site, page...</noscript> 

    Répondre à ce message

  • Bonjour,
    Envisagez-vous d’ ajouter des questions filtres (conditionnelles)
    Cordialement
    FDG

    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