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

有没有人知道怎么设置,发布指定类型主题才获得积分呀

538 2
发表于 2022-9-7 20:46:41 | 查看全部 阅读模式

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

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

×
有没有人知道怎么设置,发布指定类型主题才获得积分呀,比如我想让用户发布悬赏、商品类主题才有积分,发布普通主题没有。没指定的版块或者用户不限制。
我知道答案 回答被采纳将会获得5 金币 已有1人回答
我要说一句 收起回复

评论2

独家记忆Lv.8 发表于 2022-9-7 20:47:08 | 查看全部
把特殊主题分版块发,然后版块积分策略设置积分奖励规则。比如,商品主题在商品版块发布,那么设置这个商品版块的积分策略就行了。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-16 11:06:30 | 查看全部
实现这个功能可以通过DZ插件网的扩展机制完成。下面给您详细的操作方案:

1. 核心原理:
通过主题发布后的钩子(forum_post_after)判断主题类型和所在版块,动态调整积分策略

2. 实现步骤:
(1)创建插件目录:
/extend/plugins/special_thread_credit/

(2)创建插件主文件:
plugin_special_thread_credit.php
  1. <?php
  2. if(!defined('IN_DISCUZ')) exit();

  3. class plugin_special_thread_credit {

  4.     public function forum_post_after($params) {
  5.         global $_G;

  6.         // 需要奖励的主题类型
  7.         $reward_types = array('reward', 'trade'); // 悬赏类型和商品类型
  8.         $reward_forums = array(2,5,7); // 需要奖励的版块fid数组
  9.         
  10.         $thread = $params['thread'];
  11.         
  12.         // 排除非指定版块
  13.         if(!in_array($thread['fid'], $reward_forums)) {
  14.             return;
  15.         }

  16.         // 获取主题类型
  17.         $typeid = $thread['typeid'];
  18.         $special = $thread['special'];
  19.         
  20.         // 判断是否属于需要奖励的类型
  21.         if(in_array($special, $reward_types) || in_array($typeid, $reward_types)) {
  22.             // 获取原积分策略
  23.             $creditrule = C::t('common_credit_rule')->fetch_by_rid('post');
  24.             
  25.             // 创建新规则
  26.             $newrule = array(
  27.                 'fid' => $thread['fid'],
  28.                 'action' => 'post',
  29.                 'credit' => $creditrule['credit'],
  30.                 'extcredits' => $creditrule['extcredits']
  31.             );
  32.             
  33.             // 应用新积分规则
  34.             updatecreditbyaction('post', $params['uid'], $newrule);
  35.         }
  36.     }
  37. }
复制代码


3. 创建插件配置文件:
discuz_plugin_special_thread_credit.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="name"><![CDATA[特殊主题积分控制]]></item>
  4.     <item id="description"><![CDATA[指定主题类型和版块发放积分]]></item>
  5.     <item id="version"><![CDATA[1.0]]></item>
  6.     <module>
  7.         <item id="name"><![CDATA[特殊主题积分控制]]></item>
  8.         <item id="type"><![CDATA[2]]></item>
  9.         <item id="adminid"><![CDATA[1]]></item>
  10.         <item id="displayorder"><![CDATA[0]]></item>
  11.     </module>
  12. </root>
复制代码


4. 配置说明:
(1)修改$reward_types数组:
- 'reward' 对应悬赏主题
- 'trade' 对应商品主题
- 可添加其他类型如:'poll'(投票)、'activity'(活动)等

(2)修改$reward_forums数组:
填入需要生效的版块fid,例如array(2,5,7)

5. 安装说明:
(1)将插件文件夹上传到/source/plugin/目录
(2)后台->应用->插件->找到插件并安装
(3)在插件设置中可配置:
- 指定主题类型(多选)
- 指定版块(多选)
- 积分倍数(可设置不同主题类型不同积分)
- 排除用户组

6. 扩展机制说明:
本方案通过以下Discuz核心机制实现:
(1)forum_post_after钩子:在主题发布完成后触发
(2)updatecreditbyaction函数:动态修改积分规则
(3)分类信息关联:通过typeid和special字段识别主题类型
(4)版块权限验证:通过fid判断所在版块

注:实际开发中需要处理缓存更新、积分日志记录、后台配置界面等完整功能,以上是核心实现逻辑。如需完整插件包,可以到DZ插件网技术专区获取相关开发文档。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

图文热点
关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:3.144.232.164,GMT+8, 2025-5-12 13:03 , Processed in 0.282782 second(s), 75 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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