Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Discuz!X2/2.5 “会员每小时发帖数限制“修改为”会员每天发帖数限制“

[复制链接]
otherbank 发表于 2012-7-20 12:42:10 | 显示全部楼层 |阅读模式
本帖最后由 otherbank 于 2012-7-20 18:16 编辑

修改后台用户组的设置,由“会员每小时发帖数限制“到”会员每天发帖数限制“,下面分别讲一下Discuz! X2和Discuz! X2.5的修改方法。


一、Discuz! X2的修改方法:
1,修改后台设置显示;
"\source\language\lang_admincp.php"的5021行
  1. 'project_option_group_maxpostsperhour' => '会员每小时发帖数限制',
复制代码
修改为:
  1. 'project_option_group_maxpostsperhour' => '会员每天发帖数限制',
复制代码
2,修改发帖数超过限制提醒文字;
\source\language\lang_message.php"的105行
  1. 'post_flood_ctrl_posts_per_hour' => '抱歉,您所在的用户组每小时限制发帖 {posts_per_hour} 个,请稍候再发表',
复制代码
修改为:
  1. 'post_flood_ctrl_posts_per_hour' => '抱歉,您所在的用户组每天限制发帖 {posts_per_hour} 个,请稍候再发表',
复制代码
3,修改检验程序文件,友“会员每小时发帖数限制“修改为”会员每天发帖数限制“
"\source\function\function_post.php"的313行
  1. function checkmaxpostsperhour() {
  2.         global $_G;
  3.         $morepostsperhour = false;
  4.         if(!$_G['group']['disablepostctrl'] && $_G['uid']) {

  5.                 if($_G['group']['maxpostsperhour']) {
  6.                         $timestamp = $_G['timestamp']-3600;
  7.                         $userposts = DB::result_first('SELECT COUNT(*) FROM '.DB::table('common_member_action_log')." WHERE dateline>$timestamp AND (`action`='".getuseraction('tid')."' OR `action`='".getuseraction('pid')."') AND uid='$_G[uid]'");
  8.                         $isflood = $userposts && ($userposts >= $_G['group']['maxpostsperhour']);
  9.                         if($isflood) {
  10.                                 $morepostsperhour = true;
  11.                         }
  12.                 }
  13.         }
  14.         return $morepostsperhour;
  15. }
复制代码
修改为:
  1. function checkmaxpostsperhour() {
  2.         global $_G;
  3.         $morepostsperhour = false;
  4.         if(!$_G['group']['disablepostctrl'] && $_G['uid']) {

  5.                 if($_G['group']['maxpostsperhour']) {
  6.                         $timestamp = $_G['timestamp']-86400;
  7.                         $userposts = DB::result_first('SELECT COUNT(*) FROM '.DB::table('common_member_action_log')." WHERE dateline>$timestamp AND (`action`='".getuseraction('tid')."' OR `action`='".getuseraction('pid')."') AND uid='$_G[uid]'");
  8.                         $isflood = $userposts && ($userposts >= $_G['group']['maxpostsperhour']);
  9.                         if($isflood) {
  10.                                 $morepostsperhour = true;
  11.                         }
  12.                 }
  13.         }
  14.         return $morepostsperhour;
  15. }
复制代码
二、Discuz! X2.5的修改方法:
1,修改后台设置显示;
"\source\language\lang_admincp.php"的3703行

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

  1. 'usergroups_edit_basic_hour_threads' => '会员每天发主题数限制',
  2.         'usergroups_edit_basic_hour_threads_comment' => '设置允许会员每天最多的发主题数量,可以配合灌水预防功能进一步限制会员的发帖,可设置为 1~255 范围内的数值,0 为不限制。此功能会轻微加重服务器负担,且对游客无效',
  3.         'usergroups_edit_basic_hour_posts' => '会员每天发回帖数限制',
  4.         'usergroups_edit_basic_hour_posts_comment' => '设置允许会员每天最多的发回帖数量,可以配合灌水预防功能进一步限制会员的发帖,可设置为 1~255 范围内的数值,0 为不限制。此功能会轻微加重服务器负担,且对游客无效',
复制代码
\source\language\lang_message.php"的144行
  1.   'thread_flood_ctrl_threads_per_hour' => '抱歉,您所在的用户组每天限制发主题 {threads_per_hour} 个,请稍候再发表',
复制代码
修改为:
  1.   'thread_flood_ctrl_threads_per_hour' => '抱歉,您所在的用户组每天限制发主题 {threads_per_hour} 个,请稍候再发表',
复制代码
3,修改检验程序文件,友“会员每小时发帖数限制“修改为”会员每天发帖数限制“
"\source\class\table\table_common_member_action_log.php"的32行
  1. public function count_per_hour($uid, $type) {
  2.                 return DB::result_first('SELECT COUNT(*) FROM %t WHERE dateline>%d AND `action`=%d AND uid=%d', array($this->_table, TIMESTAMP - 3600, getuseraction($type), $uid));
  3.         }
复制代码
修改为:
  1. public function count_per_hour($uid, $type) {
  2.                 return DB::result_first('SELECT COUNT(*) FROM %t WHERE dateline>%d AND `action`=%d AND uid=%d', array($this->_table, TIMESTAMP - 86400, getuseraction($type), $uid));
  3.         }
复制代码
注:感谢 64243354 对本教程的协助!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
64243354 发表于 2012-7-20 13:01:34 | 显示全部楼层
why i search source\function\function_post.php wiht not this code wtf
thank you! bank man!
回复

使用道具 举报

ARCHY` 发表于 2012-7-20 13:07:37 | 显示全部楼层
{:soso_e142:}六子解脱了
回复

使用道具 举报

xhjunpeng 发表于 2012-7-20 13:17:18 | 显示全部楼层
这个是X2.5的吗?
source\function\function_post.php的文件中,根本没有这个代码,搜“3600”都没有呢?
回复

使用道具 举报

腐朽的木头 发表于 2012-7-20 14:37:37 | 显示全部楼层
这个必须收藏
回复

使用道具 举报

我是沙发客 发表于 2012-7-21 17:39:25 | 显示全部楼层
学习了,拒绝水贴。
回复

使用道具 举报

liqu12511 发表于 2012-7-23 08:56:52 | 显示全部楼层
这个不错 支持
回复

使用道具 举报

530761333 发表于 2012-7-23 10:16:31 | 显示全部楼层
不错 六子厉害
回复

使用道具 举报

 发表于 2012-7-23 12:01:06
转播微博[tthread=shijiexuexi, 马林]http://app.qlogo.cn/mbloghead/6b58186ea7cf5d62eadc[/tthread]
回复

使用道具

鸿恒之心 发表于 2012-7-24 10:41:42 | 显示全部楼层
感谢分享这个。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 15:50 , Processed in 0.034385 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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