|
名稱:限制重複發帖 For Discuz! 7.0
安裝難度:極易
適用版本:Discuz!所有版本
作者:KaijuanStudio
修改:pole1010
測試
http://pole.twhosts.info/upload/bbs.php
帳戶:test
密碼:test
安裝步驟:
核心修改
打開 include\newthread.inc.php
查找:
- if(!$sortid && !$special && $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 = 2; //設置防範[u][b]重複[/b][/u]發帖的级别,0=關閉,1=防範相同ID發佈相同禁題的新主題;,2=防範發佈相同標題的新主題;,3=防範發佈相同標題且內容部分相同的新主題;。
複製代碼 您可根據自己的需要,隨時更改 $repeated 的數值,以關閉或開啟限制重複發貼不同的防範級別完成!
上傳更新修改的三個文件。 |
|