DISCUZ!X2.5如何限制会员每天发帖数量

来源:互联网 发布:飞思卡尔 汽车单片机 编辑:程序博客网 时间:2024/04/24 02:46

作为一位论坛管理员,最烦恼的莫过于垃圾帖子和大量无意义的灌水帖子。我们都会想尽办法与垃圾贴、灌水贴、广告贴做斗争,您解决不了这些问题,那么你的论坛永远也不会强大,看到满世界的这类垃圾帖子,试问,还有谁会耐着性子,继续浏览下去?站长们在想尽办法来防止垃圾帖子的泛滥、康盛的官方开发团队也在不断提供新方法、新功能为我站长供应强大的“弹药”,如防水墙,就是这种产物,而今天的重点不是讨论如何防水墙的,无忧主机(www.51php.com)小编和大家一起学习一个限制discuz!x2.5垃圾信息泛滥的重武器——如何限制会员每天发帖数量。

在使用dz的站长都晓得,dz后台默认的功能中,可以自定义会员每小时发帖的数量,这个是默认功能,但这个功能也不是很好用,如果过了时间限制,那么又可能会刮起新一轮垃圾帖子狂潮。能否可以限制disucz!x2.5每个会员每天发帖数量类?无忧主机(www.51php.com)认为是可以的,我们接下来,就一起详细学习一下。

要实现这个功能,我们需要修改disucz论坛的源代码,那么,一个文本编辑器是不可缺少的,这是成功的保障。我们只需要修改lang_admincp.php、lang_message.php、table_common_member_action_log.php就可以实现这个效果。下面是详细过程。

首选,连接php虚拟主机下载这三个文件下载到本地电脑

/source/language/lang_admincp.php

/source/language/lang_message.php

/source/language/lang_message.php

然后以此修改、替换代码如下:

1、修改discuz!x2.5后台功能菜单设置显示提示

使用文本编辑editplus打开\source\language\lang_admincp.php

查找定位约3703行

1'usergroups_edit_basic_hour_threads'=>
2'会员每小时发主题数限制',
3'usergroups_edit_basic_hour_threads_comment'=>
4'设置允许会员每小时最多的发主题数量,
5可以配合灌水预防功能进一步限制会员的发帖,
6可设置为 1~255 范围内的数值,0 为不限制。
7此功能会轻微加重服务器负担,且对游客无效',
8'usergroups_edit_basic_hour_posts'=>
9'会员每小时发回帖数限制',
10'usergroups_edit_basic_hour_posts_comment'=>
11'设置允许会员每小时最多的发回帖数量,
12可以配合灌水预防功能进一步限制会员的发帖,
13可设置为 1~255 范围内的数值,0 为不限制。
14此功能会轻微加重服务器负担,且对游客无效',

替换

1'usergroups_edit_basic_hour_threads'
2=>'会员每天发主题数限制',
3'usergroups_edit_basic_hour_threads_comment'
4=> '设置允许会员每天最多的发主题数量,
5可以配合灌水预防功能进一步限制会员的发帖,
6可设置为 1~255 范围内的数值,0 为不限制。
7此功能会轻微加重服务器负担,且对游客无效',
8'usergroups_edit_basic_hour_posts'
9=>'会员每天发回帖数限制',
10'usergroups_edit_basic_hour_posts_comment'
11=> '设置允许会员每天最多的发回帖数量,
12可以配合灌水预防功能进一步限制会员的发帖,
13可设置为 1~255 范围内的数值,0 为不限制。
14此功能会轻微加重服务器负担,且对游客无效',

2、用户组每天发帖限制提示

使用文本编辑editplus打开\source\language\lang_message.php

查找约144行

1'thread_flood_ctrl_threads_per_hour'=>
2'抱歉,您所在的用户组每天限制发主题 {threads_per_hour} 个,请稍候再发表',

替换

1'thread_flood_ctrl_threads_per_hour'=>
2 '抱歉,您所在的用户组每天限制发主题 {threads_per_hour} 个,请稍候再发表',

3、修改检验程序文件:会员每小时发帖数限制更改为会员每天发帖数限制

使用文本编辑editplus打开\source\class\table\table_common_member_action_log.php

1查找约31行
2publicfunction count_per_hour($uid,$type) {
3returnDB::result_first('SELECT COUNT(*) FROM %t WHERE dateline>%d AND `action`=%d AND uid=%d',array($this->_table, TIMESTAMP - 3600,
4getuseraction($type),$uid));
5}

替换

1publicfunction count_per_hour($uid, $type) {
2returnDB::result_first('SELECT COUNT(*) FROM %t WHERE dateline>%d AND `action`=%d AND uid=%d', array($this->_table, TIMESTAMP - 86400,
3getuseraction($type), $uid));
4}

将上述修改完毕后,上传到原目录进行覆盖后,完成限制论坛会员每天发帖数量的限制。效果如下对比

Dz后台默认的每小时发帖限制限制

image00122 150x150 Discuz!x2.5如何限制会员每天发帖数量

成功修改为按会员每天发帖数

image00315 150x150 Discuz!x2.5如何限制会员每天发帖数量

Dz后台默认的每小时发帖限制成功修改为按会员每天发帖数,如果你也设置好了,赶快去测试下吧,同时你还可以参照:设置DISCUZ!X2.5 防灌水垃圾帖设置策略,抵御垃圾非法信息的侵害。

0 0