Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[已解决] 移动主题后的积分问题(修改代码后解决)

[复制链接]
allyfeng 发表于 2007-12-26 10:32:25 | 显示全部楼层 |阅读模式
我设置了A版发主题积分+2, B版发主题积分+1,如果我把A版的主题移到B版后,发现该主题作者的积分没有改变,并没有像我想象的那样减掉一分。
请问如果我希望在移动主题的同时自动根据版块的积分设置来调整作者的积分,需要如何实现?
谢谢

通过修改代码解决了此问题,详细代码见4楼

[ 本帖最后由 allyfeng 于 2007-12-26 16:37 编辑 ]
回复

使用道具 举报

下砂 发表于 2007-12-26 10:33:27 | 显示全部楼层
发帖的主题按照发帖的板块加减积分的~!
回复

使用道具 举报

 楼主| allyfeng 发表于 2007-12-26 11:49:31 | 显示全部楼层
原帖由 下砂 于 2007-12-26 10:33 发表
发帖的主题按照发帖的板块加减积分的~!


你的意思是说我的目的是达不到的?
我觉得这个是个漏洞啊。就如上面说的,如果大家为了多拿积分都去A版发主题,而一些应该属于B版的内容也发到A版去了,而管理员没有有效的办法来遏制这种行为,即便移到B版,积分还是没有减,这就给管理带来麻烦。
回复

使用道具 举报

 楼主| allyfeng 发表于 2007-12-26 16:35:04 | 显示全部楼层
通过修改代码,终于实现了移动主题后积分的自动加减

不敢独享,贴出修改的代码,管理员也帮我看看是否有问题:
1. 打开 inlucde/moderation.inc.php 文件
2. 找到 $modaction = 'MOV'; 这一行
3. 在该行的上面添加如下代码便可
  1. // ====== allyfeng修改 (Start) ======================
  2. //移动主题后的用户积分更新
  3. $tuidarray = $ruidarray = array();
  4. $query = $db->query("SELECT first, authorid, dateline FROM {$tablepre}posts WHERE tid IN ($moderatetids)");
  5. while($post = $db->fetch_array($query)) {
  6.         if($post['first']) {
  7.                 $tuidarray[] = $post['authorid'];
  8.         } else {
  9.                 $ruidarray[] = $post['authorid'];
  10.         }
  11. }
  12. // 获得目标版块的积分值
  13. $query = $db->query("SELECT postcredits,replycredits FROM {$tablepre}forumfields WHERE fid='$moveto'");
  14. $moveto_forum = $db->fetch_array($query);

  15. foreach(array('postcredits', 'replycredits') as $key) {
  16.         $moveto_forum[$key] = !empty($moveto_forum[$key]) ? unserialize($moveto_forum[$key]) : array();
  17. }
  18. $moveto_postcredits = $moveto_forum['postcredits'] ? $moveto_forum['postcredits'] : $creditspolicy['post'];
  19. $moveto_replycredits = $moveto_forum['replycredits'] ? $moveto_forum['replycredits'] : $creditspolicy['reply'];

  20. if($tuidarray) {
  21.         updatepostcredits('-', $tuidarray, $postcredits);
  22.         updatepostcredits('+', $tuidarray, $moveto_postcredits);
  23. }
  24. if($ruidarray) {
  25.         updatepostcredits('-', $ruidarray, $replycredits);
  26.         updatepostcredits('+', $ruidarray, $moveto_replycredits);
  27. }
  28. // ====== allyfeng修改 (End) ============================
复制代码
回复

使用道具 举报

holyone2 发表于 2008-9-20 12:30:52 | 显示全部楼层
感谢楼主,这个功能非常棒!
回复

使用道具 举报

HeavenQin 发表于 2008-10-2 15:22:16 | 显示全部楼层
这个的确很好用,正在找
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-5 07:48 , Processed in 0.092899 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表