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

Discuz!开发之消息提示函数showmessage()分析及用法实例

478 2
发表于 2023-4-19 08:00:07 | 查看全部 阅读模式

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

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

×
有兴趣的朋友可以查看showmessage函数和dshowmessage函数的定义,相关文件:
\source\function\function_core.php
\source\function\function_message.php
  1.   //函数结构function showmessage($message, $url_forward = '', $values = array(), $extraparam = array(), $custom = 0) {        require_once libfile('function/message');        return dshowmessage($message, $url_forward, $values, $extraparam, $custom);}
复制代码
  1.   //函数定义/** * 显示提示信息 * @param $message - 提示信息,可中文也可以是 lang_message.php 中的数组 key 值 * @param $url_forward - 提示后跳转的 url * @param $values - 提示信息中可替换的变量值 array(key => value ...) 形式 * @param $extraparam - 扩展参数 array(key => value ...) 形式 *    跳转控制        header        header跳转        timeout        定时跳转        refreshtime    自定义跳转时间        closetime    自定义关闭时间,限于 msgtype = 2        locationtime    自定义跳转时间,限于 msgtype = 2    内容控制        alert        alert 图标样式 right/info/error        return        显示请返回        redirectmsg    下载时用的提示信息,当跳转时显示的信息样式                     0:如果您的浏览器没有自动跳转,请点击此链接                     1:如果 n 秒后下载仍未开始,请点击此链接        msgtype        信息样式                     1:非 Ajax                     2:Ajax 弹出框                     3:Ajax 只显示信息文本        showmsg        显示信息文本        showdialog    关闭原弹出框显示 showDialog 信息,限于 msgtype = 2        login        未登录时显示登录链接    Ajax 控制        handle        执行 js 回调函数*/
复制代码

  1.   //提示改名成功showmessage('您已更新博客名为:{name} ', '', array('name' => '新博客名称'));
复制代码
  1.   //提示发布成功showmessage('恭喜您,操作成功,获得奖励{credit}积分!',NULL, array('credit' => 888),array('alert' => 'right','login'=>'1'));
复制代码
  1.   //提示发布成功showmessage('恭喜您,内容发布成功,正在跳转到首页!',$_G['siteurl'], array(), array('locationtime'=>true,'refreshtime'=>3, 'showdialog'=>1, 'showmsg' => true));
复制代码
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-18 02:59:05 | 查看全部
`showmessage()` 是 Discuz! 中一个非常常用的函数,用于在页面上显示提示信息,并可以根据需要跳转到指定的 URL。这个函数在 Discuz! 的核心功能中扮演着重要角色,尤其是在处理用户操作后的反馈信息时。

### 函数结构
  1. function showmessage($message, $url_forward = '', $values = array(), $extraparam = array(), $custom = 0) {
  2.     require_once libfile('function/message');
  3.     return dshowmessage($message, $url_forward, $values, $extraparam, $custom);
  4. }
复制代码


### 参数说明
1. **$message**: 提示信息内容。可以是直接的字符串,也可以是 `lang_message.php` 中的数组键值。
2. **$url_forward**: 提示信息显示后跳转的 URL。如果为空,则不跳转。
3. **$values**: 用于替换提示信息中的变量。格式为 `array(key => value)`,其中 `key` 是提示信息中的变量名,`value` 是要替换的值。
4. **$extraparam**: 扩展参数,用于控制提示信息的显示方式和跳转行为。常见的参数包括:
   - `header`: 是否使用 header 跳转。
   - `timeout`: 是否定时跳转。
   - `refreshtime`: 自定义跳转时间。
   - `closetime`: 自定义关闭时间(仅适用于 `msgtype = 2`)。
   - `locationtime`: 自定义跳转时间(仅适用于 `msgtype = 2`)。
   - `alert`: 提示信息的图标样式(如 `right`、`info`、`error`)。
   - `return`: 是否显示“请返回”链接。
   - `redirectmsg`: 下载时的提示信息。
   - `msgtype`: 信息样式(1: 非 Ajax,2: Ajax 弹出框,3: Ajax 只显示信息文本)。
   - `showmsg`: 是否显示信息文本。
   - `showdialog`: 是否关闭原弹出框并显示 `showDialog` 信息(仅适用于 `msgtype = 2`)。
   - `login`: 未登录时是否显示登录链接。
   - `handle`: 执行 JavaScript 回调函数。
5. **$custom**: 自定义参数,通常用于扩展功能。

### 使用实例

#### 1. 提示改名成功
  1. showmessage('您已更新博客名为:{name} ', '', array('name' => '新博客名称'));
复制代码

- **解释**: 提示用户博客名已更新为“新博客名称”,并且不进行跳转。

#### 2. 提示发布成功并显示奖励积分
  1. showmessage('恭喜您,操作成功,获得奖励{credit}积分!', NULL, array('credit' => 888), array('alert' => 'right', 'login' => '1'));
复制代码

- **解释**: 提示用户操作成功,并获得 888 积分。提示信息显示为“right”样式的图标,并且如果用户未登录,会显示登录链接。

#### 3. 提示发布成功并跳转到首页
  1. showmessage('恭喜您,内容发布成功,正在跳转到首页!', $_G, array(), array('locationtime' => true, 'refreshtime' => 3, 'showdialog' => 1, 'showmsg' => true));
复制代码

- **解释**: 提示用户内容发布成功,并在 3 秒后跳转到首页。提示信息以弹出框形式显示,并且显示信息文本。

### 总结
`showmessage()` 是一个非常灵活的函数,可以根据不同的需求定制提示信息的显示方式和跳转行为。通过合理使用 `$values` 和 `$extraparam` 参数,可以实现丰富的用户交互效果。如果你在开发过程中需要显示提示信息,`showmessage()` 是一个非常实用的工具。

如果你有更多关于 Discuz! 开发的问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-19 09:23:06 | 查看全部
`showmessage()` 是 Discuz! 中一个非常常用的函数,用于在页面上显示提示信息,并且可以控制提示信息的样式、跳转逻辑等。下面我将详细分析这个函数的用法,并结合实例进行说明。

### 函数结构
  1. function showmessage($message, $url_forward = '', $values = array(), $extraparam = array(), $custom = 0) {
  2.     require_once libfile('function/message');
  3.     return dshowmessage($message, $url_forward, $values, $extraparam, $custom);
  4. }
复制代码

- **$message**: 提示信息内容,可以是纯文本,也可以是语言包中的键值。
- **$url_forward**: 提示信息显示后跳转的URL。如果为空,则不跳转。
- **$values**: 用于替换提示信息中的变量,格式为 `array('key' => 'value')`。
- **$extraparam**: 扩展参数,用于控制提示信息的样式、跳转时间、是否显示对话框等。
- **$custom**: 自定义参数,通常用于扩展功能。

### 扩展参数 `$extraparam` 详解
`$extraparam` 是一个数组,可以包含以下键值对:

1. **跳转控制**:
   - `header`: 是否使用 `header` 跳转。
   - `timeout`: 是否启用定时跳转。
   - `refreshtime`: 自定义跳转时间(秒)。
   - `closetime`: 自定义关闭时间(秒),仅适用于 `msgtype = 2`。
   - `locationtime`: 自定义跳转时间(秒),仅适用于 `msgtype = 2`。

2. **内容控制**:
   - `alert`: 提示信息的图标样式,可选值有 `right`、`info`、`error`。
   - `return`: 是否显示“请返回”链接。
   - `redirectmsg`: 下载时用的提示信息,当跳转时显示的信息样式。
   - `msgtype`: 信息样式,可选值有:
     - `1`: 非 Ajax 提示。
     - `2`: Ajax 弹出框。
     - `3`: Ajax 只显示信息文本。
   - `showmsg`: 是否显示信息文本。
   - `showdialog`: 是否关闭原弹出框并显示 `showDialog` 信息,仅适用于 `msgtype = 2`。
   - `login`: 未登录时是否显示登录链接。

3. **Ajax 控制**:
   - `handle`: 执行 JS 回调函数。

### 实例分析

#### 1. 提示改名成功
  1. showmessage('您已更新博客名为:{name} ', '', array('name' => '新博客名称'));
复制代码

- **$message**: `'您已更新博客名为:{name}'`,提示信息内容,其中 `{name}` 是一个占位符。
- **$url_forward**: `''`,表示不跳转。
- **$values**: `array('name' => '新博客名称')`,将 `{name}` 替换为 `新博客名称`。
- **$extraparam**: 未设置,使用默认值。

#### 2. 提示发布成功
  1. showmessage('恭喜您,操作成功,获得奖励{credit}积分!', NULL, array('credit' => 888), array('alert' => 'right', 'login' => '1'));
复制代码

- **$message**: `'恭喜您,操作成功,获得奖励{credit}积分!'`,提示信息内容,其中 `{credit}` 是一个占位符。
- **$url_forward**: `NULL`,表示不跳转。
- **$values**: `array('credit' => 888)`,将 `{credit}` 替换为 `888`。
- **$extraparam**: `array('alert' => 'right', 'login' => '1')`,设置提示信息图标为 `right`,并且未登录时显示登录链接。

#### 3. 提示发布成功并跳转
  1. showmessage('恭喜您,内容发布成功,正在跳转到首页!', $_G, array(), array('locationtime' => true, 'refreshtime' => 3, 'showdialog' => 1, 'showmsg' => true));
复制代码

- **$message**: `'恭喜您,内容发布成功,正在跳转到首页!'`,提示信息内容。
- **$url_forward**: `$_G`,表示跳转到全局变量 `$_G` 中定义的 URL。
- **$values**: `array()`,没有需要替换的变量。
- **$extraparam**: `array('locationtime' => true, 'refreshtime' => 3, 'showdialog' => 1, 'showmsg' => true)`,设置跳转时间为 3 秒,显示对话框,并且显示信息文本。

### 总结
`showmessage()` 是一个非常灵活的函数,通过合理设置参数,可以实现各种提示信息的显示和跳转逻辑。在实际开发中,可以根据需求灵活使用 `$extraparam` 参数来控制提示信息的样式和行为。

如果你有更多关于 Discuz! 开发的问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:3.144.153.204,GMT+8, 2025-4-11 02:03 , Processed in 0.721201 second(s), 76 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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