Discuz 后台添加菜单
目标
使用Discuz做后台,做一个客户留言的Api和管理。原计划采用插件的方式处理。不过插件弄起来好麻烦,没有这么多的时间来处理。所以就用 数据库+后台管理的方式直接干了。
步骤
- (1)在后台引用下添加一个菜单 叫留言管理
- 其他后面在加吧
在应用下添加一个二级导航 留言
第一步:添加 一级导航,和二级导航
修改 \source\admincp\admincp_menu.php 文件
$topmenu = array (
'index' => '',
'global' => '',
'style' => '',
'topic' => '',
'user' => '',
'portal' => '',
'forum' => '',
'group' => '',
'safe' => '',
'extended' => '',
'plugin' => $isfounder ? 'plugins' : '',
'tools' => '',
'message'=> '', //添加++ 一级导航
);
//添加++
$menu['message'] = array(
array('menu_message', 'message_manage_list'), //第一个参数是二级导航名称,第二个参数为URL解析地址使用的 ,下面在做解释
);
第二步 给导航添加解释
修改 \source\language\lang_admincp_menu.php 文件
$lang = array
(
...
'header_message' => '留言', //一级导航 解释
'menu_message' => '留言', //添加++ 给 二级导航名称一个解释
...
刷新后会在 看到这样的提示
出现这个问题是因为DZ自身不具备 message 功能,而且DZ后台设置了可以访问的功能权限,只需要开启一下就ok。 修改/admin.php 文件
$admincp_actions_normal = array(
......
,'message'
);
Notice: 上面 第二个参数解释
将鼠标已上刚刚添加的二级导航看到出现以下内容,注意红色方框。
这就是 第二个参数 通过 explode (’_’, 第二个参数)得来的三个参数。
第三步 分析这个地址,并创建文件
1、分析admin.php 入口文件可知道。这个地址将会
if($admincp->allow($action, $operation, $do) || $action == 'index') {
var_dump($admincp->admincpfile($action));
exit;
//得到 这个数据 ./source/admincp/admincp_message.php
require $admincp->admincpfile($action);
} else {
创建这个文件
测试文件内容
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
exit('Access Denied');
}
cpheader();
if($operation == 'manage'){
echo 'asdfadsjfioadsjfiadsjfsadjnfdash';
}
效果:
到这里 添加后台导航栏目就完成了。