Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
lib
unicaen
app
Commits
76dfbbc4
Commit
76dfbbc4
authored
May 04, 2021
by
Bertrand Gauthier
Browse files
Merge branch 'release-3.1.18'
parents
f7ac9e89
9f11500c
Pipeline
#9670
failed with stages
in 35 seconds
Changes
1
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
src/UnicaenApp/View/Helper/Navigation/MenuSecondaire.php
View file @
76dfbbc4
...
...
@@ -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
''
;
}
$activePage
Niv2
=
$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
=
$activePage
Niv2
;
// 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
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment