Menu déroulant qui affiche d'autres éléments dans les sous pages

Menu déroulant qui affiche d'autres éléments dans les sous pages - PHP - Programmation

Marsh Posté le 22-08-2013 à 15:50:07    

Bonjour à tous,
 
je travaille sur l'implémentation d'un menu déroulant sur un site de CMS appelé Concrete5. Je rencontre un problème sur une des sous rubriques qui affichent d'autres éléments qui sont hors sujets des élements principaux. En fait ça reprend des infos du blog du site étrangement. Je connais rien au PHP et Javascript je me demandais si vous pouviez déceler le problème à partir du code php ci-dessous :
 
Merci par avance !!!

 

Code :
  1. <?php 
  2. $aBlocks = $controller->generateNav();
  3. $c = Page::getCurrentPage();
  4. $containsPages = false;
  5. $nh = Loader::helper('navigation');
  6. //this will create an array of parent cIDs  
  7. $inspectC=$c;
  8. $selectedPathCIDs=array( $inspectC->getCollectionID() );
  9. $parentCIDnotZero=true;
  10. while($parentCIDnotZero){
  11.  $cParentID=$inspectC->cParentID;
  12.  if(!intval($cParentID)){
  13.   $parentCIDnotZero=false;
  14.  }else{
  15.   $selectedPathCIDs[]=$cParentID;
  16.   $inspectC=Page::getById($cParentID);
  17.  }
  18. }
  19. foreach($aBlocks as $ni) {
  20.  $_c = $ni->getCollectionObject();
  21.  $_c_parent = Page::getByID($_c->getCollectionParentID(), $version = 'RECENT');
  22.  if (!$_c->getCollectionAttributeValue('exclude_nav') && !$_c_parent->getCollectionAttributeValue('do_not_display_subpages_in_nav') ) {
  23.   $target = $ni->getTarget();
  24.   if ($target != '') {
  25.    $target = 'target="' . $target . '"';
  26.   }
  27.   if (!$containsPages) {
  28.    // this is the first time we've entered the loop so we print out the UL tag
  29.    echo("<ul class=\"navigation-menu nav\">" );
  30.   }
  31.   $containsPages = true;
  32.   $thisLevel = $ni->getLevel();
  33.   if ($thisLevel > $lastLevel) {
  34.    echo("<ul>" );
  35.   } else if ($thisLevel < $lastLevel) {
  36.    for ($j = $thisLevel; $j < $lastLevel; $j++) {
  37.     if ($lastLevel - $j > 1) {
  38.      echo("</li></ul>" );
  39.     } else {
  40.      echo("</li></ul></li>" );
  41.     }
  42.    }
  43.   } else if ($i > 0) {
  44.    echo("</li>" );
  45.   }
  46.   $pageLink = false;
  47.   if ($_c->getCollectionAttributeValue('replace_link_with_first_in_nav')) {
  48.    $subPage = $_c->getFirstChild();
  49.    if ($subPage instanceof Page) {
  50.     $pageLink = $nh->getLinkToCollection($subPage);
  51.    }
  52.   }
  53.   if (!$pageLink) {
  54.    $pageLink = $ni->getURL();
  55.   }
  56.   $arrow = '';
  57.   $nav_with_sub = '';
  58.   if (($_c->getNumChildren() > 0) && ($_c->getCollectionID() != 1) && (!$_c->getCollectionAttributeValue('do_not_display_subpages_in_nav') )) {
  59.    $arrow = '<span class="menu-arrow"></span>';
  60.    $nav_with_sub = 'nav-with-sub';
  61.   }
  62.   if ($c->getCollectionID() == $_c->getCollectionID()) {
  63.    echo('<li class="nav-selected nav-path-selected '.$nav_with_sub.'"><a class="nav-selected nav-path-selected '.$nav_with_sub.'" ' . $target . ' href="' . $pageLink . '">' . $ni->getName() . $arrow . '</a>');
  64.   } elseif ( in_array($_c->getCollectionID(),$selectedPathCIDs) && ($_c->getCollectionID() != HOME_CID) ) {
  65.    echo('<li class="nav-path-selected '.$nav_with_sub.'"><a class="nav-path-selected '.$nav_with_sub.'" href="' . $pageLink . '" ' . $target . '>' . $ni->getName() . $arrow . '</a>');
  66.   } else {
  67.    echo('<li class="'.$nav_with_sub.'"><a class="'.$nav_with_sub.'" href="' . $pageLink . '" ' . $target . ' >' . $ni->getName() . $arrow . '</a>');
  68.   }
  69.   $lastLevel = $thisLevel;
  70.   $i++;
  71.  }
  72. }
  73. $thisLevel = 0;
  74. if ($containsPages) {
  75.  for ($i = $thisLevel; $i <= $lastLevel; $i++) {
  76.   echo("</li></ul>" );
  77.  }
  78. }
  79. ?>


Message édité par hanounadz le 22-08-2013 à 15:51:38
Reply

Marsh Posté le 22-08-2013 à 15:50:07   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed