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

    j’aimerais afficher un sous-menu sur mes pages, qui changerait en fonction de son document parent. Comme je ne sais pas trop comment expliquer, je vais vous faire un exemple:

    Mettons que mon arbre de documents soit comme suit:

    Titre 1

    • T1 - Page 1
    • T1 - Page 2
    • T1 - Page 3
    • T1 - Page 4
    Titre 2

    • T2 - Page 1
    • T2 - Page 2
    • T2 - Page 3
    • T2 - Page 4

    Je souhaiterais que mon sous-menu affiche dans tous les docs enfants de "Titre 1":

    • T1 - Page 1
    • T1 - Page 2
    • T1 - Page 3
    • T1 - Page 4

    Et ça ans tous les docs enfants de "Titre 2"


    • T2 - Page 1
    • T2 - Page 2
    • T2 - Page 3
    • T2 - Page 4

    J’arrive à le faire pour des menus individuels avec Wayfinder, en mettant ceci:

    [[Wayfinder? &startId=`xxx` &level=`1`]]


    Mais ça veut dire qu’il faut que je fasse plusieurs templates, et comme j’ai beaucoup de rubriques avec des docs enfants, je me demandais s’il n’y avait pas un moyen de faire que le "startId" change automatiquement selon le document.

    J’ai regardé les place holders de WayFinder et tout ça pour voir s’il y en a qui ferait l’affaire, mais je n’y comprends vraiment rien, de même que le fonctionnement des TV, jusqu’ici je n’y ai pas touché car je rame complètement.

    Si ce que je demande n’est pas possible avec WayFinder, y a-t-il un autre moyen?

    Merci d’avance smiley



      • 36624
      • 535 Posts
      Salut,

      essaie ça :
      [!Wayfinder? &startId=`[[UltimateParent]]` &level=`1`!]
        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
        • 7563
        • 17 Posts
        Salut!

        Merci beaucoup ça marche bien pour obtenir les documents du tout premier niveau du menu. J’ai omis de préciser que les menus que j’aimerais afficher ne sont que des docs enfants d’autres docs enfants. En l’occurrence il s’agit d’un menu de niveau 4.

        Mais grâce à ton indication sur UltimateParent que je ne connaissais pas, j’ai fait des recherches sur le forum, et j’ai trouvé ce paramètre: &topLevel=`x`, qui permet d’indiquer le niveau du menu que l’on souhaite afficher. J’ai utilisé le code suivant et ça marche impec:

        [!Wayfinder? &startId=`[[UltimateParent? &topLevel=`4`]]` &level=`1` !]


        Merci!
          • 7420
          • 8 Posts
          Bonjour,

          j’ai le même problème mais ce code ne fonctionne pas sur mon template.
          est ce que ca peut venir d’une commande wayfinder déja présente plus haut dans les lignes de mon template ?



          <div id="topnav">
          <div id="menu">
          [!Wayfinder? &startId=`0’ &level=`1` !]
          </div>
          </div>

          <div class="sidebar">

          <div id="navcontainer">
          <ul id="navlist">
          [!Wayfinder? &startId=`[[UltimateParent? &topLevel=`1`]]` &level=`1` !]
          </div>


          (j’utilise modx evolution 1.0.4)

          Merci
            • 1778
            • 659 Posts
            Il me semble que UltimateParent doit être appelé UNCached (ajoute les points d’exclamation au debut et à la fin du call [!UtimateParent!] )
            Cheers
              • 1778
              • 659 Posts
              @DJB

              le parametre &level indique la "profondeur" à laquelle tu veux faire descendre ton menu... Si tu indiques &level=`1` tu as le premier niveau "en dessous" du document de départ, donc si tu veux 4 niveaux &level=`4` devrait résoudre ton souci...

              BTW je ne suis pas sure que "&topLevel" comme paramète d’UltimateParent soit nécessaire dans ce cas, sauf si tu veux que le parent affiché ne soit pas l’ "Ultimate" justement...

              Cheers
                • 7420
                • 8 Posts
                merci pour les réponses, mais comment faire pour afficher uniquement le sous niveau de la page sélectionnée ??

                car ce qui s’affiche pour l’instant est le menu niveau 0 plus les sous menus niveau 1 de toutes les pages, avec le code suivant (puisque le code vu dans les posts précédents ne fonctionne pas) :

                j’ai testé ce code mais il doit y avoir une erreur de syntaxe... :
                [!Wayfinder? &startId=’[!ultimateparent!]’ &level=`1` !]
                  • 1778
                  • 659 Posts
                  Hello

                  Pas certain pour tout mais concernant les erreurs de syntaxe il y en a:

                  • Les appels de snippets sont "case sensitive" donc ton [!ultimateparent!] doit devenir [!UltimateParent!]
                  • Tu as mis des simples quotes à la place des backticks autour de l’appel UltimateParent

                  Par ailleurs je crois me souvenir qu’il y a un chmilblick dans la manière dont Evo traite les ’cache’/’uncached’ des snippets imbriqués... Si ça ne marche pas dans un sens essaie dans l’autre (WF uncached et UP cached, les 2 uncached, WF cached et UP uncached...) J’ai souvenir que c’était toujours un peu casse tête sous Evo (je suis sous Revo depuis les betas versions et j’ai un peu perdu Evo de vue à vrai dire...)

                  Cheers
                    • 7420
                    • 8 Posts
                    j’ai corrigé la syntaxe.

                    Pour ce qui est de cache/uncache, je ne vois pas bien ce que tu veux dire, surtout par WF et UP.

                    Afin de s’assurer que l’erreur ne vienne pas uniquement de la ligne de code, est ce qu’il y aurait d’autres paramètres à rentrer ailleurs pour que la commande Wayfinder fonctionne ?
                      • 7420
                      • 8 Posts
                      j’ai trouvé un tuto intéressant mais relativement long et compliqué pour moi... Voici le lien pour ceux que ca intéresse, c’est un tutoriel de la fonction WayFinder.

                      Concernant ce topic, voici ce qu’il est dit :

                      In MODx, when you have nested snippet calls, you need to alternate their cached/uncached status. Therefore, whilst we are calling UltimateParent cached, we need to and have thus called Wayfinder uncached. This is very important! If both snippet calls were cached in all likelihood the menu would not have been output

                      l’exemple donne cette commande à intégrer dans le div du menu vertical :
                      [!Wayfinder? &startId=`[[UltimateParent]]` &outerTpl=`menuContainer` &rowTpl=`menuRows` &level=`1` &excludeDocs=`16`!]

                      comment fait-on pour mettre cache/uncache les snippets ? avec les points d’exclamation ?