Discuz教程网

[代码修改] Discuz X2 小试牛刀,自动禁止广告帖插件功能

[复制链接]
authicon dly 发表于 2011-8-28 12:52:56 | 显示全部楼层 |阅读模式
广告帖有好有坏,但会员乱发就很让站长头痛了,现在利用点空闲时间写了段代码,基本能阻止部分广告帖,且按会员等级限制

打开include/newthread.inc.php文件,找到以下代码:

if(!$sortid && !$special && $message == ''){
                showmessage('post_sm_isnull');
}


在其下面插入以下代码:
  1. //指定用户组受此功能限制array(4,5,6,7,8,9,10)里的数字是用户组对应ID,可自行修改
  2. //当然你也可以指定哪版块使用此功能,这里就不写上去了
  3. if(in_array($groupid,array(4,5,6,7,8,9,10)) && CheckADMessage($message)){
  4. showmessage('很抱谦!你级别还未达到能发布广告帖行为,请泡够级别再发吧!');
  5. }
复制代码

在此文件最底部,即“?>”前插入以下代码:
  1. function CheckADMessage($admessage){
  2. $a='/[0-9]{3,4}\-[0-9]{3,8}|[0-9]{5,8}|[0-9]{3,4}\[0-9]{3,8}|0{0,1}13[0-9]{9}|0{0,1}15[0-9]{9}/is';//严禁出现电话号码
  3. $b='/([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*\.)+[a-zA-Z]*)/is';//严禁出现邮件
  4. $c='/(http:\/\/)*(www)*[\w-]*(\.)*[\w-]+\.(com|net|org|gov|cc|fm|me|biz|info|cn)(\.(cn|hk))*(\/)*([\w-\]\/\.\?\=\&])*/';//URL分析
  5. $d='/QQ|电话|网站/is';//常见广告帖出现的中文字,可自行修改

  6. $admessage1 = preg_replace($a, '|ISADTELSTOP|', $admessage);
  7. $admessage2 = preg_replace($b, '|ISADmaiSTOP|', $admessage);
  8. $admessage3 = preg_replace($c, '|ISADurlSTOP|', $admessage);
  9. $admessage4 = preg_replace($d, '|ISADOTHSTOP|', $admessage);

  10. $get_adnum1=substr_count($admessage1,"|ISADTELSTOP|");
  11. $get_adnum2=substr_count($admessage2,"|ISADmaiSTOP|");
  12. $get_adnum3=substr_count($admessage3,"|ISADurlSTOP|");
  13. $get_adnum4=substr_count($admessage4,"|ISADOTHSTOP|");

  14. return $get_adnum1>0 || $get_adnum2>0 || $get_adnum3>0 || $get_adnum4>1 ? true : false;
  15. }
复制代码

以上功能适用DZ任何版本,对着修改就可以了(X版Discuz请自行查找相应文件修改),我在7.0已经测试通过,一般的广告帖低级会员都无法发布。回复帖同样也可以这样写,只要相对修改“include/newreply.inc.php”文件就可以了

附上默认的用户组ID变量


15==论坛元老
14==金牌会员
13==高级会员
12==中级会员
11==注册会员
10==新手上路
9==乞丐
8==等待验证会员
7==游客
6==禁止 IP
5==禁止访问
4==禁止发言
3==版主
2==超级版主
1==管理员








上一篇:kk_xshow首页N格 过滤草稿贴
下一篇:Discuz 防灌水插件 1.1 For X1.5/X2【20110825更新】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 01:34

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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