We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 18219
    • 826 Posts
    Bonjour à tous,

    J’ai besoin de faire un formulaire de contact relativement complet.
    J’entends par "complet" la présence de nombreux champs pour qualifier l’internaute qui souhaite envoyer un message : Nom de l’entp, Adresse CP et Ville de l’entp, Nom et prénom de l’interlocuteur, Divers n° de tél (direct, celui de l’entp, portable, fax), jours et plage horaire pour le recontacter, sujet et message...

    Bien entendu, certains champs sont obligatoires, d’autres non.
    D’autres aspects s’ajoutent : Page de confirmation, page de remerciement. Le tout personnalisable.

    Je recherche le composant (snippet) me permettant de réaliser ce formulaire de contact, composant qui devrait inclure le contrôle des champs soit par JS, soit coté serveur (dans le cas ou JS est désactivé).

    MODx propose plusieurs snippets capables de réaliser des formulaires de contact :
    - ContactForm (livré avec le package) : simple à mettre en oeuvre mais peu de contrôle.
    - FormProcessor
    - eForm

    Avez-vous déjà réalisé un tel formulaire et quel a été votre choix ?

    Merci pour vos conseils avisés.
      Marc
      I'm French... Sorry for my bad English, I use ' Google Translator' or other... but that remains that tools wink
      • 1876
      • 835 Posts
      Bonjour,

      Personnellement, aucun de ceux la, j’ai tous fais à la main avec un choix de l’email du destinataire dans un table mysql en fonction d’une réponse à une drop down list. Je viens de trouver un script de vérification en php Il doit etre intégrable à modx.

      REQUIREMENT
      Valid REQUIREMENT strings are:
      required field must be filled in
      digits_only field must contain digits only
      length=X field has to be X characters long
      length=X-Y field has to be between X and Y (inclusive) characters long
      valid_email field has to be valid email address
      valid_date field has to be a valid date

      fieldname: MONTH field
      fieldname2: DAY field
      fieldname3: YEAR field
      date_flag: "later_date" / "any_date"
      same_as fieldname is the same as fieldname2 (for password comparison)
      range=X-Y field must be a number between the range of X and Y inclusive


      Mais si certains ont un retour des snippets cité je suis aussi preneur
        • 1186
        • 202 Posts
        Bonjour,

        J’avais eu une petite discussion sur ce sujet avec Negz: http://modxcms.com/forums/index.php/topic,4998.15.html

        ContactForm : limité et pouvant poser problèmes techniques
        eForm : un peu trop compliqué à personnaliser

        Dans ce même sujet de discussion est abordé une méthode pour construire son propre snippet (affichage, traitement, gestion des erreurs, page de remerciement, etc.), cela pourra peut-etre aider...
          R
          • 18219
          • 826 Posts
          A lire vos réponses, j’ai l’impression qu’il faudra que je développe un snippet rolleyes
            Marc
            I'm French... Sorry for my bad English, I use ' Google Translator' or other... but that remains that tools wink
            • 11975
            • 2,542 Posts
            Salut marc,

            si tu as le temps, regrade la classe makeform d’opengeek.
            On peut créer aisément des formulaires avec.
            Son système de templating la rend très souple et flexible.
            On peut générer le rendu que l’on souhaite, accéder à tous les attributs de chaque éléments et rajouter ceux qui seraient manquants.

            :-)
              Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
              • 18219
              • 826 Posts
              Oui je ne voulais pas partir dans du code mais compte tenu des réponses et de mon besoin, je vais devoir me plonger dedans :’(

              Alors je vous présenterais le code pour le tester si vous êtes intéressés wink
                Marc
                I'm French... Sorry for my bad English, I use ' Google Translator' or other... but that remains that tools wink
                • 11975
                • 2,542 Posts
                Si tu as besoin d’aide, n’hésite pas.
                J’ai pas mal trifouillé dedans et je commence à bien saisir sa logique.

                :-)
                  Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                  • 18219
                  • 826 Posts
                  Je me demande si eForm ne pourrait pas répondre à mon besoin.
                  A regarder rapidement dans le code, je ne vois pas de vérification des zones en JS. C’est pourtant ce que je cherche.

                  Oui, si je me lance ds le devlp j’aurais besoin de tes lumière. J’ai jeté un oeil ds makeform et pour le moment cela ne m’inspire pas. Cela me paraît lourd à mettre en oeuvre ou bien je n’ai pas encore compris la logique.
                    Marc
                    I'm French... Sorry for my bad English, I use ' Google Translator' or other... but that remains that tools wink
                    • 11975
                    • 2,542 Posts
                    En combinant wforms pour le js et makeForm pour le php on peut tout faire.
                    wforms attend class=required pour afficher les erreurs si le champ est vide.
                    avec makeform

                    //Les éléments du formulaire
                    //creation d'une instance makeForm
                    $monForm = new makeForm("monForm");//le nom du form
                    
                    $formElements = array(
                    'nom'=>array('type'=>'text', 'label'=>'Votre nom','class'=>'required'),
                    'prenom'=>array('type'=>'text', 'label'=>'Votre prenom','class'=>'required')
                    );
                    $monForm->setFormElements($formElements);
                    $monForm->buildForm();//cree les elements et les stocke dans un placeholders[+monForm+] contenus dans le chunk du form
                    
                    //on genere l'html
                    $propArray = array(//ici on va determiner les placeholders du chunk
                    'mooForm'=>$monForm->form;//c'est dans cette propriete qu'est stocké le rendu html des éléments
                    );
                    
                    //pour finir on parse le chunk
                    return $modx->parseChunk('formChunk',$propArray,'[+','+]');
                    


                    Ca devrait le faire
                    Après pour ce qui est de rendre des listes d’options d’un select c’est autre chose.
                    il te faudra une fonction pour créer un array avec la definition des éléments cf $formElement et les passer à un attribut dont le nom est celui du placeholder dans ton chunk "makeForm-select] que tu souhaites remplacer par la liste.


                    :-)


                      Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                      • 21101
                      • 169 Posts
                      Comme le disait Moon, qui m’a bien aidé a réaliser un formulaire, je te conseille de suivre le topic qu’il t’a indiqué. Sa base est tres bien faite et ça permet de faire un formulaire super clean.

                      regarde ici ce que ça donne: http://c4w.fr/contact.html

                      j’ai un peu galéré a le mettre en place, a faire que ça marche bien, mais dès que c’est fini, tu peux l’adapter facilement et au final ca te fait gagner du temps wink
                        Play no games