墨裔 发表于 2019-10-13 16:41:31

Discuz 开发后台常用函数详解

目录

[*]showsetting()表单显示
[*]cpmsg()提示消息
[*]showformheader()创建表单头
[*]showformfooter()创建表单尾
[*]showtableheader()创建表格头
[*]showtablefooter()创建表格尾
[*]showtablerow()创建列表式页面的行
[*]showsubmit()创建提交按钮
[*]showhiddenfields()创建隐藏表单域
[*]showsubmenu()二级导航栏显示
[*]shownav()面包屑导航栏显示及二级导航栏标题

01. showsetting()表单显示返回值:无
参数:
[*]$setname -
指定输出标题,如:setting_basic_bbname,
自动匹配描述文字为:setting_basic_bbname_comment,comment形式文字可以在./source/language
/lang_admincp.php语言包中添加
[*]$varname - 指定表单的name值,如settingnew
[*]$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', $setting['bbname'], 'text');

以单选形式输出表单(显示授权信息链接 radio):
[*]showsetting('setting_basic_boardlicensed', 'settingnew', $setting['boardlicensed'], 'radio');

以多行文本形式输出表单(网站第三方统计代码 textarea):
[*]showsetting('setting_basic_stat', 'settingnew', $setting['statcode'], 'textarea

以高级单选形式输出表单(新用户注册验证 mradio)
[*]showsetting('setting_access_register_verify', array('settingnew', 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', 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');

02. 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']));

03. showformheader()创建表单头
返回值:无
参数:

[*]$action - 表单action的一部分,程序会自动添加 admincp.php?action= 这些内容
[*]$extra - 表单附加属性,可以是样式等
[*]$name - 表单的name和id
[*]$method - 表单提交方式

使用方法举例:
合并版块表单:showformheader('forums&operation=merge');
04. showformfooter()创建表单尾无返回值、无参数
用于接上showformheader()函数进行收尾工作05. showtableheader()创建表格头
返回值:无
参数:

[*]$title - 如果输入title则显示标题,class为header,否则仅显示一个table头
[*]$classname - 定义此输出表格的CSS样式
[*]$extra - 表格扩展属性
[*]$titlespan - 表格列数

用方法实例:showtableheader('forums_edit_posts', 'nobottom');
06. showtablefooter()创建表格尾
用于接上showformheader()函数进行收尾工作
07. showtablerow()创建列表式页面的行
返回值:有
参数:
[*]$trstyle - 此行 tr 标签的格式定义,如 class="partition"
[*]$tdstyle <array> - TD 标签的格式定义,如 class,colspan 等
[*]$tdtext <array> - TD内显示的内容
[*]$return 是否返回值

此函数多用于循环中,用来逐行创建一个有规律的数据列表如:论坛版块列表等
使用方法举例 ./source/admincp/admincp_forums.php
[*]showtablerow('', array('class="td25"', 'class="td28"'), array(
[*]'<input type="checkbox" class="checkbox" name="delete[]"
value="'.$mod.'"'.($mod['inherited'] ? ' disabled' : '').' />',
[*]'<input type="text" class="txt" name="displayordernew['.$mod.']" value="'.$mod.'" size="2" />',
[*]"<a
href=\"".ADMINSCRIPT."?mod=forum&action=members&operation=group&uid=$mod\"
target=\"_blank\">$mod</a>",
[*]$modgroups[$mod['groupid']],
[*]cplang($mod['inherited'] ? 'yes' : 'no'),
[*]));

08. showsubmit()创建提交按钮
返回值:无
[*]$name - 定义提交按钮的name值
[*]$value - 定义按钮的文字值
[*]$before - 根据此按钮之前的属性来输出样式
[*]$after - 根据此按钮之后的属性来输出样式
[*]$floatright - 是否有浮动
[*]$entersubmit - 是否使用回车定义按钮提交动作

09. showhiddenfields()创建隐藏表单域
返回值:无
参数:$hiddenfields <array> 以数组形式传入,循环输出隐藏表单域10. showsubmenu()二级导航栏显示
返回值:无
参数:
[*]$title - 二级导航的当前栏标题
[*]$menus <array> - 多个子导航

使用方法举例:
后台-用户-会员管理
[*]showsubmenu('nav_members', array(
[*]array('search', 'members&operation=search', 1),
[*]array('clean', 'members&operation=clean', 0),
[*]array('nav_repeat', 'members&operation=repeat', 0),
[*]));

11. shownav()面包屑导航栏显示及二级导航栏标题
返回值:无
参数:
[*]$header - 导航起点
[*]$menu - 子导航标题
[*]$nav - 面包屑导航第三层



页: [1]
查看完整版本: Discuz 开发后台常用函数详解