// ----------------------------------------------------------------
// Users Set Threads' Reply Limitation By Polo!
// 用户自定主题回复限制 (自动关帖)
// ----------------------------------------------------------------
插件: 用户自定主题回复限制 (自动关帖)
Users Set Threads' Reply Limitation
作者: Polo!
适用: Discuz! 2.5 SP1
难度: 繁复
修改: admin/groups.php, include/newthread.php,
include/newreply.php, include/editpost.php
模版: forumdisplay, viewthread, post_newthread,
post_editpost
语言包: admincp, templates
// ----------------------------------------------------------------
结合用户组权限,允许用户自定主题的回复数限制
当主题的回复数达到用户自设的限制,主题就会自
动关上,换句话说,这也是自动关帖
// ----------------------------------------------------------------
第一步
升级数据库,注意前缀
- ALTER TABLE `cdb_threads` ADD `replylimit` SMALLINT( 6 ) DEFAULT '0' NOT NULL AFTER `creditsrequire`;
复制代码- ALTER TABLE `cdb_usergroups` ADD `allowsetreplylimit` TINYINT( 1 ) DEFAULT '0' NOT NULL AFTER `allowsetviewperm`;
复制代码
第二步
后台用户组权限
admin/groups.php,找到
- showsetting('usergroups_edit_set_view_perm', 'allowsetviewpermnew', $group['allowsetviewperm'], 'radio');
复制代码
在↓下面↓加入
- // ----------------------------------------------------------------
- // Users Set Threads' Reply Limitation By Polo!
- // ----------------------------------------------------------------
- showsetting('usergroups_edit_setreplylimit', 'allowsetreplylimitnew', $group['allowsetreplylimit'], 'radio');
- // ----------------------------------------------------------------
复制代码
继续找到
- allowsetviewperm='$allowsetviewpermnew',
复制代码
在→后面→加入
- allowsetreplylimit='$allowsetreplylimitnew',
复制代码
第三步
发新主题设定回复限制
include/newthread.php,找到
- $viewperm = $allowsetviewperm ? $viewperm : 0;
复制代码
在↓下面↓加入
- // ----------------------------------------------------------------
- // Users Set Threads' Reply Limitation By Polo!
- // ----------------------------------------------------------------
- $replylimit = $allowsetreplylimit ? $replylimit : 0;
- // ----------------------------------------------------------------
复制代码
继续找到
在→后面→加入
继续找到
在→后面→加入
第四步
回复达指定回复数即自动关闭主题
include/newreply.php,找到
在↓下面↓加入
- // ----------------------------------------------------------------
- // Users Set Threads' Reply Limitation By Polo!
- // ----------------------------------------------------------------
- $replylimitadd = $thread['replylimit'] && $thread['replylimit'] == ($thread['replies']+1) ? ", closed='1'" : NULL;
- // ----------------------------------------------------------------
复制代码
继续找到
- replies=replies+1, attachment='".attachtype($last_attach_type, 'id')."'
复制代码
在→后面→加入
继续找到
在→后面→加入
第五步
编辑主题的回复限制,如超过限制,则关闭主题,否则打开主题
include/editpost.php,找到
- $viewpermadd = ($allowsetviewperm && $isfirstpost) ? "creditsrequire='$viewperm'" : NULL;
复制代码
在↓下面↓加入
- // ----------------------------------------------------------------
- // Users Set Threads' Reply Limitation By Polo!
- // ----------------------------------------------------------------
- $replylimitadd = $allowsetreplylimit && $isfirstpost ? ($viewpermadd ? "," : NULL)."replylimit='$replylimit'".($replylimit && $replylimit <= $thread['replies'] ? ", closed='1'" : ", closed='0'") : NULL;
- // ----------------------------------------------------------------
复制代码
继续找到
- if($viewpermadd) {
- $db->query("UPDATE $table_threads SET $viewpermadd WHERE tid='$tid'", 'UNBUFFERED');
- }
复制代码
◎替换◎为
- // ----------------------------------------------------------------
- // Users Set Threads' Reply Limitation By Polo!
- /*
- if($viewpermadd) {
- $db->query("UPDATE $table_threads SET $viewpermadd WHERE tid='$tid'", 'UNBUFFERED');
- }
- */
- // ----------------------------------------------------------------
- if($viewpermadd || $replylimitadd) {
- $db->query("UPDATE $table_threads SET $viewpermadd $replylimitadd WHERE tid='$tid'", 'UNBUFFERED');
- }
- // ----------------------------------------------------------------
复制代码
第六步
在主题列表显示限制回复
forumdisplay 模版,找到
- <!--{if $thread['creditsrequire']}-->
- - [{lang credit_title} <span class="bold">$thread[creditsrequire]</span>{lang
- credit_unit}]
- <!--{/if}-->
复制代码
在↓下面↓加入
- <!--{if $thread['replylimit']}-->
- - [{lang replylimit2} <span class="bold">$thread[replylimit]</span> {lang
- replies}]
- <!--{/if}-->
复制代码
第七步
在看帖子显示限制回复
viewthread 模版,找到
- <!--{if $thread['creditsrequire']}--> {lang creditsrequire_view} {lang credit_title} <span class="bold">$thread[creditsrequire]</span> {lang credit_unit}<!--{/if}-->
复制代码
在↓下面↓加入
- <!--{if $thread['replylimit']}--> {lang replylimit2} <span class="bold">$thread[replylimit]</span> {lang replies}<!--{/if}-->
复制代码
第八步
post_newthread 模版,找到
- <!--{if $allowsetviewperm}-->
- <tr>
- <td bgcolor="{ALTBG1}">{lang creditsrequire_view} {lang credit_title}:</td>
- <td bgcolor="{ALTBG2}" class="smalltxt"><input type="text" name="viewperm" size="6" value="$viewperm"> {lang credit_unit} (0 {lang is_unlimited})</td>
- </tr>
- <!--{/if}-->
复制代码
在↓下面↓加入
- <!--{if $allowsetreplylimit}-->
- <tr>
- <td bgcolor="{ALTBG1}">{lang replylimit}:</td>
- <td bgcolor="{ALTBG2}" class="smalltxt"> <input type="text" name="replylimit" size="6" value="$replylimit"> {lang replies} (0 {lang is_unlimited})</td>
- </tr>
- <!--{/if}-->
复制代码
第九步
post_editpost 模版,找到
- <!--{if $allowsetviewperm && $isfirstpost}-->
- <tr>
- <td bgcolor="{ALTBG1}">{lang creditsrequire_view} {lang credit_title}:</td>
- <td bgcolor="{ALTBG2}"><input type="text" name="viewperm" size="6" value="$thread[creditsrequire]"> {lang credit_unit} (0 {lang is_unlimited})</td>
- </tr>
- <!--{/if}-->
复制代码
在↓下面↓加入
- <!--{if $allowsetreplylimit && $isfirstpost}-->
- <tr>
- <td bgcolor="{ALTBG1}">{lang replylimit}:</td>
- <td bgcolor="{ALTBG2}"><input type="text" name="replylimit" size="6" value="$thread[replylimit]"> {lang replies} (0 {lang is_unlimited})</td>
- </tr>
- <!--{/if}-->
复制代码
第十步
admincp 语言包,找到
- 'usergroups_edit_set_view_perm_comment' => '设置是否允许设置帖子需要指定积分以上才可浏览',
复制代码
在↓下面↓加入
- 'usergroups_edit_setreplylimit' => '允许设置帖子回复限制:',
- 'usergroups_edit_setreplylimit_comment' => '设置是否允许设置帖子当有指定回复数则自动关闭帖子',
复制代码
第十一步
templates 语言包,找到
- 'creditsrequire_view' => '浏览所需',
复制代码
在↓下面↓加入
- 'replylimit' => '回复限制',
- 'replylimit2' => '限制',
复制代码
完成
更新缓存让语言包新增的文字能更新于模版缓存
到后台用户组设定有关的权限
// ----------------------------------------------------------------
|