Discuz教程网

[代码修改] Discuz X2.5解决勋章设置期限过期不能申请问题

[复制链接]
authicon dly 发表于 2013-1-6 23:24:50 | 显示全部楼层 |阅读模式
这个问题一直保留,更新过这么多次补丁仍未解决,的确有点汗颜了,不知是问题不大不够重视还是故意为之,等了n久,搜了无数次还是没有人出来解决,快无语了。。。。。。。。。。

算了还是自己动手来的快,实在。。。。。。。。
问题表现就是你设置了勋章的时间限制,等过期后再次申请就提示已申请过了,下图

224756pv1g7fe2o15k1xaz.jpg.thumb.jpg

很多人再问,帖子日期可以追溯到好几年前的,看x2.5还是有这问题。。。。。。。。。那帮写程序的不知道怎么了

其实问题很简单,完全就是程序员疏忽,把pre_forum_medallog表中的status字段数据添加错误,而申请检测条件又取消了这个,聪明的该知道问题所在了吧。


你还不知道,那就继续照做把,修改home_medal.php这个文件,查找下面代码
  1. $medaldetail = DB::fetch_first("SELECT medalid FROM ".DB::table('forum_medallog')." WHERE uid='$_G[uid]' AND medalid='$medalid' AND type<'3'");
复制代码

修改为
  1. $medaldetail = DB::fetch_first("SELECT medalid FROM ".DB::table('forum_medallog')." WHERE status='1' and uid='$_G[uid]' AND medalid='$medalid' AND type<'3'");
复制代码

睁大眼睛看清楚那里改了

还有个地方
  1. DB::query("INSERT INTO ".DB::table('forum_medallog')." (uid, medalid, type, dateline, expiration, status) VALUES ('$_G[uid]', '$medalid', '$medal[type]', '$_G[timestamp]', '$expiration', '0')");
复制代码

改为
  1. DB::query("INSERT INTO ".DB::table('forum_medallog')." (uid, medalid, type, dateline, expiration, status) VALUES ('$_G[uid]', '$medalid', '$medal[type]', '$_G[timestamp]', '$expiration', '1')");
复制代码

仔细比较下,是不是觉得那个写这段代码的家伙。。。。。。

完成了,赶紧保存试一下吧
作者:liyf   



上一篇:1314学习网首页N格 s2.1.0
下一篇:1314学习网签到记录贴-2013年1月7日
authicon 茉格锦辞ˇ 发表于 2013-1-30 19:36:40 | 显示全部楼层
看到这帖子真是高兴!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-6-1 21:18

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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