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

Merge branch 'release-3.1.18'

parents f7ac9e89 9f11500c
Pipeline #9670 failed with stages
in 35 seconds
......@@ -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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment