在 ./source/admincp/menu/ 目录下创建 menu_mynav.php 文件 在“管理中心-全局”中加一个项目,需要在 menu_mynav.php 中给 $menu['global'] 数组变量,为其添加一个键值。如:

$menu['global'][] = array('menu_mynav_mytest', 'mynav_mytest');

创建一个语言包文件 ./source/language/lang_admincp_mynav.php 您可以在此语言包文件中添加一个中文键值来创建边栏按钮

$extend_lang = array ( 'menu_mynav_mytest' => '我的项目', ); $GLOBALS['admincp_actions_normal'][] = 'mynav';

其中 mynav_mytest 为指向的后台链接所对应的 action 和 operation, 如:admin.php?action=mynav&operation=mytest

创建后台页面

当创建好上面项目之后,就可以根据 action 和 operation 来创建后台页面 对应链接 action 在 ./source/admincp/ 中创建 admincp_mynav.php 全新的后台PHP页面,并在内部加入下面的代码确保其后台正常的访问安全:

<?php if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) { exit('Access Denied'); }

在此页面中以正常的 PHP 逻辑进行编写即可,注意链接中的 &operation=mytest 可以使用下面的php进行判断:

if($operation == 'mytest') { //... } 常用后台函数

当您在编写后台时,需要对几个常用后台显示函数进行详细的了解。下面的函数讲解按照重要性、常用性进行排序

showsetting()表单显示

返回值:无

参数:

$setname - 指定输出标题,如:setting_basic_bbname, 自动匹配描述文字为:setting_basic_bbname_comment,comment形式文字可以在./source/language /lang_admincp.php语言包中添加

$varname - 指定表单的name值,如settingnew[bbname]

$value - 指定表单默认值\变量

$type - 表单样式

radio单选

text文本、password密码、number数字

file上传文件

filetext 上传文件或在线文件切换型表单

textarea 多行文本

select 选择框

mradio 高级单选模式

mcheckbox 高级多选模式

binmcheckbox 二进制数值多选模式

mselect 高级选择框模式

color 颜色选择

calendar 日期选择

multiply多表单型,daterange时间范围

其他未在上述样式中出现的$type均独立输出

$disabled - 是否不可修改

$hidden - 是否隐藏

$comment - 强制描述文字

$extra - 表单扩展属性

$setid - 用于拼接表单外层Div的id

使用方法举例: //以文本形式输出表单(站点名称 text): showsetting('setting_basic_bbname', 'settingnew[bbname]', $setting['bbname'], 'text'); //以单选形式输出表单(显示授权信息链接 radio): showsetting('setting_basic_boardlicensed', 'settingnew[boardlicensed]', $setting['boardlicensed'], 'radio'); //以多行文本形式输出表单(网站第三方统计代码 textarea): showsetting('setting_basic_stat', 'settingnew[statcode]', $setting['statcode'], 'textarea'); //以高级单选形式输出表单(新用户注册验证 mradio) showsetting('setting_access_register_verify', array('settingnew[regverify]', array( array(0, $lang['none'], array('regverifyext' => 'none')), array(1, $lang['setting_access_register_verify_email'], array('regverifyext' => '')), array(2, $lang['setting_access_register_verify_manual'], array('regverifyext' => '')) )), $setting['regverify'], 'mradio'); //以高级多选形式输出表单('允许新用户注册 mcheckbox) showsetting('setting_access_register_status', array('settingnew[regstatus]', array( array('open', $lang['setting_access_register_open']), array('invite', $lang['setting_access_register_invite'], 'showinvite'), $_G['setting']['connect']['allow'] ? array('connect', $lang['setting_access_register_connect'], 'showconnect') : array(), )), $regstatus, 'mcheckbox');

cpmsg()提示消息

返回值:无

参数:

$message - lang_admincp_msg.php 语言包中需要输出的key

$url - 提示信息后跳转的页面,留空则返回上一页

$type - 特殊提示信息时指定页面的提示样式,可选参数:succeed、error、download、loadingform

$values - 为语言包中的变量关键词指定值,以数组形式输入

$extra - 消息文字扩展

$halt - 是否输出“Discuz! 提示”标题

使用方法举例:

成功提示信息

cpmsg('tasks_installed', 'action=tasks&operation=type', 'succeed');

错误提示信息,并传递变量(cachethreaddir为要传递如语言包中的变量关键词)

cpmsg('cachethread_dir_noexists', '', 'error', array('cachethreaddir' => $settingnew['cachethreaddir'])); showformheader()创建表单头

返回值:无

参数:

$action - 表单action的一部分,程序会自动添加 admincp.php?action= 这些内容

$extra - 表单附加属性,可以是样式等

$name - 表单的name和id

$method - 表单提交方式

使用方法举例,合并版块表单:

showformheader('forums&operation=merge'); showformfooter()创建表单尾

无返回值、无参数

用于接上showformheader()函数进行收尾工作

showtableheader()创建表格头

返回值:无

参数:

$title - 如果输入title则显示标题,class为header,否则仅显示一个table头

$classname - 定义此输出表格的CSS样式

$extra - 表格扩展属性

$titlespan - 表格列数

使用方法实例:

showtableheader('forums_edit_posts', 'nobottom'); showtablefooter()创建表格尾

用于接上showformheader()函数进行收尾工作

showtablerow()创建列表式页面的行

返回值:有

参数:

$trstyle - 此行 tr 标签的格式定义,如

$tdstyle <array> - TD 标签的格式定义,如 class,colspan 等

$tdtext <array> - TD内显示的内容

$return 是否返回值

此函数多用于循环中,用来逐行创建一个有规律的数据列表如:论坛版块列表等