ZF2:获取菜单突出显示的应用程序布局中的模块名称(或路径)

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了ZF2:获取菜单突出显示的应用程序布局中的模块名称(或路径)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
何在Zf2获取应用程序布局中的当前(选定)模块名称
目的:我的应用程序布局包括zf2应用程序的主菜单,每次选择模块时,我都需要突出显示模块的菜单语音.此外,我需要设置正确的路线(网址,动作)时,使用此菜单.
每个模块都有一个菜单语音:
<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>
知道回答这个问题为时已晚,并且已经有很多答案可用,但万一有人看到这个问题,它可能会有所帮助.

在主要或任何Module的Module.PHP中,写下这个 –

class Module {

    public function onBootstrap(MvcEvent $e) {

        $sm = $e->getApplication()->getServiceManager();

        $router = $sm->get('router');
        $request = $sm->get('request');
        $matchedRoute = $router->;match($request);

        $params = $matchedRoute->getParams();

        $controller = $params['controller'];
        $action = $params['action'];

        $module_array = explode('\\',$controller);
        $module = array_pop($module_array);

        $route = $matchedRoute->getMatchedRouteName();

        $e->getviewmodel()->setVARiables(
            array(
                'CURRENT_MODULE_NAME' => $module,'CURRENT_CONTROLLER_NAME' => $controller,'CURRENT_ACTION_NAME' => $action,'CURRENT_ROUTE_NAME' => $route,)
        );
    }
}

然后,您可以在布局文件中使用$CURRENT_MODULE_NAME变量(在问题本身中完成).如果需要,可以使用上面代码中提到的其余变量.

脚本宝典总结

以上是脚本宝典为你收集整理的ZF2:获取菜单突出显示的应用程序布局中的模块名称(或路径)全部内容,希望文章能够帮你解决ZF2:获取菜单突出显示的应用程序布局中的模块名称(或路径)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。