Discuz开发 Discuz! X2.5 插件制作之后台常用函数详解

[复制链接]
ARCHY明星会员实名认证 发表于 2013-1-2 12:42:07 [Discuz开发] 显示全部楼层 |阅读模式 上一主题 下一主题

马上注册,一起探讨正确快速的建站方法

您需要 登录 才可以下载或查看,没有帐号?快速注册

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

目录
  1. showsetting()表单显示
  2. cpmsg()提示消息
  3. showformheader()创建表单头
  4. showformfooter()创建表单尾
  5. showtableheader()创建表格头
  6. showtablefooter()创建表格尾
  7. showtablerow()创建列表式页面的行
  8. showsubmit()创建提交按钮
  9. showhiddenfields()创建隐藏表单域
  10. showsubmenu()二级导航栏显示
  11. shownav()面包屑导航栏显示及二级导航栏标题
复制代码
showsetting()表单显示
返回值:无
参数:
  1. $setname - 指定输出标题,如:setting_basic_bbname, 自动匹配描述文字为:setting_basic_bbname_comment,comment形式文字可以在./source/language/lang_admincp.php语言包中添加
  2. $varname - 指定表单的name值,如settingnew[bbname]
  3. $value - 指定表单默认值\变量
  4. $type - 表单样式
  5. radio单选
  6. text文本、password密码、number数字
  7. file上传文件
  8. filetext 上传文件或在线文件切换型表单
  9. textarea 多行文本
  10. select 选择框
  11. mradio 高级单选模式
  12. mcheckbox 高级多选模式
  13. binmcheckbox 二进制数值多选模式
  14. mselect 高级选择框模式
  15. color 颜色选择
  16. calendar 日期选择
  17. multiply多表单型,daterange时间范围
  18. 其他未在上述样式**现的$type均独立输出
  19. $disabled - 是否不可修改
  20. $hidden - 是否隐藏
  21. $comment - 强制描述文字
  22. $extra - 表单扩展属性
  23. $setid - 用于拼接表单外层Div的id
复制代码
使用方法举例:
以文本形式输出表单(站点名称 text):
  1. showsetting('setting_basic_bbname', 'settingnew[bbname]', $setting['bbname'], 'text');
复制代码
以单选形式输出表单(显示授权信息链接 radio):
  1. showsetting('setting_basic_boardlicensed', 'settingnew[boardlicensed]', $setting['boardlicensed'], 'radio');
复制代码
以多行文本形式输出表单(网站第三方统计代码 textarea):
  1. showsetting('setting_basic_stat', 'settingnew[statcode]', $setting['statcode'], 'textarea');
复制代码
以高级单选形式输出表单(新用户注册验证 mradio)
  1. showsetting('setting_access_register_verify', array('settingnew[regverify]', array(

  2. array(0, $lang['none'], array('regverifyext' => 'none')),

  3. array(1, $lang['setting_access_register_verify_email'], array('regverifyext' => '')),

  4. array(2, $lang['setting_access_register_verify_manual'], array('regverifyext' => ''))

  5. )), $setting['regverify'], 'mradio');
复制代码
以高级多选形式输出表单('允许新用户注册 mcheckbox)
  1. showsetting('setting_access_register_status', array('settingnew[regstatus]', array(

  2. array('open', $lang['setting_access_register_open']),

  3. array('invite', $lang['setting_access_register_invite'], 'showinvite'),

  4. $_G['setting']['connect']['allow'] ? array('connect', $lang['setting_access_register_connect'], 'showconnect') : array(),

  5. )), $regstatus, 'mcheckbox');
复制代码
cpmsg()提示消息
返回值:无
参数:
  1. $message - lang_admincp_msg.php 语言包中需要输出的key
  2. $url - 提示信息后跳转的页面,留空则返回上一页
  3. $type - 特殊提示信息时指定页面的提示样式,可选参数:succeed、error、download、loadingform
  4. $values - 为语言包中的变量关键词指定值,以数组形式输入
  5. $extra - 消息文字扩展
  6. $halt - 是否输出“discuz! 提示”标题
复制代码
使用方法举例:
成功提示信息
  1. cpmsg('tasks_installed', 'action=tasks&operation=type', 'succeed');
复制代码
错误提示信息,并传递变量(cachethreaddir为要传递如语言包中的变量关键词)
  1. cpmsg('cachethread_dir_noexists', '', 'error', array('cachethreaddir' => $settingnew['cachethreaddir']));
复制代码
showformheader()创建表单头
返回值:无
参数:
  1. $action - 表单action的一部分,程序会自动添加 admincp.php?action= 这些内容
  2. $extra - 表单附加属性,可以是样式等
  3. $name - 表单的name和id
  4. $method - 表单提交方式
复制代码
使用方法举例:
合并版块表单:
  1. showformheader('forums&operation=merge');
复制代码
showformfooter()创建表单尾
无返回值、无参数
用于接上showformheader()函数进行收尾工作

showtableheader()创建表格头
返回值:无
  1. 参数:$title - 如果输入title则显示标题,class为header,否则仅显示一个table头
  2. $classname - 定义此输出表格的CSS样式
  3. $extra - 表格扩展属性
  4. $titlespan - 表格列数
复制代码
使用方法实例:
  1. showtableheader('forums_edit_posts', 'nobottom');
复制代码
showtablefooter()创建表格尾
用于接上showformheader()函数进行收尾工作

showtablerow()创建列表式页面的行
返回值:有
参数:
  1. $trstyle - 此行 tr 标签的格式定义,如 class="partition"
  2. $tdstyle <array> - TD 标签的格式定义,如 class,colspan 等
  3. $tdtext <array> - TD内显示的内容
  4. $return 是否返回值
复制代码
此函数多用于循环中,用来逐行创建一个有规律的数据列表如:论坛版块列表等
使用方法举例 ./source/admincp/admincp_forums.php
  1. showtablerow('', array('class="td25"', 'class="td28"'), array(
  2. '<input type="checkbox" class="checkbox" name="delete[]" value="'.$mod[uid].'"'.($mod['inherited'] ? ' disabled' : '').' />',
  3. '<input type="text" class="txt" name="displayordernew['.$mod[uid].']" value="'.$mod[displayorder].'" size="2" />',
  4. "<a href="".ADMINSCRIPT."?mod=forum&action=members&operation=group&uid=$mod[uid]" target="_blank">$mod[username]</a>",
  5. $modgroups[$mod['groupid']],
  6. cplang($mod['inherited'] ? 'yes' : 'no'),
  7. ));
复制代码
showsubmit()创建提交按钮
返回值:无
  1. $name - 定义提交按钮的name值
  2. $value - 定义按钮的文字值
  3. $before - 根据此按钮之前的属性来输出样式
  4. $after - 根据此按钮之后的属性来输出样式
  5. $floatright - 是否有浮动
  6. $entersubmit - 是否使用回车定义按钮提交动作
复制代码
showhiddenfields()创建隐藏表单域
返回值:无
参数:
  1. $hiddenfields <array> 以数组形式传入,循环输出隐藏表单域
复制代码
showsubmenu()二级导航栏显示
返回值:无
参数:
  1. $title - 二级导航的当前栏标题
  2. $menus <array> - 多个子导航
复制代码
使用方法举例:
后台-用户-会员管理
  1. showsubmenu('nav_members', array(
  2. array('search', 'members&operation=search', 1),
  3. array('clean', 'members&operation=clean', 0),
  4. array('nav_repeat', 'members&operation=repeat', 0),
  5. ));
复制代码
shownav()面包屑导航栏显示及二级导航栏标题
返回值:无
参数:
  1. $header - 导航起点
  2. $menu - 子导航标题
  3. $nav - 面包屑导航第三层
复制代码
使用方法举例:
后台-运营-电子商务
  1. shownav('extended', 'nav_ec', 'nav_ec_config');
复制代码
以上列举的均为最常用后台函数,仔细了解这些函数的使用已经能够满足您对 Discuz! X 系列版本的后台开发需求。




上一篇:如何去掉登录discuz时候出现的Discuz! Board ?
下一篇:非常勤奋的菜鸟。。希望各位多多指教……

大神点评9

jingjinxin 发表于 2013-1-2 13:56:55 [Discuz开发] 显示全部楼层
学习了!感谢老大。
wmjhx431 发表于 2013-1-2 21:59:41 [Discuz开发] 显示全部楼层
这个贴不错!!!!!看了之后就要回复贴子,呵呵  
百度娘 发表于 2013-1-2 21:59:41 [Discuz开发] 显示全部楼层
顶你为升级
百姓召集网 发表于 2013-1-8 15:05:03 [Discuz开发] 显示全部楼层
太好了,学习
最具潜力80后 发表于 2013-1-30 11:25:27 [Discuz开发] 显示全部楼层
强烈要求学习
唯美意境 发表于 2013-2-13 17:16:43 [Discuz开发] 显示全部楼层
学习了,祝你新年有钱花啊
wodingnigeoo 发表于 2013-2-18 11:48:26 [Discuz开发] 显示全部楼层
我顶你个哦哦
wodingnigeoo 发表于 2013-2-18 14:18:08 [Discuz开发] 显示全部楼层
discuz技术文库里面 原原本本搬过来的,没新意呢
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表