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

请问discuz自带关闭悬赏主题返还积分功能吗?

608 2
发表于 2021-10-19 09:40:14 | 查看全部 阅读模式

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

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

×
如题 想请教一下 discuz有自带 关闭悬赏主题返还积分 的功能吗?

或者说可以简单的设置一下就能实现这个功能不?

如果不能的话 怕是只有找二开了.....
我要说一句 收起回复

评论2

独家记忆Lv.8 发表于 2021-10-19 09:40:37 | 查看全部
不带
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-16 19:31:52 | 查看全部
Discuz! 自带的悬赏主题功能并不支持关闭悬赏主题后自动返还积分给发帖用户。这个功能在默认情况下是没有的,因此如果你需要实现这个功能,确实需要进行二次开发。

### 实现思路:
1. **监听主题关闭事件**:你需要通过插件或直接修改代码来监听主题关闭的事件。
2. **判断是否为悬赏主题**:在主题关闭时,判断该主题是否为悬赏主题。
3. **返还积分**:如果是悬赏主题,且悬赏积分未被领取,则将积分返还给发帖用户。

### 具体实现步骤:
1. **创建插件**:你可以通过创建一个插件来实现这个功能。插件的开发可以参考 Discuz! 的插件开发手册。
2. **监听主题关闭事件**:在插件中,你可以通过 `hook` 来监听主题关闭的事件。例如,可以使用 `forumdisplay_thread` 或 `forumdisplay_post` 相关的钩子。
3. **返还积分逻辑**:在监听事件中,编写逻辑判断是否为悬赏主题,并返还积分。

### 示例代码:
以下是一个简单的示例代码,展示如何通过插件实现这个功能:

  1. // 插件安装时执行的代码
  2. function plugin_install() {
  3.     // 注册钩子
  4.     C::t('common_plugin')->insert(array(
  5.         'identifier' => 'return_reward',
  6.         'available' => 1,
  7.     ));
  8. }

  9. // 插件卸载时执行的代码
  10. function plugin_uninstall() {
  11.     // 删除钩子
  12.     C::t('common_plugin')->delete_by_identifier('return_reward');
  13. }

  14. // 监听主题关闭事件
  15. function hook_thread_close($param) {
  16.     global $_G;

  17.     $tid = $param['tid'];
  18.     $thread = C::t('forum_thread')->fetch($tid);

  19.     // 判断是否为悬赏主题
  20.     if ($thread['special'] == 2) {
  21.         $reward = C::t('forum_threadreward')->fetch($tid);

  22.         // 如果悬赏积分未被领取
  23.         if ($reward['credit'] > 0) {
  24.             // 返还积分给发帖用户
  25.             updatemembercount($thread['authorid'], array($reward['credittype'] => $reward['credit']));

  26.             // 更新悬赏记录
  27.             C::t('forum_threadreward')->update($tid, array('credit' => 0));
  28.         }
  29.     }
  30. }

  31. // 注册钩子
  32. $hooks = array(
  33.     'thread_close' => 'hook_thread_close',
  34. );

  35. foreach ($hooks as $hook => $function) {
  36.     hookscript('return_reward', $hook, $function);
  37. }
复制代码


### 注意事项:
1. **备份**:在进行二次开发或修改代码之前,务必备份你的网站数据和代码,以防止出现不可预知的问题。
2. **测试**:在正式环境中应用之前,建议在测试环境中进行充分的测试,确保功能正常且不会影响其他功能。

如果你对二次开发不熟悉,建议找专业的开发者或团队来帮助你实现这个功能。你也可以在 DZ插件网(https://www.dz-x.net/)上寻找相关的插件或开发者资源。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

图文热点
关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.119.172.58,GMT+8, 2025-4-1 05:56 , Processed in 0.411742 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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