We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 389
    • 11 Posts
    J’ai donc réussi à faire fonctionner le Hack de DropMenu, mais je rencontre une autre difficulté.
    je voudrai afficher une barre de menu qui ne montre que les sous-rubriques de la rubrique activée.

    Ex:
    je suis dans la rubrique ACTU , j’affiche un menu des sous-rubrique de ACTU uniquement

    J’ai vu sur ce topic: http://modxcms.com/forums/index.php/topic,4421.msg32572.html#msg32572
    que UltimateParent peut faire ça, mais je ne comprend pas bien comment l’insérer dans le template. Est-ce que je dois le combiner avec startDoc ? et si oui, comment ?

    Laurentc, (si tu as encore un peu de temps... smiley ) est-ce que tu as une idée ?

    merci d’avance
      • 11975
      • 2,542 Posts
      Salut,

      pour appeler une snippet à l’intérieur d’une autre il faut utiliser cette syntaxe

      [!DropMenu?startDoc=[[UltimateParent]] !]

        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
        • 389
        • 11 Posts
        Salut,

        Voilà ce que j’ai fait :
        [!DropMenu &startDoc=[[GetUltimateParent?id=`5`&top=`2`]] !]

        où 5 est la sous-rubrique et 2 la rubrique.

        Mais sans effet. Le menu reste ouvert sur toutes les sous-rubriques, comme si UltimateParent n’avait pas d’effet.
        Pour info, ce code est inséré dans le "minimal template", sur lequel je n’ai rien modifié.
        Il y a un truc concernant le contexte j’imagine, que je ne cromprends pas.

        Si quelqu’un pouvait me décrire un tout petit peu en détail la marche à suivre, je lui en serais (presque grin) éternellement reconnaissant...
          • 11975
          • 2,542 Posts
          salut,

          pas sur que cela réponde exactement à ta question mais pour produire deux menus dans la page avec ultimate parent par exemple un menu principal avec la liste des folders de premier niveau(pour l’exemple on va dire à l’horizontal) et une navigation secondaire (indépendante et à la verticale) avec une arborescence du type:

          /root
          -/actus
          --/sports
          --/spectacles
          -/sorties
          -/etc...

          Pour générer la navigation principale qui reprendra les éléments actus, sorties, etc...

          [[DropMenu? &startDoc=0 &levelLimit=1 ]] suffira

          Pour générer la navigation Secondaire affichée lors de l’exploration d’un élément de premier niveau, par exemple "actus"

          [!DropMenu? &startDoc=[[UltimateParent]]  &levelLimit=1 !]
          Dans ce cas on demande à dropmenu de parcourir l’arborescence en commençant son exploration à partir  du dossier le plus haut placé dans l’arboresence ayant un lien de parenté avec le document en cours de consultation
          Ainsi un clic sur "actus" entraine la creation d’une navigation secondaire comme suit

          --/sports
          --/spectacles



          :-)

            Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
            • 389
            • 11 Posts
            Super, c’est exactement ce dont j’ai besoin.
            Je fais un essai pour voir si ça marche.
              • 11975
              • 2,542 Posts
              Salut,

              je voulais également préciser que si tu utilises un hack de dropmenu et sa version originale dans la même page c’est la premiere version lu dans la page qui s’appliquera aux deux appels du fait du nom identique de la fonction créant le menu dans les snippets.

              :-)
                Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                • 389
                • 11 Posts
                J’ai fait un essai.
                Les menus s’affichent correctement, mais lorsque je clique sur les sous-rubriques, j’ai une erreur SQL:

                « Execution of a query to the database failed - Unknown column ’Array’ in ’where clause’ »
                SQL: SELECT sc.parent FROM `modx921`.modx_site_content sc LEFT JOIN `modx921`.modx_document_groups dg on dg.document = sc.id WHERE (sc.id=Array AND sc.published=1 AND sc.deleted=0) AND (sc.privateweb=0) LIMIT 1


                Et je viens de refaire une nouvelle installation pour vérifier. Le problème persiste. Cela vient de UltimateParent, car quand je desinstalle ce Snippet, DropMenu fonctionne normalement.
                Est-ce que quelqu’un a une idée ?

                merci d’avance
                  • 389
                  • 11 Posts
                  Vraiment ? personne n’a une petite idée sur cette erreur SQL ?

                  « Execution of a query to the database failed - Unknown column ’Array’ in ’where clause’ »
                  SQL: SELECT sc.parent FROM `modx921`.modx_site_content sc LEFT JOIN `modx921`.modx_document_groups dg on dg.document = sc.id WHERE (sc.id=Array AND sc.published=1 AND sc.deleted=0) AND (sc.privateweb=0) LIMIT 1


                  j’ai besoin d’un coup de main là-dessus

                  merci d’avance

                    • 11975
                    • 2,542 Posts
                    Salut,

                    l’erreur est là :
                    Quote from: activeside at Jul 12, 2006, 11:13 PM

                    WHERE (sc.id=Array

                    C’est certainement lié au snippet getUltimateParent que tu utilises; Il renvoie un tableau ce qui provoque l’erreur.
                    Essaie avec la version UltimateParent qui se contente de renvoyer l’id du folder parent le plus haut placé dans la hierarchie du document en cours de consultation.

                    // UltimateParent - MODx snippet
                    // recursively searches the document tree
                    // and determines the "ultimate" parent
                    // (the one whose parent is 0)
                    // of the given document
                    //
                    // created 02 Nov 2005 by [email protected]
                    // released to the public domain
                    // 
                    // Usage:
                    // [!Menusnippet?folderid =`[[UltimateParent]]`!] 
                    // [!...!] form must be used so the inner snippet
                    // is parsed properly.
                    //
                    $id = $modx->documentIdentifier;
                    $pid = $modx->getParent($id,1,"id");
                    if($pid['id'] == 0) { return $id; }
                    while ($pid['id'] != 0) {
                        $id = $pid['id'];
                        $pid = $modx->getParent($id,1,"id");
                    }
                    return $id;
                    


                    :-)
                      Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                      • 389
                      • 11 Posts
                      Merci beaucoup. Ça marche super ! smiley laugh cool

                      Comment se fait-il qu’il y ai 2 versions différentes du Snippet UltimateParent ?
                      Je veux dire que quand je l’ai téléchargé et installé, il ne m’a pas semblé voir 2 versions disponibles ? aurais-je raté une info ?

                      En tout cas, merci pour l’info !