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

    J’ai un appel de Wayfinder dans un modèle et j’aimerais que le paramètre startId (obligatoire) soit établi automatiquement avec l’id du document auquel le modèle s’applique. Je n’y parviens pas.

    J’ai essayé ceci : &startId=`[+wf.docid+]`
    mais selon la documentation l’usage de [+wf.docid+] semble réservé aux modèles de lignes (c.-à-d. rowTpl etc.).

    &startId=`[*id*]` ne marche pas non plus.

    Y a-t-il donc un moyen d’établir dynamiquement la valeur du startId d’un appel Wayfinder, tout en plaçant l’appel dans un modèle?

    Merci pour votre aide.
      • 6726
      • 7,075 Posts
      [tt]&startId=`[*id*]`[/tt] devrait marcher pourtant... tu ne peux effectivement pas utiliser un placeholder hors d’un chunk qui sert de template à wayfinder.

      La doc dit :

      default: the current document id
      values: [ 0 | a document id | [*parent*] | [*id*] ]
      description: The startId parameter determines where Wayfinder should start processing the output. All documents contained within the startId will be processed. For a menu to start from the root of the site the startId should be set to 0.

      Si tu ne spécifie pas de valeur, wayfinder fera automatiquement comme si la valeur était [*id*]

      Je ne comprend pas pourquoi ça ne marcherai pas...
      Tu peux poster ton appel de snippet ?

        .: COO - Commerce Guys - Community Driven Innovation :.


        MODx est l'outil id
        • 36624
        • 535 Posts
        Quote from: davidm at Nov 23, 2008, 03:56 AM


        Si tu ne spécifie pas de valeur, wayfinder fera automatiquement comme si la valeur était [*id*]


        eh bien en fait actuellement je suis perturbé aussi par cette question car avant c’était le cas mais ça à changé je sais pas quand !!! :

        testé avec la 0962 -

        si tu fais [!Wayfinder!] rien ne sort. si tu fais [!Wayfinder? &startId=`[*id*]`!] rien nom plus.

        par contre : [!Wayfinder? &startId=`[*parent*]`!] fonctionne... mais avec le parent évidemment

        ALORS j’ai trouvé que si tu fais

        [!Wayfinder? &startId=`[[GetField? &field=`id`]]`!]


        ça fais ce que tu veux mais faut installer GetField .. et c’est lourdeau cette histoire quand même smiley)
          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
          • 6726
          • 7,075 Posts
          ???

          Je vais vérifier ça... c’est bizarre aucun de mes sites n’est "cassé" depuis la MAJ en 0.9.6.2... Quelle est la version de Wayfinder ?
            .: COO - Commerce Guys - Community Driven Innovation :.


            MODx est l'outil id
            • 15001
            • 697 Posts
            Merci.

            @davidm : Mon appel de Wayfinder est minimaliste, car je stocke les paramètres dans un fichier de config.
            C’est beaucoup plus rapide à modifier que les chunks. Donc [!Wayfinder? &config=`maConfig` !]
            Voyant que ça ne marchait pas, j’ai aussi essayé d’ajouter startId au niveau de l’appel Wayfinder, mais rien n’y fait.
            startId est le seul paramètre obligatoire, du moins pour Wayfinder 2.0 comme le mentionne cette l’excellente documentation zippée que l’on peut télécharger depuis cette adresse : http://wiki.modxcms.com/index.php/Wayfinder200.
            J’utilise MODx 0.9.6.2 et Wayfinder 2.0.

            @manu : Merci. J’avais pensé à GetField, mais pas testé à l’intérieur d’une configuration de Wayfinder.
            Et c’est effectivement lourdeau comme solution.
            En fait, c’est un peu comme si le placeholder [*id*] était incapable d’opérer entre les "guillemets" des paramètres de Wayfinder. Ou alors c’est peut-être un problème d’ordre d’exécution des scripts. Je ne sais pas trop.

            J’ai essayé de mettre &startId sans définir la valeur, ou encore &startId=``, mais rien n’y fait.

            La question reste donc ouverte.
              • 6726
              • 7,075 Posts
              Il est impensable d’avoir à utiliser GetField pour récupérer l’ID de la page en cours, ça n’est pas normal !

              Je vais regarder côté english si il y a des rapport de bugs concernant la 0.9.6.2 avec Wayfinder, car je répète perso j’ai plusieurs sites qui tournent sans ce genre de problème... peut-être une histoire de conf serveur ou si vous avez des install clean et moi des upgrade mais quand même... ce n’est pas normal.
                .: COO - Commerce Guys - Community Driven Innovation :.


                MODx est l'outil id
                • 15001
                • 697 Posts
                Petit retour d’expérience...

                J’ai 2 templates :
                1) l’un dans lequel l’appel de Wayfinder est placé directement.
                2) l’autre dans lequel je place une variable de modèle.

                Pour le modèle 1, impossible de spécifier dynamiquement le startId que Wayfinder doit utiliser.
                Même la solution de Manu d’utiliser GetField ne marche pas.

                Pour le modèle 2, j’ai donc dans chacun des documents, un champ correspondant à la variable de modèle.
                J’y place l’appel de Wayfinder, à la façon de Manu et ça joue à merveille :
                [!Wayfinder? &startId=`[[GetField? &field=`id`]]`!]

                En essayant de mettre &startId=`id`, ça semble aussi jouer.
                Et contrairement à ce que dit la documentation de Wayfinder 2.0 que j’évoquais dans un précédent message de ce fil, startId ne semble pas obligatoire. Ca fonctionne aussi parfaitement sans. Wayfinder prend alors l’id du document courant.

                Mes conclusions :

                - startId semble effectivement obligatoire pour Wayfinder 2 si l’appel de ce snippet est réalisé dans le modèle
                Il n’accepte alors qu’une valeur statique.

                - startId n’a pas besoin d’être spécifié explicitement lorsque l’appel Wayfinder a lieu au niveau du document
                (soit dans le champ du contenu soit dans le champ d’une variable de modèle)
                Ceci implique un appel de Wayfinder au niveau de chaque document si l’on souhaite utiliser un startId dynamique
                ce qui du coup devient nettement moins dynamique.

                Je serais heureux de pouvoir confronter ces observations (pour MODx 0.9.6.2) avec celles d’un autre testeur.

                Merci.

                  • 15001
                  • 697 Posts
                  Pour info, j’ai soumis le problème du côté anglophone:
                  http://modxcms.com/forums/index.php/topic,30903.0.html
                    • 15001
                    • 697 Posts
                    C’est un peu vieux tout ça...
                    Juste pour dire qu’il n’y a pas de bug et que tout marche à merveille.

                    Désolé. C’était pure distraction de ma part. Parfois, c’est comme aux échecs, on a les yeux trop rivés sur le jeu et il faut prendre un peu de recul.

                    En fait pour afficher dans un menu les documents de même niveau, il me fallait utiliser startId=`[*parent*]` et non startId=`[*id*]`.
                      • 6726
                      • 7,075 Posts
                      Merci en tout cas d’être revenu sur ce fil pour clarifier smiley
                        .: COO - Commerce Guys - Community Driven Innovation :.


                        MODx est l'outil id