列印

限制重複發帖 For Discuz! All Version

限制重複發帖 For Discuz! All Version

資料來源皆為AL8
FOR  Discuz! 6.1.0 UTF-8 OR BUG-5
皆由我安裝確認過使用
-----------------------------------
名稱:限制重複發帖 For Discuz! All Version
安裝難度:極易
適用版本:Discuz!所有版本
作者:KaijuanStudio
安装步骤:

核心修改
打开 include\newthread.inc.php
查找:


        if($subject == '' || $message == '') {
                showmessage('post_sm_isnull');
        }
在後面一行添加:


//Refuse repeated post. Code by KaijuanStudio
        if($repeated == 1) {
                $query = $db->query("SELECT tid, subject FROM {$tablepre}threads WHERE authorid='$discuz_uid' AND subject='$subject'");
                if($db->num_rows($query)) {
                        $repeat = $db->fetch_array($query);
                        showmessage('post_repeated', 'index.php');
                }
        } elseif ($repeated == 2) {
                $query = $db->query("SELECT tid, subject FROM {$tablepre}threads WHERE subject='$subject'");
                if($db->num_rows($query)) {
                        $repeat = $db->fetch_array($query);
                        showmessage('post_repeated', 'index.php');
                }
        } elseif ($repeated == 3) {
                $query = $db->query("SELECT tid, authorid, subject, message FROM {$tablepre}posts WHERE first='1' AND subject='$subject'");
                if($db->num_rows($query)) {
                        $repeat = $db->fetch_array($query);
                        if($repeat['authorid'] == $discuz_uid) {
                                showmessage('post_repeated', 'index.php');
                        }

                        function SubString($str, $start, $len = 0xFFFFFFFF) {
                                if($start < 0) {
                                        $start = strlen($str) + $start;
                                }
                                if($len < 0) {
                                        $len = strlen($str) - $start + $len;
                                }
                                $tmp = '';
                                $result = '';
                                $strlen = strlen($str);
                                $begin = 0;
                                $subLen = 0;
                                for($i = 0; $i < $start + $len && $i < $strlen; $i++) {
                                        if($i < $start) {
                                                if(ord($str[$i]) >= 161 && ord($str[$i]) <= 247 && ord($str[$i+1]) >= 161 && ord($str[$i+1]) <= 254) $i++;
                                        } else {
                                                $begin=$i;
                                                for(; $i<$start+$len && $i<$strlen; $i++) {
                                                        if(ord($str[$i]) >= 161 && ord($str[$i]) <= 247 && ord($str[$i+1])>=161 && ord($str[$i+1])<=254) $i++;
                                                }
                                                return substr($str,$begin,$i-$begin);
                                        }
                                }
                        }

                        if(strlen($message) > 60) {
                                if(SubString($message, -100) == SubString($repeat['message'], -100) || SubString($message, 50, 100) == SubString($repeat['message'], 50, 100)) {
                                        showmessage('post_repeated', 'index.php');
                                }
                        } else {
                                if($message == SubString($repeat['message'], 0, 60)) {
                                        showmessage('post_repeated', 'index.php');
                                }
                        }
                }
        }
//Refuse repeated post. Code End
添加提示信息

    * 打開:templates\default\messages.lang.php
    * 查找:


        'post_net_price_iszero' => '您的主题售價扣除積分交易税後為 0,請返回修改。',
在後面一行添加:


        'post_repeated' => '您所發佈的主题已存在:《<a href=\"viewthread.php?tid=$repeat[tid]\" target=\"_blank\">$repeat[subject]</a>》請勿重複發佈。',
添加設置

    * 打開:config.inc.php
    * 在最後添加一段:


        $repeated = 0;        //設置防範重複發帖的级别,0=關閉,1=防範相同ID發佈相同禁題的新主题,2=防範發佈相同標題的新主题,3=防範發佈相同標題且内容部分相同的新主题。
  您可根据自己的需要,随时更改 $repeated 的数值,以关闭或开启限制重复发贴不同的防范级别完成!
  上传更新修改的三个文件。
如需要MSN資料在用短訊密我阿~~
主要我需要做分類~~
才不會忘記您從哪裡得知~~
如有不便與打擾之處敬請見諒~~
^_^
Linux0911 Forum © 2004-2009 All Rights Reserved.

TOP



論壇聲明
  • 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
    如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
    請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!
最佳瀏覽解析度:不低於 1024 (最佳 1280 以上).(支援 IE 7, Mozilla Firefox, Safari, Chrome)
The Best Surfing Resolution: No Lower than 1024 (Best: above 1280).(IE 7, Mozilla Firefox, Safari, Chrome Supported)