Comment puis-je entrer dans zf2 le nom du module actuel (sélectionné) dans la mise en page de l'application? Objectif: ma disposition de l'application incluait le menu principal de l'application ZF2 et chaque fois qu'un module est sélectionné, je dois mettre en surbrillance la voix du menu du module. De plus, j'ai besoin de définir le bon itinéraire (URL, action) lorsque le menu est effectué avec ceci pour. Chaque module a une voix de menu:
<ul class="nav"> <?php foreach ($menu_modules as $mod): $is_active = ($mod['name'] == $CURRENT_MODULE_NAME)?'selected':'';//GET MODULE NAME ?> <!-- class="active" --> <li><a href="#" <?php echo $is_active;?> ><?php echo $mod['title']; ?></a></li> <?php endforeach; ?> <li><a href="<?php echo $this->url('login/process', array('action'=>'logout')); ?>"><?php echo $this->translate('Logout') ?></a></li> </ul> <div class="row-fluid" id="main_container"> <?php echo $this->content; ?> </div>
3 Réponses :
Je sais qu'il est trop tard pour répondre à cette question et que de nombreuses réponses sont disponibles déjà, mais simplement au cas où quelqu'un voit cette question, il peut être utile.
dans le module alors vous pouvez utiliser du module principal ou de tout module .php code>, écrivez ceci - p>
$ actuelle_module_name code> variable dans votre fichier de mise en page (comme dans la question elle-même ).
Le reste des variables mentionnées dans le code ci-dessus peut être utilisé si nécessaire. P> p>
Cela a bien fonctionné pour moi, avec la modification selon la réponse de Porta Tela Webbuilding
Je préfère un moyen plus facile sans traiter avec Placez ce code dans module.php code>
$routeName = $this->getHelperPluginManager()->getServiceLocator()->get('Application')
->getMvcEvent()->getRouteMatch()->getMatchedRouteName();
if($routeName === "users") ...
Mais cela ne retournera pas le nom du module actuel si nous sommes dans une route d'enfant. Par exemple, il peut retourner modulename / par défaut
Utilisez $controller = $this->getParam('controller');
$module_array = explode('\\', $controller);
$module = array_shift($module_array);