We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 2327
    • 214 Posts
    Bj,

    le snippet FileUpload (http://www.modxcms.com/FileUpload-804.html) marche du tonnerre : il permet à n’importe quel user disposant des droits adhoc d’uploader frontEnd des documents dans un répertoire donné.

    Mais je ne parviens pas à intégrer un formulaire de ce type dans un formulaire FDM. Ou plutôt, j’y parviens mais les contrôles de saisies de FDM ne marchent plus.

    Quelqu’un à-t-il une idée pour procéder correctement à l’intégration de l’un dans l’autre ?
      • 36624
      • 535 Posts
      tu peux montrer ce que tu as fais exactement ?
        CTRL+SHIFT+U - Clear Cache
        CTRL+SHIFT+H - Hiding Heft Panel
        CTRL+SHIFT+N - Fast Create Resource
        CTRL+ALT+P - Preview Recource (in edit resorce window)
        CTRL+ALT+S - Save
        • 2327
        • 214 Posts
        Merci beaucoup Manu de ta réponse. En fait (mais je n’y connais pas grand chose), il semble que FDM (qui utilise EFORM) n’ai pas prévu d’intégrer la fonction &runSnippet qui permet de passer le paramètre &formid au snippet FileUpload.

        Bon, voici mon appel de de FDM :

        [!FDM? &parent=`[*id*]` &redirect=`[*id*]` &eform_tpl=`fdmEformProduct` &model=`160`!]

        Le tpl fdmEformProduct contient 2 champs (titre de la page pour nom du produit et marque) puis l’appel de FileUpload avant la fermeture du formulaire :


        [+validationmessage+]
        <form method="post" action="[~[*id*]~]" id="fdmForm" enctype="multipart/form-data">
        <input type="hidden" name="formid" value="fdmForm" />
        <input type="hidden" name="fdmid" value="[+fdmid+]" eform="::0::" />
        <div class="htmlsection" ><p>Merci de bien vouloir renseigner les champs dotés d’une étoile.</p></div>

        <fieldset> <legend>Denominations</legend>
        <p>
        <label for="pagetitle">Nom commercial<span class="reqMark">*</span></label>
        <input name="pagetitle" id="pagetitle" value="[+pagetitle+]" type="text" eform="Entrez un nom pour le produit:string:1" />
        </p>
        <p>
        <label for="tvmarque" class="inlineLabel">Marque<span class="reqMark">*</span></label>
        <input name="tvmarque" id="tvmarque" value="[+tvmarque+]" type="text" eform="Entrez la marque du produit:string:1" />
        </p> </fieldset>

        [[FileUpload? &tpl=`FileUploadForm`&path=`/assets/images/`&extensions=`doc,xls,pdf`]]

        <p>
        <input name="fdmsubmit" value="Soumettre" type="submit" /> <input type="submit" name="annuler" value="Annuler " />
        </p>
        </form>


        Quant au tpl FileUploadForm, il contient :


        <input type="hidden" name="formid" value="[+fileupload.formid+]" />
        <!-- MAX_FILE_SIZE must precede the file input field -->
        <input type="hidden" name="MAX_FILE_SIZE" value="[+fileupload.maxsize+]" />

        <p>First file: <input name="userfile[]" type="file" /></p>
        <p>Second file:<input name="userfile[]" type="file" /></p>
        <p>Third file:<input name="userfile[]" type="file" /></p>

        Note: Seules les extensions suivantes sont acceptées : ([+fileupload.extensions+])



        Tel que, les controles de eForm sur le formulaire ne fonctionnent plus. Et si je change la valeur du name="formid" du tpl FileUploadForm, les controles refonctionnent, mais à l’envoi d’un fichier j’ai un message d’erreur d’eForm qui me dit :

        Des entrées invalides ou dangereuses ont été detectées dans votre formulaire.

        Il semble qu’un appel de type [[eForm? &runSnippet=`FileUpload`]] soit requis quelque part..mais je n’ai pas réussi après moulte essais.

        En claire, la question est : comment intégrer des champs d’upload de fichier dans un formulaire FDM, puisque sans FileUpload, les fichiers sont bien transmis par mail via FDM (et Eform) mais ne sont pas stockés sur le site. Autrement dit (sauf si je raconte des bétises) FDM permet l’envoi de fichier par mail mais pas leur upload.

        Au secours !

        une solution existe évidemment mais qui ne m’arrange guère : Faire un formulaire FDM suivi d’un formulaire FileUpload. Mais ça oblige le user à faire deux envois, et surtout ca ne permet pas de placer les champs d’upload en cohérence avec les besoins du formulaire FDM....Argh...
          • 11975
          • 2,542 Posts
          Salut,

          je suis pas certain de ce que j’avance c’est plus une idée qu’autre chose.

          Selon moi, il va te falloir coder un minimum pour t’en sortir en recourant aux evenement eform

          d’abord onbeforeformparse pour renvoyer une balise input avec les attributs d’eform en lieu et place d’un placeholder.
          De cette facon, eform integrera dans les entrees du formulaire ton champ file.

          Ensuite sur un autre evenement dont j’i oublie le nom mais qui intervient une fois les champs validés.
          C’est à ce moment que tu executes fileupload pour stocker le fichier sur le serveur.

          :-)
            Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
            • 2327
            • 214 Posts
            Merci bp Héliotrope et désolé de répondre si tard..pas très déférent vis à vis d’une pointure Modx incontournable sur ce forum. smiley

            J’appréhende la piste que tu m’indiques (je l’appréhende seult, n’étant encore qu’un grand débutant...). Et je vais l’essayer dès que possible, notemment avec la nouvelle version de FDM...

            La conjugaison de l’ensemble serait en effet assez géniale.

            Un grand merci en tout cas ! Et je vous tiens au courant de la suite dès que possible ici même. smiley
              • 27889
              • 415 Posts
              FDM permet l’envoi de fichier par mail mais pas leur upload.
              Non FDM appele juste eForm avec les paramètres corrects puis récupère les champs qu’il insère dans la base. Le mail est géré par eForm, en fait il fait les 3/4 du boulot.

              astrolabe, il va y avoir un problème car fdm utilise déjà les fonction d’appel de eForm (onbeforeformparse ...) sinon tu peux toujours hacker le code, ou peut être attendre que eForm gère les fichiers smiley.
              Mais maintenant que j’y réfléchis, peut-être que eForm gère les input files, dans ce cas je regarderais si je peux faire quelque chose côté FDM.

                MODx Sites & Prestations: http://dp-site.fr [Last MODx Site]
                MODx Repository: [HOME] [MetaTagsExtra] / Current Dev: [xFDM]
                • 2327
                • 214 Posts
                Merci Soda..oui, c’est un peu ce que je craignais..bien que tout néophyte sur ces questions..Quant à hacker le code, ça dépasse malheureusement de loin mes compétences huh

                Mais comme Eform que j’ai testé gère parfaitement bien l’envoi des pièces jointes, c’est vrai que c’est intriguant que rien ne soit prévu pour les stocker en // de leur envoi par mail (qui marche du tonerre !) dans un répertoire donné sur le site.....
                  • 27889
                  • 415 Posts
                  Tu devrais lire ça tu verras mieux le fonctionnement de l’upload. http://www.toutestfacile.com/php/cours_imprimables/PHPFacile.com-fileupload.php5.
                  Maintenant, est il vraiment nécessaire d’implémenter une telle fonctionnalité au FDM ? Si d’autres éprouve un intérêt pour le faire je pourrais l’implémenter.
                  Bon je ne sais pas au juste ce que tu veux faire, mais si tu crées tes documents avec un modèle qui contient un appel à FileUpload (contenu ou tv), une fois le doc créé tu te rend sur la nouvelle page et là tu peux uploader.
                    MODx Sites & Prestations: http://dp-site.fr [Last MODx Site]
                    MODx Repository: [HOME] [MetaTagsExtra] / Current Dev: [xFDM]