原帖地址:http://www.freediscuz.net/dev/viewthread.php?tid=3445
适用版本:dz2.5sp1
插件名称:超级广告杀手
作 者:程式人生
数据升级:否
修改文件:include目录下post.php、newthread.php、newreplay.php
修改模板: 你模块目录下的header.htm
安装难度:易
最后发表日期:2005-9-3
插件功能简介:判断发帖时是否包含的特定词语。跳出我做好的JS代码,如果他不点认错,就一直死循环。
演示或技术支持网站:
http://www.jhbbs.com/viewthread.php?tid=1122
测试帐号:测试帐号
密码:123456
我的关键字:$adv_list='/暴\s*力\s*营\s*销|6位QQ申请|六位数的QQ免费申请|vip.htm\?QQ=|每发展一个代理,你就可得10元,支持四层下级|小\s*方\s*农\s*庄|fangruoxuan/i';
使用说明:
1、可以自行修改弹出窗口的内容,即修改filteradv.js的showadvmessage函数即可;
2、可以设定是否开关或开闭此插件,修改adv.php的第一个参数adv_enable即可;
3、可以自己设定需要过滤的关键字语句,adv_list参数,用|隔开
缺点:
因为本人是.net程序员,对php语言一窃不通,仅靠自己对脚本语言的思路做的此插件,所以以免算法上有些笨拙,也没有能力去做后台管理功能,如果哪位高人有兴趣,可以把后台管理功能加上,直接在后台开关/关闭此插件,后台设定过滤关键字和设定弹出窗口的内容。方便大家使用。
安装步骤:
下载附件,解压后把filteradv.js上传到include目录下,修改adv.php文件里的adv_list参数后放在forumdate\template目录下。
找到include\post.php文件中的
在上面添加代码如下:
- //adv killer by CXH 2005-9-3
- function checkadv() {
- require './forumdata/templates/adv.php';
- global $subject, $message;
- if($adv_enable && (preg_match($adv_list, $subject) || preg_match($adv_list, $message))) {
- return TRUE;
- }
- return FALSE;
- }
- //adv killer by CXH 2005-9-3
复制代码
找到include\newthread.php文件中的
- $displayorder = ($ismoderator && $toptopic) ? 1 : 0;
复制代码
在上面添加代码如下:
- //adv killer by CXH 2005-9-3
- if(checkadv()) {
- showmessage('<script>showadvmessage();</script>');
- }
- //adv killer by CXH 2005-9-3
复制代码
找到include\newreply.php文件中的
- $lastnotifytime = $timestamp - 86400;
复制代码
在上面添加代码如下:
- //adv killer by CXH 2005-9-3
- if(checkadv()) {
- showmessage('<script>showadvmessage();</script>');
- }
- //adv killer by CXH 2005-9-3
复制代码
找到你的模块目录下header.htm文件中的
在上面添加代码如下:
- <script type="text/javascript" src="include/filteradv.js"></script>
复制代码
设置完毕,用的好的希望能回个帖支持下。
更新记录:
2005-9-4 修改了判断函数,把原先的ereg函数改为了preg_match,更符合正则表达式的标准,同时广告字符串支持自定义的正则表达式,可以过滤多个组合的广告。如:要过滤中间带空格的广告"暴 力 营 销",则过滤关键字设为:'/暴\s*力\s*营\s*销/i',即可,这样就可以过滤中间有任何多个空格了,如要设定限定几个空格,则写法为:'/暴\s{0,3}力\s{0,3}营\s{0,3}销/i',这样就过滤中间有0到3个空格的广告了。具体的可以查查正则表达式的写法。本文与附件都已经做了更新。大家可以直接按本文安装。
2005-9-5 这两天论坛老有人发什么免费QQ申请,骗点击率的广告,我把过滤方法教给大家。如他的广告地址为: http://www.test.com/vip.htm?qq=QQ号码,则你可以在过滤关键字中增加“vip.htm\?=”这样的关键字,记得问号前一定要有反斜杠。
我自己最新的关键字列表更新如下:
- $adv_list='/暴\s*力\s*营\s*销|6位QQ申请|六位数的QQ免费申请|vip.htm\?QQ=|每发展一个代理,你就可得10元,支持四层下级|小\s*方\s*农\s*庄|fangruoxuan/i';
复制代码
新增加默认为“不认错”选择框代码,只需要在 filteradv.js 里加上如下函数就成了。用VBS重构确认框。这个就按自己的需要增加吧。HOHO
- function window.confirm(str)
- {
- execScript("n = msgbox('"+ str +"', 257)", "vbscript");
- return(n == 1);
- }
复制代码
[ 本帖最后由 程式人生 于 2005-9-5 13:22 编辑 ] |