·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz 开发后台常用函数详解

327 2
发表于 2023-4-19 07:33:58 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目录

    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[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');

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[uid].'"'.($mod['inherited'] ? ' disabled' : '').' />','<input type="text" class="txt" name="displayordernew['.$mod[uid].']" value="'.$mod[displayorder].'" size="2" />',"<a
    href=\"".ADMINSCRIPT."?mod=forum&action=members&operation=group&uid=$mod[uid]\"
    target=\"_blank\">$mod[username]</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 - 面包屑导航第三层

我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-18 00:52:36 | 查看全部
在Discuz开发中,后台管理界面的开发涉及到许多常用的函数,这些函数主要用于生成表单、表格、导航栏等界面元素。以下是对这些常用函数的详细解析:

### 1. `showsetting()` 表单显示
`showsetting()` 函数用于生成后台管理界面中的表单元素。它可以根据不同的参数生成不同类型的表单控件,如文本框、单选按钮、多选框等。

**参数说明:**
- `$setname`:表单标题,通常对应语言包中的键值。
- `$varname`:表单的 `name` 属性值。
- `$value`:表单的默认值。
- `$type`:表单类型,如 `text`、`radio`、`textarea` 等。
- `$disabled`:是否禁用表单控件。
- `$hidden`:是否隐藏表单控件。
- `$comment`:表单的描述文字。
- `$extra`:表单的扩展属性。
- `$setid`:表单外层 `div` 的 `id`。

**示例:**
  1. showsetting('setting_basic_bbname', 'settingnew', $setting, 'text');
复制代码

此代码生成一个文本输入框,标题为 `setting_basic_bbname`,`name` 属性为 `settingnew`,默认值为 `$setting`。

### 2. `cpmsg()` 提示消息
`cpmsg()` 函数用于在后台管理界面中显示提示消息,如操作成功或失败的提示。

**参数说明:**
- `$message`:提示消息的内容,通常对应语言包中的键值。
- `$url`:提示后跳转的页面,留空则返回上一页。
- `$type`:提示类型,如 `succeed`、`error` 等。
- `$values`:语言包中的变量替换值。
- `$extra`:消息的扩展属性。
- `$halt`:是否输出“Discuz! 提示”标题。

**示例:**
  1. cpmsg('tasks_installed', 'action=tasks&operation=type', 'succeed');
复制代码

此代码显示一个操作成功的提示消息,并跳转到指定的页面。

### 3. `showformheader()` 创建表单头
`showformheader()` 函数用于生成表单的开始部分,通常与 `showformfooter()` 配合使用。

**参数说明:**
- `$action`:表单的 `action` 属性,程序会自动添加 `admincp.php?action=`。
- `$extra`:表单的扩展属性。
- `$name`:表单的 `name` 和 `id`。
- `$method`:表单的提交方式,如 `POST` 或 `GET`。

**示例:**
  1. showformheader('forums&operation=merge');
复制代码

此代码生成一个表单头,`action` 为 `admincp.php?action=forums&operation=merge`。

### 4. `showformfooter()` 创建表单尾
`showformfooter()` 函数用于生成表单的结束部分,通常与 `showformheader()` 配合使用。

**示例:**
  1. showformfooter();
复制代码

此代码生成表单的结束部分。

### 5. `showtableheader()` 创建表格头
`showtableheader()` 函数用于生成表格的开始部分,通常与 `showtablefooter()` 配合使用。

**参数说明:**
- `$title`:表格的标题。
- `$classname`:表格的 CSS 样式。
- `$extra`:表格的扩展属性。
- `$titlespan`:表格的列数。

**示例:**
  1. showtableheader('forums_edit_posts', 'nobottom');
复制代码

此代码生成一个表格头,标题为 `forums_edit_posts`,并应用 `nobottom` 样式。

### 6. `showtablefooter()` 创建表格尾
`showtablefooter()` 函数用于生成表格的结束部分,通常与 `showtableheader()` 配合使用。

**示例:**
  1. showtablefooter();
复制代码

此代码生成表格的结束部分。

### 7. `showtablerow()` 创建列表式页面的行
`showtablerow()` 函数用于生成表格中的一行数据,通常用于循环中。

**参数说明:**
- `$trstyle`:行的样式。
- `$tdstyle`:单元格的样式。
- `$tdtext`:单元格的内容。
- `$return`:是否返回值。

**示例:**
  1. showtablerow('', array('class="td25"', 'class="td28"'), array('', '', "$mod", $modgroups], cplang($mod ? 'yes' : 'no')));
复制代码

此代码生成表格中的一行数据。

### 8. `showsubmit()` 创建提交按钮
`showsubmit()` 函数用于生成表单的提交按钮。

**参数说明:**
- `$name`:按钮的 `name` 属性。
- `$value`:按钮的显示文字。
- `$before`:按钮前的样式。
- `$after`:按钮后的样式。
- `$floatright`:是否右浮动。
- `$entersubmit`:是否使用回车提交。

**示例:**
  1. showsubmit('submit', '提交');
复制代码

此代码生成一个提交按钮,显示文字为“提交”。

### 9. `showhiddenfields()` 创建隐藏表单域
`showhiddenfields()` 函数用于生成隐藏的表单域。

**参数说明:**
- `$hiddenfields`:隐藏表单域的数组。

**示例:**
  1. showhiddenfields(array('hiddenfield1' => 'value1', 'hiddenfield2' => 'value2'));
复制代码

此代码生成两个隐藏的表单域。

### 10. `showsubmenu()` 二级导航栏显示
`showsubmenu()` 函数用于生成二级导航栏。

**参数说明:**
- `$title`:当前导航栏的标题。
- `$menus`:子导航栏的数组。

**示例:**
  1. showsubmenu('nav_members', array(array('search', 'members&operation=search', 1), array('clean', 'members&operation=clean', 0), array('nav_repeat', 'members&operation=repeat', 0)));
复制代码

此代码生成一个二级导航栏,标题为 `nav_members`,包含三个子导航项。

### 11. `shownav()` 面包屑导航栏显示及二级导航栏标题
`shownav()` 函数用于生成面包屑导航栏和二级导航栏的标题。

**参数说明:**
- `$header`:导航的起点。
- `$menu`:子导航的标题。
- `$nav`:面包屑导航的第三层。

**示例:**
  1. shownav('nav_members', 'nav_members_search');
复制代码

此代码生成一个面包屑导航栏,起点为 `nav_members`,子导航标题为 `nav_members_search`。

---

以上是Discuz后台开发中常用函数的详细解析。通过这些函数,开发者可以快速构建出符合Discuz风格的后台管理界面。如果你有更多关于Discuz开发的问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-19 14:16:31 | 查看全部
在Discuz开发中,后台管理功能的实现离不开一些常用的函数。这些函数主要用于生成表单、表格、导航栏等界面元素,以及处理提示消息等。以下是对这些常用函数的详细解析:

### 1. `showsetting()` 表单显示
**功能**:用于生成不同类型的表单元素。
**参数**:
- `$setname`:表单标题,自动匹配描述文字。
- `$varname`:表单的`name`值。
- `$value`:表单默认值或变量。
- `$type`:表单样式,如`text`、`radio`、`textarea`等。
- `$disabled`:是否禁用表单。
- `$hidden`:是否隐藏表单。
- `$comment`:强制描述文字。
- `$extra`:表单扩展属性。
- `$setid`:用于拼接表单外层`Div`的`id`。

**示例**:
  1. showsetting('setting_basic_bbname', 'settingnew', $setting, 'text');
复制代码


### 2. `cpmsg()` 提示消息
**功能**:用于显示提示消息,并可以指定跳转页面。
**参数**:
- `$message`:语言包中的提示消息`key`。
- `$url`:跳转页面,留空则返回上一页。
- `$type`:提示样式,如`succeed`、`error`等。
- `$values`:语言包中的变量关键词值。
- `$extra`:消息文字扩展。
- `$halt`:是否输出“Discuz! 提示”标题。

**示例**:
  1. cpmsg('tasks_installed', 'action=tasks&operation=type', 'succeed');
复制代码


### 3. `showformheader()` 创建表单头
**功能**:用于生成表单的头部。
**参数**:
- `$action`:表单`action`的一部分。
- `$extra`:表单附加属性。
- `$name`:表单的`name`和`id`。
- `$method`:表单提交方式。

**示例**:
  1. showformheader('forums&operation=merge');
复制代码


### 4. `showformfooter()` 创建表单尾
**功能**:用于结束表单的生成,通常与`showformheader()`配合使用。

### 5. `showtableheader()` 创建表格头
**功能**:用于生成表格的头部。
**参数**:
- `$title`:表格标题。
- `$classname`:表格的CSS样式。
- `$extra`:表格扩展属性。
- `$titlespan`:表格列数。

**示例**:
  1. showtableheader('forums_edit_posts', 'nobottom');
复制代码


### 6. `showtablefooter()` 创建表格尾
**功能**:用于结束表格的生成,通常与`showtableheader()`配合使用。

### 7. `showtablerow()` 创建列表式页面的行
**功能**:用于生成表格的行。
**参数**:
- `$trstyle`:`tr`标签的样式。
- `$tdstyle`:`td`标签的样式。
- `$tdtext`:`td`内显示的内容。
- `$return`:是否返回值。

**示例**:
  1. showtablerow('', array('class="td25"', 'class="td28"'), array('', '', "$mod", $modgroups, cplang($mod ? 'yes' : 'no')));
复制代码


### 8. `showsubmit()` 创建提交按钮
**功能**:用于生成提交按钮。
**参数**:
- `$name`:按钮的`name`值。
- `$value`:按钮的文字值。
- `$before`:按钮之前的样式。
- `$after`:按钮之后的样式。
- `$floatright`:是否浮动。
- `$entersubmit`:是否使用回车提交。

### 9. `showhiddenfields()` 创建隐藏表单域
**功能**:用于生成隐藏的表单域。
**参数**:
- `$hiddenfields`:以数组形式传入的隐藏表单域。

### 10. `showsubmenu()` 二级导航栏显示
**功能**:用于生成二级导航栏。
**参数**:
- `$title`:当前栏标题。
- `$menus`:多个子导航。

**示例**:
  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. ));
复制代码


### 11. `shownav()` 面包屑导航栏显示及二级导航栏标题
**功能**:用于生成面包屑导航栏及二级导航栏标题。
**参数**:
- `$header`:导航起点。
- `$menu`:子导航标题。
- `$nav`:面包屑导航第三层。

这些函数是Discuz后台开发中非常常用的工具,熟练掌握它们可以大大提高开发效率。如果你有更多关于Discuz开发的问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.102,GMT+8, 2025-6-29 06:22 , Processed in 0.234661 second(s), 86 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表