We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 25483
    • 741 Posts
    Ik ben op dit moment bezig met een website dat 3 menu’s heeft;


    • Hoofdmenu (level 1)
    • Submenu (level 2)
    • Submenu van submenu (level 3)

    Het hoofdmenu en het submenu werken goed, maar de aanroep die ik voor het laatste menu gebruik werkt niet goed, deze laat namelijk level 2 zien als er geen level 3 is. Ik wil dus dat dat menu alleen verschijnt al er een level 3 is.

    Ik gebruik nu deze code:
    [!Wayfinder?startId=`[[UltimateParent? &top=`3` &topLevel=`3`]]` &level=`1` &hereClass=`current` &lastClass=`last` &outerClass=`custom-menu` &outerTpl=`outer-jeugdtandarts` !]


    Doe ik iets fout met de UltimateParent snippet, of moet ik een andere manier gebruiken om het menu van het 3de level te tonen??
      with regards,

      Ronald Lokers
      'Front-end developer' @ h2o Media

      • 25483
      • 741 Posts
      Ik heb ondertussen via het engelse forum de oplossing gevonden:

      [[GetChunkByLevel? &chunks=`,,subsubmenu,subsubmenu,subsubmenu,subsubmenu` &debug=`0` ]]


      subsubmenu is de chunk die het menu aanroept, de eerste 2 zijn leeg gelaten zodat op level 1 en 2 geen menu komt.

      GetChunkByLevel bevat deze code:
      <?php
      //
      //GetChunkByLevel
      //
      //[[GetChunkByLevel? &chunks=`,,,@CODE<h4>Aufgaben:</h4>,@CODE<h4>Subaufgaben:</h4>` &debug=`0` ]]
      //[[GetChunkByLevel? &chunks=`chunk0,chunk1,chunk3,projectlist,projectlist` &debug=`0` ]]
      
      $chunks_arr = (isset($chunks))? explode(",",$chunks) : array(); // [ array ]
      $debug = (isset($debug))? $debug :0;
      
      
      $current_level = ( count( $modx->getParentIds( $modx->documentObject['id'] ) )+1 );// von Stefan
      $output=$chunks_arr[$current_level];
      
      if ($debug == '1'){
      echo 'current_level '.$current_level.' ';
      echo 'chunk '.$output;
      }
      
      if (substr($output,0,5) == '@CODE'){
      $output = trim(substr($output,5));
      }
      else {
      $output= "{{".$output."}}";
      }
      
      return $output;
      ?>
        with regards,

        Ronald Lokers
        'Front-end developer' @ h2o Media

        • 14404
        • 84 Posts
        Mag ik je vragen wat je nu precies moet doen om dat 3de level submenu te krijgen? :] snap het niet helemaal
          • 25483
          • 741 Posts
          Het is een tijd geleden dat ik deze optie gebruikt heb, maar als het goed is moet je het volgende doen: Je moet bovenstaande code in een snippet zetten en deze dan zo aanroepen op de plek waar het menu moet komen:

          [[GetChunkByLevel? &chunks=`,,3delevel` &debug=`0` ]]


          "3delevel" is dan de chunk met daarin de aanroep voor het menu dat je dan wilt laten zien.

            with regards,

            Ronald Lokers
            'Front-end developer' @ h2o Media

            • 14404
            • 84 Posts
            dus in 3delevel moet ik als het ware de wayfinder code zetten die ik normaal in mijn template had staan, en de getchunkbylevel code waar ik anders het menu had staan in de template?
              • 25483
              • 741 Posts
              Inderdaad, als het goed is werkt het dan smiley Wel even ervoor zorgen dat je WayFinder aanroep zo is dat hij level 3 laat zien (Dat kan icm UltimateParent)
                with regards,

                Ronald Lokers
                'Front-end developer' @ h2o Media

                • 14404
                • 84 Posts
                Hmm, lijkt niet te werken voor me? wat doe ik fout?

                Ik zal je de codes even laten zien

                Template:

                	<div id="ajaxmenu">
                		[[GetChunkByLevel? &chunks=`,,menuchunk` &debug=`0` ]]
                	</div>



                menuchunk:

                [[Wayfinder?startId=`[[UltimateParent? &top=`3` &topLevel=`3`]]` &outerTpl=`mh.OuterTpl` &innerTpl=`mh.InnerTpl` &rowTpl=`mh.RowTpl` &innerRowTpl=`mh.InnerRowTpl` &firstClass=`first` &hereClass=``]]


                Output wat ik krijg is gewoon geen menu? wat doe ik verkeerd?
                  • 12943
                  • 97 Posts
                  Joeeeh, ik volg de discussie niet helemaal, maar moet je qua ’ajaxmenu’ geen [!uncached!] snippet call hebben..?

                  Overigens wordt hierboven niet de originele snippet vermeld. Kunt ook nog een docID meegeven cool

                  <?php
                  //use it in the call like this:
                  //
                  //[[GetChunkByLevel? &docid=`[+id+]` &chunks=`,,,@CODE<h4>Aufgaben:</h4>,@CODE<h4>Subaufgaben:</h4>` &debug=`0` ]]
                  //[[GetChunkByLevel? &chunks=`chunk0,chunk1,chunk3,projectlist,projectlist` &debug=`0` ]]
                  
                  $docid=isset($docid)?$docid:$modx->documentObject['id'];
                  $chunks_arr = (isset($chunks))? explode(",",$chunks) : array(); // [ array ]
                  $debug = (isset($debug))? $debug :0;
                  $current_level = ( count( $modx->getParentIds( $docid ) )+1 );// von Stefan
                  $output=$chunks_arr[$current_level];
                  if ($debug == '1'){
                  echo 'current_level '.$current_level.' ';
                  echo 'chunk '.$output;
                  }
                  if (substr($output,0,5) == '@CODE'){
                  $output = trim(substr($output,5));
                  }
                  else {
                  $output= "{{".$output."}}";
                  }
                  return $output;
                  ?> 


                    Accelerate your Windows system with 9.8 m/s2.
                    • 14404
                    • 84 Posts
                    Ook wanneer ik dat gebruik weergeeft hij geen menu.. iemand enig idee?:]
                      • 12943
                      • 97 Posts
                      &debug=1 meegeven geeft je level en chunk-output , misschien helpt dat?
                        Accelerate your Windows system with 9.8 m/s2.