本身論壇禁止重複回覆的功能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