本身论坛禁止重复回覆的功能bug

Home Home
引用 | 编辑 chris710908
2006-12-29 10:19
楼主
推文 x0
【类型】插件
【版本】3.01

请教大家~因为小弟在论坛办活动需要用到禁止重复回覆

所以我有修改了一些文件禁止会员单帖重复回覆

1.我在masingle.php增加
<input type='radio' name='locked' value=Ɗ' $checked[4]>禁止重复回覆";
以便在锁文功能中可以勾选

2.在postreply.php中的$replytitle=$tpcarray['subject'];下面
新增
if ($groupid!=3 && $tpcarray['locked']==4){   //管理员不受限
$rs = $db->get_one("SELECT count(*) AS count FROM pw_posts WHERE tid='$tid' AND authorid='$winduid'");
if($rs['count']>=1){   //回复数大于等于一时禁止再次回复
  Showmsg("对不起,此帖设定为不可重复回覆!!");
}
}

然后在下面修改,红色部份是新增的

if (!$admincheck && !$SYSTEM['replylock'] && $tpcarray['locked']>0 && $tpcarray['locked']!=3&& $tpcarray['locked']!=4){
     Showmsg('reply_lockatc');
}

3.postmodify.php中修改~红色部份是新增的

if(!$admincheck && (!$SYSTEM['deltpcs'] || $groupid==5)){
     if($groupid=='guest' || $authorid!=$winduid){
           Showmsg('modify_noper');
     }elseif($locked>0 && $locked!=3 && $locked!=4){
           Showmsg('modify_locked');
     }
}

这样修改后功能目前是没问题~开启功能后该帖会员只能回覆一次

管理员不受限,但是问题来了 表情

如果我发的是投票帖当我在锁定功能选择禁止重复回覆的功能后

普通会员就不能投票了~显示该帖以被锁定~~ 表情

我在想说是我增加禁止回覆的时候漏掉投票帖这个判断吗

可以请板大给我一些建议吗?不太懂怎么改.

谢谢大大

献花 x0
引用 | 编辑 月光
2006-12-30 00:20
1楼
  
您所修改的

if (!$admincheck && !$SYSTEM['replylock'] && $tpcarray['locked']>0 && $tpcarray['locked']!=3&& $tpcarray['locked']!=4){
    Showmsg('reply_lockatc');
}

3.postmodify.php中修改~红色部份是新增的

if(!$admincheck && (!$SYSTEM['deltpcs'] || $groupid==5)){
    if($groupid=='guest' || $authorid!=$winduid){
        Showmsg('modify_noper');
    }elseif($locked>0 && $locked!=3 && $locked!=4){
        Showmsg('modify_locked');
    }
}

这两个部分似乎是多余的...如果您只要达到禁止重复回文没必要改这两段...

另外
Showmsg('reply_lockatc'); 代表的是 该贴已被锁定,不可回覆
Showmsg('modify_locked'); 代表的是 该贴已被锁定,不可编辑
这也是问题所在...

献花 x0
引用 | 编辑 chris710908
2007-01-01 22:01
2楼
  
下面是引用月光于2006-12-30 00:20发表的 :
您所修改的

if (!$admincheck && !$SYSTEM['replylock'] && $tpcarray['locked']>0 && $tpcarray['locked']!=3&& $tpcarray['locked']!=4){
    Showmsg('reply_lockatc');
}
.......

这两个部份是多余的吗?因为之前禁止重复回覆功能后

这些部份没改到~会导致一些功能失效

本身不是很懂要怎么改?可以请版大给点建议吗?

谢谢您.

献花 x0
引用 | 编辑 月光
2007-01-03 23:16
3楼
  
那您把 if($rs['count']>=1){ 改为 if($tpcarray['locked']==4 && $rs['count'] >= 1){
试试看吧 表情

献花 x0
引用 | 编辑 chris710908
2007-01-05 23:00
4楼
  
下面是引用月光于2007-01-3 23:16发表的 :
那您把 if($rs['count']>=1){ 改为 if($tpcarray['locked']==4 && $rs['count'] >= 1){
试试看吧 表情

谢谢版大的帮忙~只是我改完之后~将投票帖设定为禁止重复回覆后

一般会员还是不能投票耶~慧显示投票失败.帖子被锁定的回应

献花 x0
引用 | 编辑 月光
2007-01-06 00:40
5楼
  
同我于1楼回覆的...做法并改3楼回覆基本上是没问题的、如果确定还是错误您可先把跳转注解掉并使用
echo $tpcarray[locked]; 查看勾选 禁止重复回覆 后echo出来的值是否为4...的方式来除错

献花 x0