在二开后台时候会有添加二级菜单的需求。如下就详解如何快速的新增二级菜单。
首先参考第一个修改的文章:http://www.apizl.com/archives/view-132884-1.html
但是如上是修改缓存文件,但是我们需要永久修改后台的菜单!
首先修改根目录下面的入口文件shopnc.php文件
define('ADMIN_MODULES_XXXX', 'modules/xxxx');
\admin\modules\xxxx就对应你的新模块
\admin\modules\xxxx\include 下面的就是你的菜单配置 只需把上一篇文章的配置搬到如下就可以!
\admin\control\control.php 我们需要修改如下的方法
/** * 取得后台菜单的Html形式 * * @param string $permission * @return */ protected final function getNav() { xxxx... }
修改为:
/** * 取得后台菜单的Html形式 * * @param string $permission * @return */ protected final function getNav() { Language::read('layout'); $lang = Language::getLangContent(); if (file_exists(BASE_PATH . DS . ADMIN_MODULES_SYSTEM . '/include/menu.php')) { require(BASE_PATH . DS . ADMIN_MODULES_SYSTEM . '/include/menu.php'); } if (file_exists(BASE_PATH . DS . ADMIN_MODULES_SHOP . '/include/menu.php')) { require(BASE_PATH . DS . ADMIN_MODULES_SHOP . '/include/menu.php'); } if (file_exists(BASE_PATH . DS . ADMIN_MODULES_CMS . '/include/menu.php')) { require(BASE_PATH . DS . ADMIN_MODULES_CMS . '/include/menu.php'); } if (file_exists(BASE_PATH . DS . ADMIN_MODULES_CIECLE . '/include/menu.php')) { require(BASE_PATH . DS . ADMIN_MODULES_CIECLE . '/include/menu.php'); } if (file_exists(BASE_PATH . DS . ADMIN_MODULES_MICEOSHOP . '/include/menu.php')) { require(BASE_PATH . DS . ADMIN_MODULES_MICEOSHOP . '/include/menu.php'); } if (file_exists(BASE_PATH . DS . ADMIN_MODULES_MOBILE . '/include/menu.php')) { require(BASE_PATH . DS . ADMIN_MODULES_MOBILE . '/include/menu.php'); } if (file_exists(BASE_PATH . DS . ADMIN_MODULES_XXXX . '/include/menu.php')) { require(BASE_PATH . DS . ADMIN_MODULES_XXXX . '/include/menu.php'); } // $_menu = $this->getMenu();//此处是调用的缓存菜单数据配置 $_menu = $this->parseMenu($_menu); $quicklink = $this->getQuickLink(); $top_nav = ''; $left_nav = ''; $map_nav = ''; $map_top = ''; $quick_array = array(); foreach ($_menu as $key => $value) { $top_nav .= '<li data-param="' . $key . '"><a href="javascript:void(0);">' . $value['name'] . '</a></li>'; $left_nav .= '<div id="admincpNavTabs_' . $key . '" class="nav-tabs">'; $map_top .= '<li><a href="javascript:void(0);" data-param="map-' . $key . '">' . $value['name'] . '</a></li>'; $map_nav .= '<div class="admincp-map-div" data-param="map-' . $key . '">'; foreach ($value['child'] as $ke => $val) { if (!empty($val['child'])) { $left_nav .= '<dl><dt><a href="javascript:void(0);"><span class="ico-' . $key . '-' . $ke . '"></span><h3>' . $val['name'] . '</h3></a></dt>'; $left_nav .= '<dd class="sub-menu"><ul>'; $map_nav .= '<dl><dt>' . $val['name'] . '</dt>'; foreach ($val['child'] as $k => $v) { $left_nav .= '<li><a href="javascript:void(0);" data-param="' . $key . '|' . $k . '">' . $v . '</a></li>'; $selected = ''; if (in_array($key . '|' . $k, $quicklink)) { $selected = 'selected'; $quick_array[$key . '|' . $k] = $v; } $map_nav .= '<dd class="' . $selected . '"><a href="javascript:void(0);" data-param="' . $key . '|' . $k . '">' . $v . '</a><i class="fa fa-check-square-o"></i></dd>'; } $left_nav .= '</ul></dd></dl>'; $map_nav .= '</dl>'; } } $left_nav .= '</div>'; $map_nav .= '</dl></div>'; } $map_nav = '<ul class="admincp-map-nav">' . $map_top . '</ul>' . $map_nav; return array($top_nav, $left_nav, $map_nav, $quick_array); }
这样就可以直接调用不同模块下的菜单配置了 !
关键字词: