在二开后台时候会有添加二级菜单的需求。如下就详解如何快速的新增二级菜单。
首先参考第一个修改的文章: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);
}这样就可以直接调用不同模块下的菜单配置了 !
关键字词:

