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

    Je doit porter un site sous modx, les choses se passent plutot bien à part pour le menu ou j’ai un probleme avec dropmenu.

    En effet, le design du site veux que l’UL principale du menu ai à la fois un attribut "class" et un attribut "id"

    comme ceci :

    [tt]
    <ul class="menu" id="outils">
    <li class="first"><a href="page_int.html">Outils de virtualisation</a></li>
    <li><a href="#">Outils de migration</a></li>
    <li><a href="#">Procédures d’exploitation</a></li>
    <li><a href="#">Outils de sauvegarde</a></li>
    <li><a href="#">Outils d’automatisation</a></li>
    <li><a href="#">Outils de supervision</a></li>
    </ul>
    [/tt]

    Or je n’arrive pas à faire ceci avec dropmenu sad

    Est-ce que quelqu’un sait comment faire passer à dropmenu à la fois un attribut "class" et "id" ?

    Voici quelques trucs que j’ai essayer :

    j’ai essayer d’adapter le menu comme ceci:
    [tt]
    <ul class="menu" id="outils">
    [!DropMenu? &startDoc=`2` &levelLimit=`1`!]
    </ul>
    [/tt]
    ca marche dans tout les navigateurs sauf dans IE sad

    j’ai aussi essayer tout ce qui se trouve ci-dessous, mais rien ne marche sad

    [tt]
    <ul class="menu" id="outils">
    [!DropMenu? &topnavClass=`menu` &startDoc=`2` &levelLimit=`1`!]
    </ul>
    [/tt]
    [tt]
    <ul id="outils">
    [!DropMenu? &topnavClass=`menu` &startDoc=`2` &levelLimit=`1`!]
    </ul>
    [/tt]
    [tt]
    [!DropMenu? &topnavClass=`menu id="outils` &startDoc=`2` &levelLimit=`1`!]
    [/tt]
    [tt]
    <div="outils">
    [!DropMenu? &topnavClass=`menu` &startDoc=`2` &levelLimit=`1`!]
    </div>
    [/tt]

    Merci beaucoup d’avance.

    Si je suis pas assez claire, n’hesitez pas à me le dire.
    Par ailleurs je ne sais pas si je peut mettre un lien direct vers le site ou j’ai le probleme.
      • 33706
      • 51 Posts
      Ceci peut te convenir ??

      <div class="menu" id="outils>
      [!DropMenu? &startDoc=`2` &levelLimit=`1`!]
      </div>


      Michel
        • 11975
        • 2,542 Posts
        salut,

        pour cela il te faudra modifier le snippet dropmenu

        en ajoutant un parametre à la liste déjà existante

        Après la ligne 133

        // $topnavId [ string ]
        // CSS ID for the top-level (root) UL
        $topnavId  = (!isset($topnavId )) ? ' id='.$topnavId .' ' : '';
        
        


        et change la  ligne 216 pour

        $output = ($toplevel) ? "$topdivblk<ul$topnavcls$topnavId >$ie" : "$ie$subdivblk<ul$subnavcls>$ie";


        J’ai pas testé mais ça devrait marcher
        Ensuite dans l’appel de dropmenu

        [[DropMenu? & topnavId=`outils` ]]
          Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
          • 22202
          • 23 Posts
          Quote from: _michel_ at May 11, 2006, 10:27 AM

          Ceci peut te convenir ??

          <div class="menu" id="outils>
          [!DropMenu? &startDoc=`2` &levelLimit=`1`!]
          </div>


          Michel

          Merci ! mais j’ai essayer et ca marche pas sad
            • 22202
            • 23 Posts
            Quote from: heliotrope at May 11, 2006, 10:29 AM

            salut,

            pour cela il te faudra modifier le snippet dropmenu

            en ajoutant un parametre à la liste déjà existante

            Après la ligne 133

            // $topnavId [ string ]
            // CSS ID for the top-level (root) UL
            $topnavId  = (!isset($topnavId )) ? ' id='.$topnavId .' ' : '';
            
            


            et change la ligne 216 pour

            $output = ($toplevel) ? "$topdivblk<ul$topnavcls$topnavId >$ie" : "$ie$subdivblk<ul$subnavcls>$ie";
            


            J’ai pas testé mais ça devrait marcher
            Ensuite dans l’appel de dropmenu

            [[DropMenu? & topnavId=`outils` ]]

            Merci, c’etais la 1er solutions que j’avais essayer d’adopter mais je m’etais casser les dents dessus, mais j’espere y arriver avec un peu d’aide (merci d’avance !).

            Alors, j’ai essayer tes modifs, mais ca ne marche pas sad

            je pensais que c’etais parce que dans :
            $output = ($toplevel) ? "$topdivblk<ul$topnavcls$topnavId >$ie" : "$ie$subdivblk<ul$subnavcls>$ie";

            $topnavId n’etais par declaré comme l’est $topnavcls

            alors j’ai rajouter :
            			$topnavids = (!empty($topnavId)) ? ' class="'.$topnavId.'"' : '';
            

            et j’ai changer les 2 autres en :
            $output = ($toplevel) ? "$topdivblk<ul$topnavcls$topnavids >$ie" : "$ie$subdivblk<ul$subnavcls>$ie";
            

            et
            // $topnavId [ string ]
            // CSS ID for the top-level (root) UL
            $topnavId  = (!isset($topnavId )) ? 'topid' : "$topnavId";
            


            mais rien n’y fait !

            j’ai regarder à quel autre endroit apparaissait $topnavclass pour pouvoir aussi mettre un $topnavid de la meme facon.
            il apparais à la ligne 199 ou j’ai rajouter un topnavId à la suite du du topnavClass :
            	function MakeMap($modx, $listParent, $listLevel, $description, $titleOfLinks, $maxLevels, $inside, $pre, $post, $selfAsLink, $ie, $activeLinkIDs, $topdiv, $topdivClass, $topnavClass, $topnavId, $subdiv, $subdivClass, $subnavClass, $hereClass, $useCategoryFolders, $categoryClass, $showDescription, $descriptionField, $textOfLinks, $orderBy, $orderDesc, $debugMode) {
            

            et à la ligne 261, ou j’ai rajouter un topnavId à la suite du du topnavClass :
            					$itm .= MakeMap($modx, $child['id'], $listLevel +1, $description, $titleOfLinks, $maxLevels, true, $pre, $post, $selfAsLink, $ie, $activeLinkIDs, $topdiv, $topdivClass, $topnavClass, $topnavId, $subdiv, $subdivClass, $subnavClass, $hereClass, $useCategoryFolders, $categoryClass, $showDescription, $descriptionField, $textOfLinks, $orderBy, $orderDesc, $debugMode);
            


            et à la ligne 329 ou j’ai rajouter un topnavId à la suite du du topnavClass :
                $modx->setPlaceholder($phName, MakeMap($modx, $siteMapRoot, 0, $showDescription, $titleOfLinks, $maxLevels, false, $pre, $post, $selfAsLink, $ie, $activeLinkIDs, $topdiv, $topdivClass, $topnavClass, $topnavId, $subdiv, $subdivClass, $subnavClass, $hereClass, $useCategoryFolders, $categoryClass, $showDescription, $descriptionField, $textOfLinks, $orderBy, $orderDesc, $debugMode));
            


            j’obtiens alors l’errue suivante :

            « MODx Parse Error »
            
            MODx encountered the following error while attempting to parse the requested resource:
            « PHP Parse Error »
             
            PHP error debug
              Error:	Missing argument 28 for makemap()	 
              Error type/ Nr.:	Warning - 2	 
              File:	/data/www/www.arumtec.net/v2/manager/includes/document.parser.class.inc.php(691) : eval()'d code	 
              Line:	199	 
             
            Parser timing
              MySQL:	0.0041 s s	(12 Requests)
              PHP:	0.0782 s s	 
              Total:	0.0823 s s	 
            


            j’essaye d’enlever la modif de la ligne 199, mais là rien ne change, je n’ai toujours pas d’attribut id pour l’UL.

            j’avoue que je suis un peu beaucoup perdu ...