We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 18219
    • 826 Posts
    Je travaille sur un snippet qui permet de réaliser un formulaire de contact.
    Je prévois la possibilité qu’il intégre des fichiers d’extention externes telque des fichiers CSS et JS.

    Il possède également un fichier lang qui lui permettra de l’adapter en fonction des pays. Pour le moment seuls les versions english et french sont dispo (pour les autres langues cela me sera difficile de les créer compte tenu que je ne connais pas d’autre langue wink )

    Bon je vous le livre dans la version actuelle qui ne fonctionne pas seulement pour que vous ayez un aperçu de ce snippet.
    Vos avis seront les bienvenus.
      Marc
      I'm French... Sorry for my bad English, I use ' Google Translator' or other... but that remains that tools wink
      • 23050
      • 1,842 Posts
      Salut Marc,

      Puisque tu dis que cela ne fonctionne pas, je n’ai pas testé (ni installé).
      Néanmoins, j’ai fait un tour sur tous les fichiers (surtout le dossier tpl) et j’ai "décodé" les commentaires du snippet.

      Ca m’a l’air vraiment prometteur ! Et vu le modèle de formulaire que tu as fait, il semble que tu englobes tous les input possible... c’est bien ça ! wink

      Dans le .tpl, des lignes comme ça, c’est un peu du chinois
      [+entity,p,required||content,Nom de l'établissement||attribute,class="tam"+]

      Cette ligne génère le code html c’est ça ?

      Le .tpl est juste fourni à titre d’exemple ? Est-il remplaçable par l’utilisation des chunks ?
      La variable &tpl appelle un chunk visiblement donc j’imagine qu’on met le code du formulaire dans le chunk ? Et qu’en est-il du .tpl ?

      J’avais réussi à bien avancer avec les exemples de Moon et laurentc mais les tests de validité des champs étaient limités. Si j’ai bien compris, tu vas beaucoup plus loin (au vu des fichiers .js).

      J’ai hâte de tester une première version wink

      En attendant, je bosse sur une mise en page à base de css.
        • 18219
        • 826 Posts
        Merci Perrine d’avoir regarder ce code.

        [+entity,p,required||content,Nom de l'établissement||attribute,class="tam"+]

        Oui en effet. cette syntaxe génére du code html dans le cas présent, il s’agit de la balise <p> (entity,p,required) :
        <p class="tam">Nom de l'établissement <span>* < /span></p>

        Le fait d’avoir indiquer ’required’ insère <span>* < /span> dans la balise.
        [+entity,p||content,Nom de l'établissement||attribute,class="tam"+]

        donne
        <p class="tam">Nom de l'établissement </p>

        En d’autre terme toute les balises du type <balise>...</balise> peuvent être prise dans le template.

        Autre point le cas d’un champ :
        [+field,text,required||attribute,id="field_cp"||attribute,name="cp"||attribute,size="5"||attribute,class="field text"||attribute,value=""+]

        insère le code :
        <input type="text" id="field_cp" name="cp" size="5" class="field text" value="" />

        De plus ce champ est requis.
        Plus fort, tu peux insérer un chunk dans les placeholders :
        [+field,select||attribute,id="field_titre"||attribute,name="titre"||attribute,class="field select large"||{{option}}+]

        avec dans ton chunk ’option’ :
        <option value="Mr" selected="selected">Mr</option>
        <option value="Mme">Mme</option>
        <option value="Mlle">Mlle</option>
        

        donne au final :
        <select id="field_titre" name="titre" class="field select large">
        <option value="Mr" selected="selected">Mr</option>
        <option value="Mme">Mme</option>
        <option value="Mlle">Mlle</option>
        </select>
        


        La logique est simple :
        - entity génére des balises html de ton choix, field des champs de formulaire
        - attribute correspond aux attributes de la balise donc insérer sans contrôle
        tous ces éléments sont séparés par le délimiteur de ton choix ’||’ par défaut
        dans chaque élément les termes sont séparés par le délimiteur de ton choix ’,’ par défaut

        Pour ce qui est du fichier tpl : soit tu crée un chunk qui contient ce code, soit tu crée un fichier comme dans l’exemple (par defaut : contactForm.tpl)
        Tu peux insérer tout les fichiers JS et CSS dans le header, dans ce cas l’appel du snippet devra se faire sans cache.

        Tu peux tester le code. Il te permettra d’afficher ton chunk ou ton tpl.
        Les points qui ne fonctionnent pas pour le moment est l’envoi de l’email et les tests des champs.


        Voici la syntaxe de l’appel du snippet :
        [[SendForm? &cssTpl=`assets/templates/.../contactForm.css` &jsTpl=`assets/js/wforms.js,assets/js/localization-francais.js` &to=`[email protected]` &language=`french` &debug=`true`]]
          Marc
          I&#39;m French... Sorry for my bad English, I use &#39; Google Translator&#39; or other... but that remains that tools wink
          • 23050
          • 1,842 Posts
          Ok, je vais tester ça alors smiley

          Deux questions :
          - SI je souhaite passer par un .tpl, comment je l’appelle dans le snippet ? &tpl est réservé au chunk non ?
          - Quelle est l’utilité du .tpl ? Si je construis mon form dans un chunk, c’est mieux - aussi - moins bien ? Ou alors, le .tpl est plus souple et permet la gestion du multilinguisme ?
            • 18219
            • 826 Posts
            Quote from: Perrine at Oct 04, 2006, 11:12 AM

            Ok, je vais tester ça alors smiley
            Merci de ton aide Perrine. Cela me fait plaisir. Je me sens moins seul wink
            Quote from: Perrine at Oct 04, 2006, 11:12 AM

            Deux questions :
            - SI je souhaite passer par un .tpl, comment je l’appelle dans le snippet ? &tpl est réservé au chunk non ?
            $fileTpl=`tpl/myTpl.tpl` mais la version actuellement en ligne ne prends pas en compte ce point.
            Sauf si tu prends le fichier `contactForm` et le modifie.

            Quote from: Perrine at Oct 04, 2006, 11:12 AM

            - Quelle est l’utilité du .tpl ? Si je construis mon form dans un chunk, c’est mieux - aussi - moins bien ? Ou alors, le .tpl est plus souple et permet la gestion du multilinguisme ?
            Evite d’avoir beaucoup de chunk à gérer.
            Te permet de l’ouvrir dans un éditeur externe avec une coloration syntaxique et donc toutes les modifications seront enregistrées et prises en compte immédiatement.

            En fait si tu regardes ma façon d’oganiser mon code, tous les fichiers sont externes à MODx, ce qui me permet de les ouvrir par un éditeur externe, de les modifier et tester mes modifs en direct. Ceci sans passer par l’ouverture des snippets ou chunks dans MODx wink

            Le multilinguisme est pris en compte par le fichier language.inc.php (exemple english.inc.php) et par ce fichier .tpl indépendant du snippet en effet.
              Marc
              I&#39;m French... Sorry for my bad English, I use &#39; Google Translator&#39; or other... but that remains that tools wink
              • 1186
              • 202 Posts
              Merci de ton aide Perrine. Cela me fait plaisir. Je me sens moins seul

              Non, non, Marc, ne te sens pas seul, ce snippet va en attirer plus d’un ! smiley
              Pour ma part, je testerai le snippet dès que je le pourrai. Je vais peut-être attendre pour cela une version "testable" puisque tu dis que celle-ci ne marche pas encore. wink

              En tous les cas, merci bcp pour ton travail !
                R
                • 23050
                • 1,842 Posts
                Je pense à un truc Marc, est-ce qu’il te semble difficile d’afficher le formulaire avant envoi définitif (pas nécessairement en affichant le formulaire lui-même mais plutôt une page récapitulant le tout) ?

                Avant d’envoyer le mail, on affiche un recap, tout simplement, de manière à ce que l’utilisateur vérifie ses infos.

                PS : Je viens de finir la mise en page de mon formulaire, je regarde ton snippet demain wink
                  • 18219
                  • 826 Posts
                  Quote from: Perrine at Oct 04, 2006, 01:35 PM

                  Je pense à un truc Marc, est-ce qu’il te semble difficile d’afficher le formulaire avant envoi définitif (pas nécessairement en affichant le formulaire lui-même mais plutôt une page récapitulant le tout) ?

                  Avant d’envoyer le mail, on affiche un recap, tout simplement, de manière à ce que l’utilisateur vérifie ses infos.

                  PS : Je viens de finir la mise en page de mon formulaire, je regarde ton snippet demain wink
                  Non et c’est ce que je ferai wink
                    Marc
                    I&#39;m French... Sorry for my bad English, I use &#39; Google Translator&#39; or other... but that remains that tools wink
                    • 23050
                    • 1,842 Posts
                    5 min chrono pour créer le snippet dans l’admin, uploader les fichiers nécessaires et appeler le chunk du formulaire... et ça marche niquel.

                    Si je ne spécifie pas de &tpl, c’est ton contactform qui est appelé par défaut.

                    J’ai hâte de tester la suite !

                    Comment ça se passe pour les noms des input et id ? Il faut quelque chose de normaliser. Dans ton tpl, j’ai vu que tu utilisais "fieldn". Comment vas-tu associer un input à un test de validité ?
                    J’pose trop de questions ? laugh

                    PS : La page du formulaire avec laquelle je testerai ton snippet : http://www.architecture-gambino.com/v2/index.php?id=16

                    Edit : Ah mais je vois que tu avais déjà intégré la prévisualisation... en cliquant sur Envoyer, on a un aperçu en début de formulaire ! Et tu arrives à récuperer tous les champs texte ! Tout seul... Mazette, je veux apprendre le PHP ! laugh
                      • 18219
                      • 826 Posts
                      Quote from: Perrine at Oct 05, 2006, 02:11 AM

                      5 min chrono pour créer le snippet dans l’admin, uploader les fichiers nécessaires et appeler le chunk du formulaire... et ça marche niquel.
                      Drag en drop et c’est parti wink

                      Quote from: Perrine at Oct 05, 2006, 02:11 AM

                      Si je ne spécifie pas de &tpl, c’est ton contactform qui est appelé par défaut.
                      Oui en effet j’essais au maximum d’avoir des paramètres par défaut et d’ouvrir le snippet vers plein de possibilités

                      Quote from: Perrine at Oct 05, 2006, 02:11 AM

                      J’ai hâte de tester la suite !

                      Comment ça se passe pour les noms des input et id ? Il faut quelque chose de normaliser. Dans ton tpl, j’ai vu que tu utilisais "fieldn". Comment vas-tu associer un input à un test de validité ?
                      J’pose trop de questions ? laugh
                      Tu aborde des questions que je suis en train de traiter.
                      Pour les id et les noms: tu peux mettre ce que tu veux (à condition de garder les principes de nommage des variables : pas d’accent, pas d’espace, pas de caractères spéciaux, commencer par une lettre). Attention : pas de doiblons. Pour les noms des champs je les récupère pour les prendre en compte dans mon traitement notamment pour tester lorsque le champs est requis.
                      Pour des test de validité : je prévois deux niveaux.
                      1 - validité PHP :
                      _ je traite les champs ’required’ et vérifie avec les varaibles passées en POST s’ils sont renseignés
                      - je rajoute une syntaxe dans les placeHolders (uniquement pour les fields) format=’text’ ou format=’email’, etc. qui me permettra de vérifier la conformité des champs.

                      2 - validation JS :
                      - je regarde des codes existants JS qui permettent de traiter le sujet. Ceux que j’ai vu jusqu’à présent utilise les mots dans l’attribut class ou id.

                      Quote from: Perrine at Oct 05, 2006, 02:11 AM

                      PS : La page du formulaire avec laquelle je testerai ton snippet : http://www.architecture-gambino.com/v2/index.php?id=16
                      Superbe, en quelques minutes : belle performance
                      Quote from: Perrine at Oct 05, 2006, 02:11 AM

                      Edit : Ah mais je vois que tu avais déjà intégré la prévisualisation... en cliquant sur Envoyer, on a un aperçu en début de formulaire ! Et tu arrives à récuperer tous les champs texte ! Tout seul... Mazette, je veux apprendre le PHP ! laugh
                      Non je n’ai pas intégré la prévisualisation (pour l’instant) : il s’agit simplement de la liste les valeurs passées par le POST. Il manque la possibilité de formater ce texte et donc de reprendre les balises du formulaire.
                        Marc
                        I&#39;m French... Sorry for my bad English, I use &#39; Google Translator&#39; or other... but that remains that tools wink