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

    Je débute avec FDM et rencontre une difficulté toute bête..il doit me manquer quelque chose :

    1) J’appelle dans une page (par exemple la page "rubrique") le snippet de FDM :

    [!FDM? &parent=`[*id*]` &trusted=`UPresse` &redirect=`[*id*]`!]

    Comme &parent le précise, la nouvelle page crée l’est comme enfant de la page Rubrique depuis laquelle j’appelle ce snippet.

    2)Le modèle par defaut est celui figurant dans le chunk fdmEform et s’affiche parfaitement lorsque je crée un nouveau document.

    3) Mais après, quand je clique sur le document crée, le document est crée mais rien ne s’affiche dedant. Comment faire pour que celui-ci affiche les données saisies dans le formulaire fdmEform ? Je précise que je ne voit pas nom plus les TV de la page correctement mises à jour coté manager? alors que celles-ci ont été déclarées.


    Désolé, je débute...Il doit me manquer une étape.
      • 23050
      • 1,842 Posts
      Hello smiley

      Quote from: astrolabe at Oct 11, 2007, 01:07 PM

      Mais après, quand je clique sur le document crée, le document est crée mais rien ne s’affiche dedant.

      Le document créé dans le manager est vide ?

      Est-ce que ton formulaire est bon, il y a un truc à respecter :
      <form method="post" action="[~[*id*]~]"  id="fdmForm">
      <input type="hidden" name="formid" value="fdmForm" />
      <input type="hidden" name="fdmid" id="fdmid" value="[+fdmid+]" eform="::0::" />

      Est-ce que id du forum correspond au value du premier input ?

      Relis dans la doc, c’est peut-être un truc comme ça.

      ----------------

      En relisant ton post, je me demande si j’ai pas mal compris : est-ce que tu attends de FDM que lorsque tu cliques sur enregistrer, la page se recharge (redirect=`[*id*]`) avec les données ? Si c’est ça, je ne crois pas que FDM propose ce comportement.
        • 2327
        • 214 Posts
        Merci Perrine pour ta réponse.

        Pour les imput, ou j’ai tout bien respecté. Mais voilà ce que je ne comprends pas :

        1) Si par exemple je rentre dans le formulaire :


        <label for="visuel">Visuel de l’item
        <input id="visuel" name="visuel" value="[+visuel+]" size="15" class="required" type="file">


        C’est FDM qui se charge de créer le tv [+visuel+] ou je dois l’avoir créé avant ? (bon en fait, je les ai tous créé)

        2) Le chunk fdmEform conditionne l’aspect du formulaire. Mais ma question idiote est la suivante : quel template conditionne le rendu de la page ? Il faut bien que je lui indiques ce que je veux voir. C’est avec l’instruction &eform_tpl que je le précise ?

        Pardon, mais tout ceci n’est pas encore très claire pour moi. Quant à ton dernier point sur redirect, si, ce paramètre existe et fonctionne semble-t-il dans fdm (il admet la valeur `parent`ou une référence numérique à une ID). Dans mon cas, il me ramène à la page "a partir de laquelle le snippet est appelé (c-a-d le parent..)

          • 23050
          • 1,842 Posts
          1- C’est toi qui dois créer la tv (sans quoi, FDM ne sait pas où stocker les données) cela dit, ne faut-il pas un préfixe à visuel pour indiquer que c’est une tv ? Genre tvvisuel ?
          Et surtout, j’ai pas rebondi dessus dans mon post précédent, mais il me semble que les tv ne sont pas encore supportés par défaut. Il faut installer un autre truc mais je n’ai jamais testé la chose.

          2- A vrai dire, je ne me suis pas posée la question car pour l’install que j’ai faite, j’avais un template unique. Quoi qu’il en soit, est-ce que dans le manager tu as ton doc créée ?

          3- Le redirect sert à afficher un message comme quoi le formulaire a bien été envoyé. Dans mon cas, c’est un autre document qui a pour content : votre formulaire a été envoyé...blabla

          Je viens de voir que Soda est revenu avec une nouvelle version de FDM. Peut-être peux-tu lui poser tes questions sur le fil FDM car perso, je suis pas sûre de tout bien maitriser non plus laugh
            • 2327
            • 214 Posts
            Merci Perrine. bon zut, ca se complique undecided

            Oui, j’ai installé la 0.99. Bon...a mon anglais >:(

            Merci smiley

              • 27889
              • 415 Posts
              Hello, désolé je n’avais pas vu ce post, bon j’aimerais avoir le formulaire que tu utilises, donne aussi les réponses que Perrine t’as posées, elles pourront aider à trouver la solution.

              Pour le 2:
              Tout dépend de ce que ton template de document (celui dans resources,modèle) contient, en général il y a un [+content+] qui affiche le contenu de la page, mais ce n’est pas obligé.
              Avec le FDM tu édite les champs que tu veux (quand ça marche smiley ) si tu as <input id="tvmatvl" name="tvmatv" value="[+tvmatv+]" size="15" class="required" type="text"> dans le modèle de formulaire tu éditeras la variable de modèle apelée "matv", pagetitle pour le titre de la page ...
              Par contre, c’est un input de fichier, et je n’ai pas testé le comportement du FDM avec, essaye par un truc simple, genre le titre et le contenu.

              Je vais demander à DavidM de modifier le topic de la page afin de faire un support en français (non-angliciste) pour le FDM.
                MODx Sites & Prestations: http://dp-site.fr [Last MODx Site]
                MODx Repository: [HOME] [MetaTagsExtra] / Current Dev: [xFDM]
                • 11975
                • 2,542 Posts
                Salut,

                @soda est ce que tu pourrais faire en sorte que le prefixe tv ne soit plus nécessaire ?
                J’ai regardé la class de ur001 pour la gestion des enregistrements et j’avais commencé à la modifier en conséquence.

                Si je demande ça c’est parce que j’ai un add-on en cours de devs pour la gestion des tvs dans FDM en utilisant les tags de tvexplorer dans le form de FDM.

                Si tu n’as pas le temps de t’en charger je peux y jeter un oeil et t’envoyer la classe modifiée.
                J’avais également (à l’imparfait parce que j’ai tt perdu das un crash disk) modifié la class fdm pour la gestion des événements de eForm.
                Dans la version de FDM que je testais le onbeforeformparse n’était pas opérationnel

                :-)
                  Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                  • 2327
                  • 214 Posts
                  Merci bp, bon là ça devient très sérieux. Je suis en train de me battre avec http://wiki.modxcms.com/index.php/Howto_catalogue, mais sans succes.

                  Je per-sévère ! smiley
                    • 2327
                    • 214 Posts
                    Donc voila..je vous la fais simple...

                    J’ai un petit intranet avec 4 catégories, disons 4 bases de recette de cuisines: poulet, boeuf, agneau, mouton.

                    L’idée est simplement que chaque webuser loggé puisse rentrer "frontend" sa propre recette, suivant un modèle qu’on va imaginer simple :

                    1) nom
                    2) prix
                    3) liste ingrédients
                    4) temps de préparation
                    5) Visuel

                    Dans ces cinq variables, la 1er sera le titre du doc créé [+pagetitle+], la seconde une tv numérique [+prix+], la troisième une tv text [+liste+], la quatrième une tv numérique [+temps+], la cinquième une tv file [+visuel+]

                    Donc, la question globale est comment procéder avec FDM (la dernière 0.99), qu’on suppose bien installé avec le eform 1.4.4 qui va bien livré lui d’origine avec la version 9.6.

                    FDM installé, que faire ensuite ?

                    1) je crée les 4 tv qui vont bien (en backend via Ressources> Gestion des ressources> Variables de modele) : [+prix+] [+liste+], [+temps+], [+visuel+], la première [+pagetitle+] existant pour tout doc. Je précise à chaque fois pour chacune : a- le type de variable attendue (text, number,file) ainsi que b - le modèle concerné par la variable (bref, le modèle utilisé par mon site de recette !)

                    Et d’une étape . Ouf, j’ai les 4 tv ! shocked

                    2) Je voudrais que quand mon user se trouve dans Recette> poulet, par exemple, il puisse saisir une nouvelle fiche de recette au poulet. Et idem dans les trois autres rubriques grin.

                    Donc, dans le contenu de ma page (ou répertoire) Poulet, je vais indiquer :

                    "Endroit pour saisir de nouvelles recettes poulets" ....suivi d’un appel à FDM de type :

                    [!FDM? &parent=`[*id*]` &redirect=`[*id*]` &eform_tpl=`fdmEformRecette` &model=`55`!]



                    • &parent=`[*id*]`, qui renvoie ici au repertoire en cours, cad Poulets, indique à FM qu’il doit crée la nouvelle recette comme enfant de ce répertoire.
                    • &redirect=`[*id*]`, qui renvoie toutjours à ce même repertoire poulet, indique à FDM qu’il doit revenir sur ce répertoire, bref, le ré-afficher après saisie de la nouvelle recette.
                    • &eform_tpl=`fdmEformRecette` spécifie le template à utiliser pour la saisie de la nouvelle recette, et qui s’affichera en appuyant sur le bouton "Ajouter un document".
                    • Enfin, &model=`55` renvoie à l’ID d’un document (ici 55) contenant le template à utiliser pour l’affichage de la recette une fois saisie (voir plus loin...)


                    évidemment, si le principe marche, je pourrais l’étendre aux N autres rubriques (boeuf, agneau....) de mon site de recettes

                    3) Pour que tout baigne, il me reste à créer ce tpl "fdmEformRecette" sous forme de chunk.

                    En backend, se rendre donc dans Ressources>Gestion des Ressources>Gestion des Chunks>Nouveau chunk, et
                    créer un nouveau chunk nommé fdmEformRecette et contenant :


                    [+validationmessage+]
                    <form method="post" action="[~[*id*]~]" id="fdmForm">
                    <fieldset>
                    <legend>Recette Produits</legend>
                    <input type="hidden" name="formid" value="fdmForm" />

                    <p><label for="pagetitle">Nom de la recette </label><input name="pagetitle" id ="pagetitle" value="[+pagetitle+]" type="text" eform="Précisez le nom de la recette:string:1" /></p

                    <p><label for="tvprix">Cout approximatif de la recette </label><input name="tvprix" id ="tvprix" value="[+tvprix+]" type="number" /></p>
                    <p><label for="tvliste">Liste d’ingrédients </label><input name="tvliste" id ="tvliste" value="[+tvliste+]" type="text" /></p>
                    <p><label for="tvtemps">Temps de préparation</label><input name="tvtemps" id ="tvtemps" value="[+tvtemps+]" type="number" /></p>
                    <label for="tvvisuel">Phot de la recette</label><input id="tvvisuel" name="tvvisuel" value="[+tvvisuel+]" size="" class="" type="file"><span>Au format jpeg ou png </span>

                    </fieldset>
                    <p>
                    <input name="fdmsubmit" value="Enregistrer" type="submit" />
                    </p>
                    </form>



                    Comme vous le remarquerez, deux choses sont indispensables dans ce tpl pour qu’il fonctionne correctement :

                    a) <form method="post" action="[~[*id*]~]" id="fdmForm">, <input type="hidden" name="formid" value="fdmForm" /> et à la fin <input name="fdmsubmit" value="Enregistrer" type="submit" />sont des balises impératives pour que tout baigne.

                    b) Les champs Label et imput sont reliés entre eux par la valeur de For dans le premier, et name, value et ID dans le second. L’orthographe du champ concerné doit dont être identique. Et comme il s’agit ici de tv perso (non standard) on fait précéder le nom de la tv des lettres tv: tvprix, tvliste.....idem dans le champ value : [+tvprix+]). En revanche, les variables créees au départ s’appellent simplement [+prix+], [+liste+], etc.. et non [+tvprix+] ou [+tvliste+]

                    Bon alors et maintenant ? Maintenant j’ai mon appel à FDM dans ma recette de Poulet, le TPL qui va bien pour le formulaire. So what ? je clique sur nouveau Doc et ?

                    Deux bonnes nouvelles :

                    1) le formulaire s’affiche.
                    2) lorsque je l’enregistre, je retourne sur ma page de rubrique, et ma nouvelle recette est bien créée.

                    Une mauvaise : lorsque j’affiche ma recette, elle est vide. Normal, je dois indiquer à FDM quel model utiliser pour restituer les tv de ma recette...le fameux &model=`55`

                    Pour cela :

                    1) je crée un chunk que j’appelle ModelRecette, où je place les placesholders et mises en forme attendues, par exemple :


                    Nom de la recette : [*pagetitle*]

                    Cout approximatif de la recette : [*prix*]"

                    Liste d’ingrédients : [*liste*]

                    Temps de préparation : [*temps*]

                    Photo de la recette : [*visuel*]


                    Remarquez que les placesHolders sont placés entre des étoiles (et non des +).

                    Je sauvegarde ce chunk, puis je crée un nouveau document dans mon arborescence où je colle, en lieu et place du contenu, l’appel de ce chunk. Donc : {{ModelRecette}}.

                    Sauvegardez en demandant à ce que ce document ne soit pas mis en cache (onlget reglages de la page).
                    Notez l’ID de ce document (dans mon exemple 55). Retournez dans la page Poulet et assignez la bonne valeur au paramètre &model de l’appel de FDM :

                    [!FDM? &parent=`[*id*]` &redirect=`[*id*]` &eform_tpl=`fdmEformRecette` &model=`RENTREZ ICI L’ID de la page de modèle`!]

                    Voila. sauvegardez le tout, saupoudrez, retournez sur Poulet, créez une nouvelle recette, et vous devriez voir le résultat. Trop chouette.

                    Mais encore un problème : pour le visuel, il affiche le nom du fichier mais pas le fichier lui-meme. Et si ce nom est bien dans la variable nommée Visuel, je ne sais pas où trouver le fichier même pour l’afficher. Une idée ?
                      • 27889
                      • 415 Posts
                      @heliotrope, pour les modifs de la classes, je n’ai plus trop de temps donc si tu peux le faire et m’envoyer les modifs, ok.
                      Pour la gestion des évènements eForm dans la classe, pourrais tu m’expliquer le but du jeu ?


                      @astrolabe, attend un peu la nouvelle version, elle devrait résoudre pas mal de pb.
                        MODx Sites & Prestations: http://dp-site.fr [Last MODx Site]
                        MODx Repository: [HOME] [MetaTagsExtra] / Current Dev: [xFDM]