Commit 76dfbbc4 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'release-3.1.18'

parents f7ac9e89 9f11500c
Loading
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
namespace UnicaenApp\View\Helper\Navigation;

use RecursiveIteratorIterator;
use Zend\Navigation\Page\AbstractPage;

/**
 * Dessine le menu secondaire de l'application (vertical).
@@ -23,6 +24,8 @@ use RecursiveIteratorIterator;
 * - Si la page active est de niveau N supérieur à 3, elle continue d'apparaître dans le menu, et
 *   ses pages filles (niveau N+1) éventuelles apparaissent dessous.
 *
 * NB : il est quand même possible d'utiliser {@see setMinDepth()} pour changer le seuil de recherche.
 *
 * @author Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr>
 */
class MenuSecondaire extends AbstractMenu
@@ -85,12 +88,13 @@ class MenuSecondaire extends AbstractMenu
//        $prec = $this->getRenderInvisible(); // valeur initiale rétablie plus bas
//        $this->setRenderInvisible(true);
        
        // recherche de la page active de niveau 2
        $found = $this->findActive($container, 1, 1);
        // recherche de la page active à partir du niveau seuil éventuellement spécifié
        $minDepth = $this->getMinDepth() > 0 ? $this->getMinDepth() : 1;
        $found = $this->findActive($container, $minDepth, $minDepth);
        if (!$found) {
            return '';
        }
        $activePageNiv2 = $found['page'];
        $activePage = $found['page'];
        
        // recherche de la page active quelque soit son niveau pour déterminer la profondeur maxi utilisée plus bas
        $found = $this->findActive($container, 1);
@@ -98,13 +102,13 @@ class MenuSecondaire extends AbstractMenu
        
//        $this->setRenderInvisible($prec);
        
        // on ne considère que le sous-menu correspondant à la page active de niveau 2
        $container = $activePageNiv2;
        // on ne considère que le sous-menu correspondant à la page active
        $container = $activePage;
        
        // suppression des pages qu'on ne veut pas prendre en compte
        $iterator = new RecursiveIteratorIterator($container, RecursiveIteratorIterator::SELF_FIRST);
        $iterator->setMaxDepth(0);
        foreach ($iterator as $page) { /* @var $page \Zend\Navigation\Page\Mvc */
        foreach ($iterator as $page) { /* @var $page AbstractPage */
            $isActive = $page->isActive(true);
            if (!$isActive && $page->hasChildren()) {
                $page->removePages();
@@ -121,7 +125,7 @@ class MenuSecondaire extends AbstractMenu
//        }
//        echo PHP_EOL;
        
        $html = $this->renderNormalMenu(
        return $this->renderNormalMenu(
                $container,
                $options['ulClass'],
                $options['indent'],
@@ -132,7 +136,5 @@ class MenuSecondaire extends AbstractMenu
                $options['addClassToListItem'],
                isset($options['liActiveClass']) ? $options['liActiveClass'] : null
        );

        return $html;     
    }
}
 No newline at end of file