Les points d’entrées de Forms&Tables

Le plugin F&T comprend un certain nombre de points d’entrées utiles pour modifier ou enrichir son comportement par défaut sans en modifier le code.

Edition du formulaire

3 pipelines permettent de modifier la phase d’édition des formulaires. Ils sont particulièrement utiles pour ajouter des types de champs complexes.

Nom du pipelineDescription
forms_types_champs appelé avec la liste des types de champs. Permet d’ajouter/modifier des types de champs
forms_bloc_edition_champ appelé avec le contenu du bloc de saisie d’un champ. Permet la modification pour des types de champs supplémentaires.
forms_update_edition_champ appelé lors de la mise à jour d’un champ, en edition du formulaire. Permet d’ajouter des proprietes aux champs

A titre d’exemple, le plugin geoforms utilise ces pipelines pour ajouter un type de champ géolocalisé.

Visualisation du formulaire

Ces 3 pipelines sont appelés dans la phase d’affichage du formulaire.

Nom du pipelineDescription
forms_label_details appelé pour ajouter des explications complementaires sur certains types de champs. Utile pour la gestion de type de champs supplémentaire
forms_input_champs appelé pour chaque champ au moment de générer le <input> de saisie
forms_ajoute_styles pipeline pour ajouter des styles à la css (utile pour styler des champs supplémentaires)

Valeurs du formulaire

2 pipelines pour intervenir sur les valeurs affichées dans le formulaire (pré-replissage par exemple) et le message de succès affiché après validation.

Nom du pipelineDescription
forms_pre_remplit_formulaire appelé avant affichage d’un formulaire, pour permettre un pré_remplissage de certains champs (ex email si le visiteur est identifié)
forms_message_complement_post_saisie appelé pour permettre l’ajout d’un message complémentaire au basique ’votre réponse a été enregistrée’

Enregistrement de la saisie

3 pipelines permettent d’intervenir lors de la phase de validation de la saisie et de son enregistrement.

Nom du pipelineDescription
forms_valide_conformite_champ appelé au moment de la vérification de la saisie des champs. Permet de signaler des erreurs de saisie sur les types de champs supplémentaires
forms_pre_edition_donnee appelé avec la liste des champs et leurs valeurs juste avant leur insertion/maj en base. Permet l’ajout éventuel de champs saisis et non détectés.
forms_post_edition_donnee appelé avec la liste des champs et leurs valeurs juste apres insertion/maj en base

Affichage des donnees

Ce pipeline est appelé pour calculer la valeur en clair des champs retournés par la balise #LESVALEURS

Nom du pipelineDescription
forms_calcule_valeur_en_clair appelé au moment de la transcription valeur en base => valeur affichée pour un champ donné. Permet de prendre en charge des formatages sur des types de champs supplementaires

La balise #FORMS

Elle s’utilise dans une boucle FORMS ou FORMS_DONNEES :

S'utilise dans une boucle FORMS, ou FORMS_DONNEES
<BOUCLE_f(FORMS){id_form}>
#FORMS
</BOUCLE_f>

La balise #FORMS peut prendre 5 arguments optionnels :

argumentrôlevaleur par défaut
class nom du squelette utilise pour afficher les champs du formulaire. vide ou ’forms_structure’
script_validation nom du script utilisé pour valider les réponses/envoyer le mail de confirmation valide_form
message_confirm chaine de langue utilisée pour générer le message d’avis d’envoi de mail de confirmation. Attention, cette chaine doit comprendre la variable @email@ qui sera remplacée par l’email de l’internaute forms:avis_message_confirmation
reponse_enregistree chaine de langue utilisée pour le message « reponseenregistree ». forms:reponse_enregistree
forms_obligatoires liste de formulaires obligatoires avant la saisie du formulaire en cours (?) vide

Exemple

<BOUCLE_f(FORMS){id_form}>
#FORMS{'',valide_form,message_reponse_perso}
</BOUCLE_f>

Discussion

9 discussions

  • Bonjour, j’ai voulu désactiver ce plugin mais cela n’a pas dû bien se passer, depuis je n’ai plus accès à la partie privé de spip comment y rémédier ?

    Répondre à ce message

  • 1

    Bonjour,
    le champ « téléphone » de forms&tables (sous spip2.1.12) refuse les indicatifs à 3 chiffres (ex. maroc +212.123456789).
    Que faut-il modifier pour qu’il les accepte ?
    Merci d’avance

    • Bonjour,

      Avez-vous trouvé une solution concernant l’insertion d’indicatif téléphonique ?

      Je rencontre la même problématique, et ne sait pas comment modifier le processus de vérification (site en SPIP 2.0.9, forms&table pour SPIP 2, version test 0.304)

      Merci d’avance pour votre réponse !

    Répondre à ce message

  • Fifouille

    Bonjour, je souhaiterais mettre en place des formulaires avec un aperçu des réponses (avec bouton aperçu ou prévisualiser) avant envoi définitif ?
    Merci de me donner la procédure à suivre.

    Répondre à ce message

  • Bonjour

    je cherche désespérément a intégrer l’option suivante : si le visiteur est connecté les champs émail et nom se remplissent automatiquement, voir ils n’apparaissent pas mais sont complétés pour l’envoie...
    j’ai cherché qqch comme cela mais en vain :

    $valeurs = array(
    ’email_message’=>$GLOBALS[’visiteur_session’][’email’]
    ) ;

    un grande aide serait bien venue, merci !!!

    Répondre à ce message

  • Luberon Central

    Bonjour,
    Est-il possible de récupérer l’id ou le nom du rédacteur dans le formulaire ?

    Je m’explique, j’ai 2 formulaires :
    -  un pour s’inscrire : http://www.luberon-central.com/blog/spip.php?article1

    Une fois que l’utilisateur s’est inscrit, je lui crée un compte rédacteur.
    Cela lui donne accès à un nouveau menu dans la partie publique (je ne parle pas de la partie privée).
    Si vous voulez tester, j’ai créé un compte rédacteur login : demo mot de passe : demoluberon .
    Dans ce nouveau menu, le nouveau rédacteur a la possibilité de proposer de nouveaux produits http://www.luberon-central.com/blog/spip.php?article4 via un autre formulaire.

    Est-il possible d’insérer quelque part dans le formulaire, l’id ou le nom du rédacteur enregistré afin d’être sûr que c’est bien lui qui remplit ce second formulaire (et pas un autre rédacteur enregistré) et de récupérer cette information dans les résultats du formulaire et dans le mail qui m’est envoyé automatiquement suite à la validation du formulaire ?

    Mille merci.

    Répondre à ce message

  • 1
    Vincent François

    Bonjour,

    Je cherche à surcharger le pipeline « forms_message_complement_post_saisie » pour insrer un bout de code javascript qui permettra à Google Analytics de noter les validations du formulaire.

    Je n’y arrive pas. J’ai créé un petit plugin qui dit dans plugin.xml :


    forms_message_complement_post_saisie
    forms_message_complement_post_saisie
    suppforms_fonctions.php

    et dans le code PHP, un bout d’essai pour voir ce que ça donne de détourner

    function suppforms_forms_message_complement_post_saisie($texte)
    return « XXX » ;

    Mais il ne se passe rien...

    Comment puis-je faire ? Une idée, une piste ?

    Merci d’avance pour toute réponse même incomplète.

    • Bonjour,

      un peu tard pour répondre mais j’ai eu le même problème et en tâtonnant, j’ai réussi à utiliser ces pipelines. J’ai créé un petit plugin pour ça, qui contient 2 fichiers :

      • plugin.xml
      • test_pipeline.php

      dans plugin.xml :

      <plugin>
         <nom>Testounet</nom>
         <auteur>Moi</auteur>
         <version>1</version>
         <etat>dev</etat>
      
         <necessite id="Forms" version="[0.306;]" /> < !-- ma version de Forms & tables -- >
      
         <description>test  pipelines Forms &amp; tables </description>
      
         <prefix>testou</prefix>
      
         <pipeline>
            <nom>forms_message_complement_post_saisie</nom>
            <inclure>test_pipeline.php</inclure>
         </pipeline>
      </plugin>

      et dans test_pipeline.php :

      <?php
      // prefixe du plugin
      if (!defined("_PLUGIN_NAME_TESTOU")) {
      	define('_PLUGIN_NAME_TESTOU', 'testou');
      }
      
      // Nom de la fonction = prefix_mon_plugin_nom_pipeline
      function testou_forms_message_complement_post_saisie($args){
      	// var_dump($args); -> pour voir ce qu'on récupère, ici un Array
      	//  exit;
        // comme c'est un array :
        if(is_array($args)) { 
          $msg = "<h3>Ça marche ...</h3>";
          // on met le message complémentaire dans la ligne de l'array qui correspond :
          $args['data'] = $msg;
          return $args;
        }
      }
      ?>

      il suffit ensuite d’installer et d’activer ce plugin, comme tous les autres

    Répondre à ce message

  • Metalrod11

    Salut,

    Je cherche à faire apparaitre sur une carte Google les enregistrements d’une table.

    Je suis sous SPIP 1.9.2 et j’ai installé et configuré « Forms&Tables 1.9.1 », « Google Map API » et « GIS ». L’ensemble fonctionne :
    -  j’ai inséré des cartes dans la partie publique où je fais apparaitre les articles « géoréférencés » dans la partie privée grâce à l’interface de « GIS »
    -  j’ai créé aussi un formulaire de contact qui fonctionne
    Les trois plugins semblent donc ok.

    J’ai voulu tester le plugin « Geoforms » pour voir s’il répondait à mes besoins (puisqu’il est cité dans cet article et dans celui sur le plugin « Google Map API »). J’ai eu du al à le trouver donc j’ai récupéré un par un les fichiers sur SPIP Zone. Après l’avoir activé, lorsque je souhaite le configurer grâce à l’cône apparue dans dans le menu « configuration » de SPIP, j’obtiens « Fichier inc/geomap_config introuvable ». Y a-t-il un endroit où trouver une version plus récente ? A-t-il été « remplacé » par un autre plugin (y en a-t-il un qui me permettrait de faire ce que je veux : « faire apparaitre sur une carte Google les enregistrements d’une table » ?

    Merci à vous

    Répondre à ce message

  • Salut,

    je voudrais limiter le nombre de caractère du textaera. Pour cela, je cherche à rajouter le code qui va bien dès la génération du formulaire. Mais où se trouve le fichier qui contient le bout de code qui génère le textaera du formulaire ?

    Merci d’avance.

    Répondre à ce message

  • Ritchie

    Super plugin ! installé sous spip 1.9.2.e
    J’ai créé un formulaire où les visiteurs doivent entrer plusieurs champs numériques
    ( ex champA= 54, champB=68, champC=456) je souhaiterais qu’un dernier champ (D, donc) soit calculé automatiquement en fonction des données entrées en A,B et C tel que D=(C/A*B)/100 . Est-ce possible ? Je souhaiterais également que ce champ D s’arrête à 2 décimales. Merci pour l’aide.

    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