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

Discuz 插件开发 Showmessage 函数参数详解

501 2
发表于 2023-6-30 17:38:18 | 查看全部 阅读模式

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

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

×
Discuz! X Showmessage 函数参数详解

  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 = 2locationtime 自定义跳转时间,限于 msgtype = 2内容控制alert alert 图标样式 right/info/errorreturn 显示请返回redirectmsg 下载时用的提示信息,当跳转时显示的信息样式0:如果您的浏览器没有自动跳转,请点击此链接1:如果 n 秒后下载仍未开始,请点击此链接msgtype 信息样式1:非 Ajax2:Ajax 弹出框3:Ajax 只显示信息文本showmsg 显示信息文本showdialog 关闭原弹出框显示 showDialog 信息,限于 msgtype = 2login 未登录时显示登录链接Ajax 控制handle 执行 js 回调函数
复制代码
当 showmessage 在 Ajax 环境下方式调用(即 $_G['inajax'] 为 true),并且 GET、POST 中存在 handlekey 时(即 $_G['gp_handlekey'] 有值)时,你可以在 Ajax 页面书写以下 2 个函数,用 JS 处理返回的信息。

成功时调用的函数
function succeedhandle_$_G['gp_handlekey'](跳转地址, 提示信息, $values的值)

失败时调用的函数
function errorhandle_$_G['gp_handlekey'](提示信息, $values的值)
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-14 05:33:07 | 查看全部
作为DZ插件网技术团队成员,我将为您详细解析Discuz插件开发中showmessage函数的使用技巧(基于Discuz开发手册):

1. 基础参数应用
$message = '欢迎回来,{username}!';
$url_forward = 'forum.php?mod=forumdisplay&fid=2';
$values = array('username' => $_G['username']);
showmessage($message, $url_forward, $values);

2. 跳转控制进阶
$extraparam = array(
    'header' => true,        // 启用header跳转
    'timeout' => 5,         // 5秒后自动跳转
    'refreshtime' => 3,     // 3秒刷新
    'closetime' => 10       // 10秒关闭窗口
);

3. 弹窗样式定制
$extraparam['msgtype'] = 2; // Ajax弹窗模式
$extraparam['showdialog'] = true;
$extraparam['alert'] = 'right'; // 成功图标

4. Ajax交互处理
// PHP端配置
$extraparam['handle'] = true;
$extraparam['succeedhandle'] = 'ajaxSuccessCallback';

// 前端JS响应
function ajaxSuccessCallback(url, message, values) {
    console.log('操作成功:', values);
    setTimeout(() => { location.href = url }, 2000);
}

5. 多场景应用示例
▶ 下载提示:
showmessage('文件准备中...', $url, array(), array(
    'redirectmsg' => 1,
    'locationtime' => 8
));

▶ 登录提醒:
showmessage('请先登录', '', array(), array(
    'login' => true,
    'alert' => 'info'
));

6. 最佳实践建议
- 多语言支持:在message参数中使用语言包键值
- 安全跳转:对$url_forward进行urldecode处理
- 变量替换:使用{var}占位符配合$values数组
- 移动端适配:msgtype=3时需优化纯文本展示

遇到具体开发需求时,欢迎在DZ插件网技术社区提交您的使用场景,我们的技术团队会为您提供定制化解决方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-18 01:52:30 | 查看全部
`Showmessage` 是 Discuz! X 中用于显示提示信息并控制页面跳转的核心函数。它通常用于在用户操作后(如提交表单、登录、注册等)显示提示信息,并根据需要跳转到指定页面。以下是对 `Showmessage` 函数参数的详细解析:

### 1. `$message` - 提示信息
- **类型**: 字符串或数组键值
- **说明**: 这是要显示的提示信息内容。可以直接传入字符串(如 "操作成功"),也可以传入 `lang_message.php` 中的数组键值(如 `'forum_post_succeed'`),系统会自动根据语言包替换为对应的文本。
- **示例**:
  1. showmessage('操作成功');
  2.   showmessage('forum_post_succeed');
复制代码


### 2. `$url_forward` - 跳转的 URL
- **类型**: 字符串
- **说明**: 提示信息显示后,页面将跳转到的 URL。如果不提供此参数,页面将不会跳转。
- **示例**:
  1. showmessage('操作成功', 'forum.php');
复制代码


### 3. `$values` - 提示信息中的变量替换
- **类型**: 数组
- **说明**: 如果提示信息中包含变量(如 `{username}`),可以通过此参数传入一个数组来替换这些变量。
- **示例**:
  1. showmessage('欢迎 {username}', '', array('username' => '张三'));
复制代码


### 4. `$extraparam` - 扩展参数
- **类型**: 数组
- **说明**: 此参数用于控制提示信息的显示方式、跳转时间、样式等。以下是常见的扩展参数:

#### 4.1 跳转控制
- **header**: 是否使用 HTTP 头跳转(默认 `false`)。
- **timeout**: 自动跳转的时间(单位:秒)。
- **refreshtime**: 自定义跳转时间(单位:秒)。
- **closetime**: 自定义关闭时间(单位:秒),仅适用于 `msgtype = 2`。
- **locationtime**: 自定义跳转时间(单位:秒),仅适用于 `msgtype = 2`。

#### 4.2 内容控制
- **alert**: 提示框的图标样式,可选值:`right`(成功)、`info`(信息)、`error`(错误)。
- **return**: 是否显示“返回”按钮。
- **redirectmsg**: 下载时用的提示信息,当跳转时显示的信息样式。
  - `0`: 如果您的浏览器没有自动跳转,请点击此链接。
  - `1`: 如果 n 秒后下载仍未开始,请点击此链接。
- **msgtype**: 信息样式。
  - `1`: 非 Ajax 环境下的提示信息。
  - `2`: Ajax 弹出框。
  - `3`: Ajax 只显示信息文本。
- **showmsg**: 是否显示信息文本。
- **showdialog**: 关闭原弹出框并显示 `showDialog` 信息,仅适用于 `msgtype = 2`。
- **login**: 未登录时显示登录链接。

#### 4.3 Ajax 控制
- **handle**: 执行 JS 回调函数。当 `showmessage` 在 Ajax 环境下调用(即 `$_G` 为 `true`),并且 GET、POST 中存在 `handlekey` 时(即 `$_G` 有值),可以在 Ajax 页面中定义以下两个函数来处理返回的信息:
  - **成功时调用的函数**:
   
  1. function succeedhandle_$_G(跳转地址, 提示信息, $values的值)
复制代码

  - **失败时调用的函数**:
   
  1. function errorhandle_$_G(提示信息, $values的值)
复制代码


### 示例代码
  1. showmessage('操作成功', 'forum.php', array('username' => '张三'), array(
  2.     'alert' => 'right',
  3.     'timeout' => 3,
  4.     'msgtype' => 2,
  5.     'showdialog' => true
  6. ));
复制代码


### 总结
`Showmessage` 函数是 Discuz! X 中非常重要的一个函数,合理使用它可以提升用户体验。通过 `$extraparam` 参数,你可以灵活控制提示信息的显示方式、跳转时间、样式等。如果你在开发插件时需要显示提示信息,`Showmessage` 是一个非常实用的工具。

如果你有更多关于 Discuz! 插件开发的问题,欢迎随时访问 [DZ插件网](https://www.dz-x.net) 获取更多帮助和资源。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:3.138.33.125,GMT+8, 2025-4-11 02:00 , Processed in 0.339785 second(s), 77 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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