We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 23361
    • 17 Posts
    Je suis pommé ! huh
    J’essaie de tester les TemplateVariable et ça ne marche pas. J’ai dû rater quelque chose...

    Alors voilà. J’ai créé un template très simple, nommé "SimpleTemplate" et j’ai créé une TV comme dans l’exemple de la doc concernant la Check Box. J’inclue l’appel à la TV dans ma page de test (comme ceci: [*CheckBoxTest*]) et lors du test d’exécution, au lieu d’avoir une série de boîtes à cocher j’ai juste le texte correspondant à la valeur par défaut de la TV (sans le signe ||).

    SVP, une petite explication pour un débutant qui rame...


    J’essaie à la suite de donner le maximum de précisions.

    Code de mon template "SimpleTemplate":

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Ma page de test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <base href="[(site_url)]" />
    </head>
    <body>
    <div id="content">
    [*content*]
    </div>
    </body>
    </html>

    La TV en question:

    Nom de variable: CheckBoxTest
    Légende: [*CheckBoxTest*]
    Description: Test Boite a cocher
    Type d’entrée: Check Box
    Valeurs optionnelles d’entrée: Toyota||Honda||Mazda||Nizzan
    Valeur par défaut: Honda||Nizzan
    Widget:
    Sort Order: 0

    Pour le Widget, j’ai laissé vide.

    La TV est bien attibuée au template "SimpleTemplate"


    Pour finir le code de la page qui utilise le template "SimpleTemplate" dans l’éditeur TinyMCE:

    Ici, c’est le contenu du test

    [*CheckBoxTest*]



    Voici le code HTML du résultat obtenu quand je me demande la page en tant que Web User anonyme:


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Ma page de test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <base href="http://192.168.1.2:8080/modx/" />
    <script type="text/javascript">var MODX_MEDIA_PATH = "media";</script>
    </head>
    <body>
    <div id="content">
    <p>
    Ici, c&#39;est le contenu du test
    </p>



    HondaNizzan

    </div>
    </body>
    </html>
      • 11975
      • 2,542 Posts
      Salut,

      ca nous est arrivé à tous grin

      Le concept des TVs est relativement simple une fois qu’on a saisi la logique.
      Le type de la TV ne sera pas rendu sur le front, il s’agit de la forme qu’elle va revetir dans le formulaire d’edition du document
      Les widgets permettent quant à elle de mettre en forme l’output de la valeur de la TV

      :-)
        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
        • 23361
        • 17 Posts
        Quote from: heliotrope at Feb 13, 2007, 12:36 AM

        Salut,

        ca nous est arrivé à tous grin

        Le concept des TVs est relativement simple une fois qu’on a saisi la logique.
        Le type de la TV ne sera pas rendu sur le front, il s’agit de la forme qu’elle va revetir dans le formulaire d’edition du document
        Les widgets permettent quant à elle de mettre en forme l’output de la valeur de la TV

        heu... huh

        SVP, dans mon cas concret que faut-il faire pour voir "quelque chose" à l’output? Le formulaire d’édition du document, est-ce la page dans laquelle j’ai écrit l’appel à la TV, c’est-à-dire [*CheckBoxTest*] ? Il devrait y avoir une mise en forme sous forme de boîte à cocher à cet endroit ?

        Si vous pouviez m’indiquer quelque chose de pratique et concret, je crois que je saisirais mieux le sens de vos propos.

        Cordialement,
        Pierrou
          • 11975
          • 2,542 Posts
          Des images illustreront mieux mon propos

          Comme je l’expliquais, les TVs ont pour objet d’étendre les propriétés de l’objet document en permettant l’ajout de champs customs.
          Le type de la TV correspond donc à la forme de champ dans le formulaire d’édition du document.

          Ex: un TV multi select



          Rendu dans le formulaire d’edition
          (attention j’ai modifié ma version du manager pour afficher les TVs dans un onglet, dans ton cas les TVs sont à la suite du Contenu du document).



          En résumé tu ne pourras pas afficher le type de la TV sur le front sans développer un snippet qui a cette fonction.


          :-)

            Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
            • 23361
            • 17 Posts
            Quote from: heliotrope at Feb 13, 2007, 06:44 AM


            Comme je l’expliquais, les TVs ont pour objet d’étendre les propriétés de l’objet document en permettant l’ajout de champs customs.
            Le type de la TV correspond donc à la forme de champ dans le formulaire d’édition du document.

            En résumé tu ne pourras pas afficher le type de la TV sur le front sans développer un snippet qui a cette fonction.

            OK, je comprends un peu mieux la "philosophie" de la chose. Merci pour tes explications smiley

            STP, aurais-tu un exemple de code de snippet qui utilise une TV (le plus simple possible). Ca me permettrait de mieux saisir comment on fait cette liaison. Ce que tu expliques n’est pas du tout mentionné dans la doc. En revanche, dans la doc (j’ai une doc PDF en anglais que j’ai imprimée et que j’annote nerveusement tongue ) il est question de binding avec @. A la lumière de ce que tu viens de m’expliquer, je comprends mieux - ou pour le moins je crois comprendre, peut-être que je suis à côté de la plaque. En fait, une TV est une sorte d’objet "potentiel" qu’il faut, pour son exploitation à l’output, soit lier à un contexte dynamique (le binding) soit "exploiter" par un snippet.
            Heu... c’est ça ?
            Il me manque à comprendre comment on retrouve le contenu de la TV (dans ton exemple c’est un menu déroulant) à partir du code d’un snippet (dans la doc, il est expliqué comment on appelle un snippet, mais pas comment on le construit).

            Il faudrait un bouquin "Modx pour les nuls" !

            Encore merci de m’aider

            Cordialement
            Pierrou
              • 11975
              • 2,542 Posts

              En fait, une TV est une sorte d’objet "potentiel" qu’il faut, pour son exploitation à l’output, soit lier à un contexte dynamique (le binding) soit "exploiter" par un snippet.

              C’est pas tout à fait ça.
              Je dirais plutot que la TV est une extension des proprietes des documents grace à une liaison établie à travers le template du document.
              Pour afficher la valeur, on accede à la tv comme toutes les propriétés du document [*nom_propriete_ou_nom_tv*]

              Ensuite pour exploiter cette valeur depuis un snippet, il y a des fonctions spécialement écrites à cette fin dans l’API de MODx
              getTemplateVarOutput, getTemplateVar,getTemplateVars voir /manager/includes/document.parser.inc.php autour de la ligne 1812.

              Les @BINDINGS sont encore autre chose:

              @SELECT par exemple te permet de récupérer grace à une requete sql les valeurs des options que tu souhaites afficher dans ta TV
              ex: @SELECT menutitle,id from modx_site_content

              @INHERIT permet de propager la valeur d’une TV du document à tous ses enfants


              :-)
                Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                • 23361
                • 17 Posts
                Quote from: heliotrope at Feb 13, 2007, 08:55 AM

                Je dirais plutot que la TV est une extension des proprietes des documents grace à une liaison établie à travers le template du document.
                Pour afficher la valeur, on accede à la tv comme toutes les propriétés du document [*nom_propriete_ou_nom_tv*]

                Ensuite pour exploiter cette valeur depuis un snippet, il y a des fonctions spécialement écrites à cette fin dans l’API de MODx
                getTemplateVarOutput, getTemplateVar,getTemplateVars voir /manager/includes/document.parser.inc.php autour de la ligne 1812.
                :-)

                OK, merci, je vais me plonger dans l’API.
                J’ai trouvé ça comme doc:
                http://wiki.modxcms.com/index.php/API:DocumentParser

                C’est dommage qu’il y ait si peu de fonctions documentées.

                Encore merci pour toutes vos explications, elles vont m’être très utile pour avancer.

                Cordialement
                Pierrou