Discuz二次开发不可避免的会增加后台模块。下面是我结合网上及实际开发总结出来的步骤。
discuz基本的跳转方式为:admin.php?action=控制器&operation=方法
1、在source/admincp目录下,创建目录menu,并在menu目录下创建文件menu_action.php,action为自定义控制器名字。
我创建的文件为menu_carousel.php,并在文件中写入以下代码:- <?php
- if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
- exit('Access Denied');
- }
- /*
- 该文件的定义中,carousel为action,而operation为carousel_list中的list
- 左侧第一个的跳转链接为admin.php?action=carousel&operation=list
- */
- $topmenu['carousel'] = '';
- $menu['carousel'] = array(//定义左侧导航
- array('menu_carousel_list','carousel_list'),
- array('menu_carousel_upload','carousel_upload'),
- array('menu_carousel_designlist','carousel_designlist'),
- array('menu_carousel_design','carousel_design'),
- array('menu_carousel_tie','carousel_tie'),
- array('menu_carousel_other','carousel_other'),
- );
复制代码 2、在source/language目录下,创建文件lang_admincp_action.php,action为自定义控制器名字。
我创建的文件为lang_admincp_carousel.php,并在文件中写入以下代码:- <?php
- if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
- exit('Access Denied');
- }
- $extend_lang = array(
- 'header_carousel'=>'自定义',//定义顶部导航的名字
- 'nav_carousel'=>'carousel',//定义action名字
- 'menu_carousel_list'=>'轮播图列表',//定义左侧导航的显示文字,key值需要与menu_action.php中相对应
- 'menu_carousel_upload'=>'上传轮播图',
- 'menu_carousel_designlist'=>'原画图列表',
- 'menu_carousel_design'=>'上传原画图',
- 'menu_carousel_tie'=>'推送帖子',
- 'menu_carousel_other'=>'其他',
- );
- $GLOBALS['admincp_actions_normal'][] = 'carousel';
复制代码 3、可以开始创建控制器文件了,在source/admincp目录下创建控制器admincp_action.php,action为自定义控制器名字。
我创建的文件为admincp_carousel.php,在控制器文件中我们会根据operation的值不同,进行不同的操作,例如:- <?php
- if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
- exit('Access Denied');
- }
- cpheader();
- if($operation == 'list'){
- //轮播图列表显示界面
- }elseif($operation == 'upload'){
- //上传轮播图显示界面
- }elseif($operation == 'designlist'){
- //原画图列表显示界面
- }elseif($operation == 'design'){
- //上传原画图显示界面
- }elseif($operation == 'tie'){
- //推送帖子显示界面
- }elseif($operation == 'other'){
- //其他表显示界面
- }
复制代码
以上就是后台新增模块的相关知识 |