前言
正当自动发贴的狂风暴雨肆虐着社区论坛之时,各方高手也相继推出了各自的防范措施。就针对自动注册,开卷工作室也有自己的一系列作品。而今天,我们要发布的是一个防范那些漏网之鱼,即通过手工注册进来,然后再发布广告等垃圾信息的一个功能插件。这个插件我们很早就做了一个样子出来,一直在中国制造论坛里用着,直到今天,又利用空闲时间把它完善了一下,就拿来发布了。
这个插件的主要功能是,对新注册进来的用户所发布的帖子进行过滤,如果帖子主题中包含有不被允许的关键字,那么就不允许该帖的发布。并且可以对发布者予以禁言等处罚,避免该发布者再次尝试发布帖子。同时,对于所有帖子发布的屏蔽动作,程序都会自动生成日志,管理员可以通过特定的日志查看页面,查看这些信息,并且实施进一步的管理措施。在该日志查看页面,我们还有其他更进一步的设想,例如增加屏蔽关键字排名,通过这个排名,我们可以知道哪些关键字是经常被用来发布垃圾信息的,而哪些是从来没有遇见过的关键字。这样我们就可以删除这些不被使用的关键字,以提高程序的运行效率。同时,您还可以手工添加一些关键字进去。最后,我们还打算对版主开放其权限范围内的相关日志查看,这样也有利于实现更高效率的论坛管理。当然,在这些功能还未实现之前,您只能通过手动修改关键字列表,增加或删减里面的关键字内容。
本插件只对新发布的帖子进行帖子主题过滤,这是因为目前大多数的垃圾信息都是以新帖的形式发布的,如果以回复形式发布垃圾信息的行为也开始盛行的话,我们也将会考虑增加回帖过滤,以及帖子内容过滤等措施。
本插件适用于 Discuz! 所有版本,但如果安装代码与您所使用的程序代码有所不同,请自行作相应调整,这并不影响插件的作用。附件中所提供的关键字列表文件 banned.php 有许多特殊的字符和常见的广告关键字,请在启用本插件前务必根据您论坛的情况予以调整。同时该文件为 GB2312 文字编码,使用其它文字编码的论坛,应自行转换该文本为与论坛相一致的文字编码。
更新记录:
2007-02-09 附件中补上了昨天遗漏的 banlog.php 文件,并修正了因缺少日志文件而无法显示页面的问题;为插件添加了论坛动作。
2007-02-25 提供 Big5 版插件导入代码。
2009-11-06 增加 Discuz!7+ 的兼容。
安装方法如下:
1.修改:newthread.inc.php
打开 include\newthread.inc.php 并找到:
- if($subject == '' || $message == '') {
- showmessage('post_sm_isnull');
- }
复制代码
在下面一行添加:- //KeywordBanned by KaijuanStudio
- if($banmod && ($groupid == 7 || $groupid == 10)) {
- include_once(DISCUZ_ROOT.'keyword/banned.php');
- $banned = explode("\n", $tcontents);
- foreach($banned as $num => $ban){
- if(preg_match("/".trim($ban)."/", $subject)) {
- $bandata = array('keyword'=>$ban, 'subject'=>$subject, 'ip'=>$onlineip, 'name'=>$discuz_user, 'uid'=>$discuz_uid, 'fid'=>$fid, 'time'=>$timestamp);
- $bandata = serialize($bandata);
- $loginfo = "\n\$banlog[] = '$bandata';";
- $cache = './keyword/log.php';
- if(!file_exists($cache)) {
- $loginfo = "<?php".$loginfo;
- }
- $fp = @fopen($cache, 'a+');
- if($fp) {
- fwrite($fp, $loginfo);
- fclose($fp);
- }
- if($bangroupid) {
- if($bangroupexpiry) {
- $bangroupexpiry = ($bangroupexpiry * 3600) + $timestamp;
- $groupterms['main'] = array('time' => $bangroupexpiry, 'adminid' => '0', 'groupid' => '10');
- $groupterms['ext'][$bangroupid] = $bangroupexpiry;
- $grouptermsnew = addslashes(serialize($groupterms));
- $db->query("UPDATE {$tablepre}memberfields SET groupterms='$grouptermsnew' WHERE uid='$discuz_uid'");
- } else {
- $bangroupexpiry = '0';
- }
- $db->query("UPDATE {$tablepre}members SET groupid='$bangroupid', adminid='-1', groupexpiry='$bangroupexpiry' WHERE uid='$discuz_uid'");
- }
- showmessage('word_banned');
- }
- }
- }
- //KeywordBanned End
复制代码
2.修改:config.inc.php
在最后面增加:- $banmod = 1; //开卷工作室关键字屏蔽插件开关,0=关闭,1=开启
- $bangroupid = 4; //设置发布敏感内容帖子后,对发布者用户组变更的ID,0=不予变更,4=禁止发言,5=禁止访问(您还可以根据需要设置其他用户组ID)
- $bangroupexpiry = 1; //设置以上用户组变更有效期限,单位为小时,0=永久
复制代码
3.添加动作
打开 templates\default\actions.lang.php 并找到:在上面添加一行:
4.上传文件
下载附件,解压后将 upload 目录里的所有内容上传到服务器根目录下,同时将 keyword 文件夹的属性设为可写(777),最后更新以上修改的两个文件。
5.添加前台链接
Discuz!7+版本:
- 进入后台 - 界面 - 导航栏
- 点“添加菜单”,输入名称:屏蔽日志,链接:banlog.php,提交
- 提交后,点“详情”进行设置
- 在“菜单说明”中输入:“开卷工作室发贴关键字屏蔽 v1.0”(不含引号),在“使用等级”下拉菜单中选择管理员,其他设置可自行选择
- 提交修改后,刷新论坛首页就能看到“屏蔽”的导航项目了
Discuz!7之前的版本:
进入后台:论坛插件 - 插件设置 - 导入插件数据 - 然后根据您论坛文字编码选择以下插件代码,粘贴到输入框中
GBK(GB2312)版论坛:
- # Discuz! Plugin Dump
- # Version: Discuz! 5.0.0
- # Time: 2007-2-8 22:45
- # From: 中国制造论坛 (http://MadeinCHN.cn)
- #
- # Discuz! Community: http://www.Discuz.net
- # Please visit our website for latest news about Discuz!
- # --------------------------------------------------------
- YToyOntzOjY6InBsdWdpbiI7YTo5OntzOjk6ImF2YWlsYWJsZSI7czoxOiIx
- IjtzOjc6ImFkbWluaWQiO3M6MToiMSI7czo0OiJuYW1lIjtzOjE0OiK3osz5
- udi8/NfWxsGxziI7czoxMDoiaWRlbnRpZmllciI7czoxMzoiS2V5d29yZEJh
- bm5lZCI7czoxMToiZGVzY3JpcHRpb24iO3M6Mzg6Ir+qvu25pNf3ytK3osz5
- udi8/NfWxsGxzsjV1r7kr8DA0rPD5qGjIjtzOjEwOiJkYXRhdGFibGVzIjtz
- OjA6IiI7czo5OiJkaXJlY3RvcnkiO3M6MDoiIjtzOjk6ImNvcHlyaWdodCI7
- czoxMzoiS2FpanVhblN0dWRpbyI7czo3OiJtb2R1bGVzIjtzOjEzNToiYTox
- OntpOjA7YTo1OntzOjQ6Im5hbWUiO3M6NjoiYmFubG9nIjtzOjQ6Im1lbnUi
- O3M6ODoixsGxzsjV1r4iO3M6MzoidXJsIjtzOjEwOiJiYW5sb2cucGhwIjtz
- OjQ6InR5cGUiO3M6MToiMSI7czo3OiJhZG1pbmlkIjtzOjE6IjEiO319Ijt9
- czo3OiJ2ZXJzaW9uIjtzOjU6IjUuMC4wIjt9
复制代码
UTF-8版论坛:
- # Discuz! Plugin Dump
- # Version: Discuz! 5.0.0
- # Time: 2007-2-8 22:45
- # From: 中国制造论坛 (http://MadeinCHN.cn)
- #
- # Discuz! Community: http://www.Discuz.net
- # Please visit our website for latest news about Discuz!
- # --------------------------------------------------------
- YToyOntzOjY6InBsdWdpbiI7YTo5OntzOjk6ImF2YWlsYWJsZSI7czoxOiIx
- IjtzOjc6ImFkbWluaWQiO3M6MToiMSI7czo0OiJuYW1lIjtzOjIxOiLlj5Ho
- tLTlhbPplK7lrZflsY/olL0iO3M6MTA6ImlkZW50aWZpZXIiO3M6MTM6Iktl
- eXdvcmRCYW5uZWQiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjU3OiLlvIDljbfl
- t6XkvZzlrqTlj5HotLTlhbPplK7lrZflsY/olL3ml6Xlv5fmtY/op4jpobXp
- naLjgIIiO3M6MTA6ImRhdGF0YWJsZXMiO3M6MDoiIjtzOjk6ImRpcmVjdG9y
- eSI7czowOiIiO3M6OToiY29weXJpZ2h0IjtzOjEzOiJLYWlqdWFuU3R1ZGlv
- IjtzOjc6Im1vZHVsZXMiO3M6MTQwOiJhOjE6e2k6MDthOjU6e3M6NDoibmFt
- ZSI7czo2OiJiYW5sb2ciO3M6NDoibWVudSI7czoxMjoi5bGP6JS95pel5b+X
- IjtzOjM6InVybCI7czoxMDoiYmFubG9nLnBocCI7czo0OiJ0eXBlIjtzOjE6
- IjEiO3M6NzoiYWRtaW5pZCI7czoxOiIxIjt9fSI7fXM6NzoidmVyc2lvbiI7
- czo1OiI1LjAuMCI7fQ==
复制代码 Big5版论坛:
- # Discuz! Plugin Dump
- # Version: Discuz! 5.0.0
- # Time: 2007-2-25 14:17
- # From: 中國製造論壇 (http://MadeinCHN.cn)
- #
- # Discuz! Community: http://www.Discuz.net
- # Please visit our website for latest news about Discuz!
- # --------------------------------------------------------
- YToyOntzOjY6InBsdWdpbiI7YTo5OntzOjk6ImF2YWlsYWJsZSI7czoxOiIx
- IjtzOjc6ImFkbWluaWQiO3M6MToiMSI7czo0OiJuYW1lIjtzOjE0OiK1b6mr
- w/bB5KZyq8y9qiI7czoxMDoiaWRlbnRpZmllciI7czoxMzoiS2V5d29yZEJh
- bm5lZCI7czoxMToiZGVzY3JpcHRpb24iO3M6Mzg6IrZ9qPekdadAq8e1b6mr
- w/bB5KZyq8y9qqTpp9PCc8T9rbatsaFDIjtzOjEwOiJkYXRhdGFibGVzIjtz
- OjA6IiI7czo5OiJkaXJlY3RvcnkiO3M6MDoiIjtzOjk6ImNvcHlyaWdodCI7
- czoxMzoiS2FpanVhblN0dWRpbyI7czo3OiJtb2R1bGVzIjtzOjEzNToiYTox
- OntpOjA7YTo1OntzOjQ6Im5hbWUiO3M6NjoiYmFubG9nIjtzOjQ6Im1lbnUi
- O3M6ODoiq8y9qqTpp9MiO3M6MzoidXJsIjtzOjEwOiJiYW5sb2cucGhwIjtz
- OjQ6InR5cGUiO3M6MToiMSI7czo3OiJhZG1pbmlkIjtzOjE6IjEiO319Ijt9
- czo3OiJ2ZXJzaW9uIjtzOjU6IjUuMC4wIjt9
复制代码 附件:
KeywordBanned.rar
(10.96 KB, 下载次数: 0)
|