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

    Je suis nouveau en Modx, meme si j’ai participé à un projet qui l’utilisait. Cela qui m’a permit de connaitre l’enorme potentiel des TV.
    J’utilise actuellement CmsMadeSimple qui a beaucoup de qualités, mais pour un projet, j’ai réellement besoin de flexibilité sur mes gabarits grace au TV.

    Le projet n’a pas encore commencé, donc je "teste" pour l’instant modx, et ma premiere question est la suivante :

    Sur la page d’accueil de mon projet, il y a une zone "Focus" qui permet de mettre en avant une page du site. J’ai créer les Tv dont j’avais besoins (vignette-titre-texte) mais j’aimerais créer un Tv avec un dropdown Liste menu, qui me permettent de selectionner un page du site. Pour résumer peut on facilement un TV qui liste l’arbre de document dans une liste.

    Il sera ensuite récupéré en front pour le lien.

    Merci d’avance,
    Je pense que je vais poser pas mal de question dont je n’ai pas trouvé les réponses durant la semaine.

    Mylullul
      • 23050
      • 1,842 Posts
      Salu Mylullul,

      Je ne suis pas sûre de bien comprendre l’objectif ?

      Dis-moi si je me trompe : Tu veux afficher une page au hasard (ou pas) sur la page d’accueil de ton site ? Ou veux-tu générer une liste déroulante pour que l’internaute accède à une page ?

      Dans le premier cas, je verrai bien une TV texte assignée à ton template de la page d’accueil dans laquelle tu définis l’id du document que tu veux afficher sur la page d’accueil. Cette TV te servira ainsi à récupérer les infos du doc de la valeur de l’id grâce à Ditto (ou GetField)... (Quoi que j’ai soudain un doute : Ditto permet-il l’appel d’un doc précis ? Ou est-on obligé de passer par le parent du doc, autrement dit le dossier parent ?)
        • 16732
        • 592 Posts
        Heu ... c’est vrai que c’est pas super clair... moi je le comprends comme ça :

        Mylullul souhaite disposer d’une Tv qui lui permette de choisir un document MODx (une page) pour afficher un lien vers ce dernier sur ça page d’accueil.

        Dans ce cas la solution la plus simple serait une tv text où tu stockerais directement l’id de ta page (puisqu’elle est visible dans l’arbo du manager), couplé à [~tvidMapage~] dans ton template

        Sinon tu peux utiliser un @SELECT pour récupérer les noms et les ids des documents le tout couplé à une TV dropdown ( ici le seul problème sera que l’on ne pourra jamais sélectionner la première valeur de la liste, sans hacker la génération de cette liste)
          • 5727
          • 160 Posts
          Si tu t’y connais en PHP tu peux t’inspirer du script utilisé par TinyMCE pour afficher un dropdown de tous les documents.

          Le script est situé à cet endroit:
          assets/plugins/tinymce/modxLinkList.php
            Olivier Deland
            Montreal, Canada - Web Developer
            • 20776
            • 36 Posts
            dejà merci pour vos réponses...

            laurentc a bien résumé ma demande... depuis le manager, dans le document de ma page d’accueil, j’ai plusieurs Tv qui correspondent à mes textes de mon focus (titre, texte, vignette) et un que j’ai appelé "lien".

            J’aimerais que ce Tv lien soit un dropmenu de mon arbo pour pouvoir choisir la page cible qui sera renvoyer depuis ma page d’accueil.

            C’est vrai que je peux passer pas un champ texte avec l’id de la page, mais je trouve quand ca peut ergonomique.

            @Selection est une bonne idée. Laurentc, je n’ai pas compris "sans hacker la génération de cette liste".

            Merci pour vos infos
              • 16732
              • 592 Posts
              Quote from: mylullul at Mar 25, 2007, 03:34 AM

              @Selection est une bonne idée. Laurentc, je n’ai pas compris "sans hacker la génération de cette liste".
              Dans le manager, pour les listes, la première valeur n’est jamais enregistrée car elle représente en fait un "faites un choix".
              Donc si l’on utilise simplement un @SELECT pour peupler cette liste, la première valeur, qui est pour nous utile, ne sera jamais prise en compte.
              Il faut donc insérer en première position de la liste une option de plus : "faites un choix". Et cela en hackant la génération de la liste ... CQFD laugh

              C’est assez simple à faire une fois que l’on sait où est généré la liste, cependant ça bloque un peu la mise à jour éventuelle du site.

              D’autre part une fois appliquée, cette modification s’appliquera à TOUTES les TVs Liste, il faudra donc en tenir compte lors du peuplement des éventuelles autres listes
                • 20776
                • 36 Posts
                oki, merci beaucoup pour cette explication...

                en supposant que le dropmenu prennent toutes les pages de mon arbo, la 1ere serait la home, donc pas forcement pénalisant pour mon cas.

                Je vais essayer de passer par la.
                Merci en tout ca

                mylullul
                  • 11975
                  • 2,542 Posts
                  Salut,


                  le meilleur moyen d’avoir un totale controle de la generation de liste c’est d’assurer soi meme son ecriture.

                  MODx a deux syntaxes pour les options des TVs
                  1/ value1||value2||valueN
                  2/ name1==value1||name2==value2||nameN==valueN

                  En utilisant le @SELECT MODx genere en fonction du nombre de champs retournés la bonne syntaxe (donc pour une paire name,value il faut veiller au bon ordre des champs.

                  Si tu souhaites ecrire toi même cette liste, tu peux recourir à un autre @BINDINGS
                  @EVAL

                  Ex: @EVAL $params=array();return $modx->runSnippet(’monSnippetQuiEcritLaListe’, $params);

                  Tu peux également placer ton snippet dans un chunk et dans ce cas appeler @CHUNK nom_de_mon_chunk
                  {{monChunk}} => [!monSnippetQuiEcritLaListe!]
                  @CHUNK monchunk


                  :-)

                  EDIT: pour ce qui est de créer une premiere option vide
                  syntax 1/ ||value1
                  syntax2/ Selectionner une valeur==||name1==value1
                    Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                    • 16732
                    • 592 Posts
                    Quote from: heliotrope at Mar 25, 2007, 01:49 PM


                    Si tu souhaites ecrire toi même cette liste, tu peux recourir à un autre @BINDINGS
                    @EVAL

                    Ex: @EVAL $params=array();return $modx->runSnippet(’monSnippetQuiEcritLaListe’, $params);

                    Tu peux également placer ton snippet dans un chunk et dans ce cas appeler @CHUNK nom_de_mon_chunk
                    {{monChunk}} => [!monSnippetQuiEcritLaListe!]
                    @CHUNK monchunk
                    Oui Helio, mais tout ça est-il utilisable pour générer une liste dans le manager et non en front ?
                      • 11975
                      • 2,542 Posts
                      Oui à la condition d’avoir un "SnippetQuiEcritMaListe"

                      :-)
                        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l