给discuz x增加后台菜单管理功能
我们二次开发时,有时避免不了要为自己的程序增加后台管理功能,首先就要是要添加扩展目录和文件:
新建立目录/source/admincp/menu/ 扩展菜单目录,(左侧菜单显示的文件,文件名称的格式 menu_music.php)。
再之后新建文件/source/admincp/menu/menu_music.php 菜单配置 ,music是你模型的的名字,是$_GET[‘action’]的值。
写入文件内容
<?php
$topmenu['music'] = ”;
$menu['music'] = array(
array(‘menu_music_channle’, ‘music_channel_confid’),/*第一个值为菜单名字;会用默认的lang获取,也可以直接写名字。
第二个值为参数$_GET['action']、$_GET['operation']和$_GET['do'] 用”_”格开,这个在写管理文件时要用,比如这个对应的网址就是admin.php?action=music&operation=channel&do=confid。
每一个数组就是一个菜单按钮。
*/
array(‘menu_music_sortoption’, ‘music_sort’),
);?>
接下来就是写菜单名字了:
新建/source/language/lang_admincp_music.php语言文件,写入下面内容:
<?php
$extend_lang = array
(
‘header_music’ => ‘音乐’,//这是最上面显示的菜单名字。
‘nav_music’ => ‘音乐′, //子导航菜单名字,下面就是对应菜单配置中的中文‘menu_music_channle_confid” => ‘音乐基本设置’,
‘menu_music_sort’ => ‘音乐分类管理’,);$GLOBALS['admincp_actions_normal'][] = ‘music’;//这是模板的名字,这个是必须写的!
?>
接下来就是写管理文件了,
创建/source/admincp/admincp_music.php,music是模板名。
具体内容就要自己写了,但是一定要记得在文件头加上
if(!defined(‘IN_DISCUZ’) || !defined(‘IN_ADMINCP’)) {
exit(‘Access Denied’);
}
总结:discuz后台扩展菜单的方法:
第一种:
1.有着PHP的功力,直接修改discuz源文件。(不推荐 兼容性不好)
步骤:
1.打开文件 source/admincp/admincp_menu.php修改添加红色字体
$isfounder = isset($isfounder) ? $isfounder : isfounder(); $topmenu = $menu = array(); $topmenu = array ( 'index' => '', 'global' => '', 'style' => '', 'topic' => '', 'user' => '', 'portal' => '', 'forum' => '', 'group' => '', 'extended' => '', 'plugin' => $isfounder ? 'plugins' : '', 'tools' => '', 'music' => '', );
2.打开文件source/language/lang_admincp_menu.php修改添加
$lang = array ( 'header_index' => '首頁', 'header_global' => '全局', 'header_forum' => '論壇', 'header_user' => '用戶', 'header_topic' => '內容', 'header_extended' => '運營', 'header_plugin' => '應用', 'header_style' => '界面', 'header_adv' => '廣告', 'header_tools' => '工具', 'header_uc' => 'UCenter', 'header_music' => '音乐', 'header_welcome' => '您好',
保存 即可,刷新后台。OK 顶部菜单已出来。
第二种方法:以扩展的方式写(推荐 兼容性好),discuz会自动扫描source/admincp/menu文件夹下的文件,自动包含。
创建menu_music.php文件
<?php $topmenu['music'] = ''; $menu['music'] = array( array('menu_category_index', 'category_index_music'), ); ?>
2.创建source/language/lang_admincp_music.php
<?php $extend_lang = array ( 'header_music' => '音乐', 'nav_music' => '音乐', 'mod_name_music' => '音乐模块增强版', 'menu_category_index' => '音乐信息', ); $GLOBALS['admincp_actions_normal'][] = 'music'; ?>
注意:经过我研究发现 header_music 与topmenu['music']='';是语言对应关系。有错误的欢迎探讨。