相信很多使用discuz的朋友,都有想过能不能某一版块设置为仅发帖用户和管理员可见,用于论坛的问题反馈,或者投稿等私密版块。 但是Discuz后台里目前没有对应的功能设置!如果按用户组设置可浏览权限,可能用户都不能进去发帖! 目前有两种方法可以实现在特定版块里,内容只有用户本人和网站管理员或者版主可见,一种是设置“阅读权限”,第二种是直接某些版块对用户本人或那一用户可见。 第一种方法:设置阅读权限1.用户自己在发帖的时候,在编辑页面,自己进行设置阅读权限!这样就本人和有阅读权限的用户组可见了! 2.如果每次要用户填阅读权限太麻烦,那就通过修改代码,使某一版块下发帖时默认设置阅读权限。 方法如下: - 2.1打开修改文件:templates/default/post.htm
- <input type="text" name="readperm" value="$thread[readperm]" class="txt" tabindex="1" />
- <input type="text" name="readperm"{if in_array($fid,array(2,3,4,5))} value="255" readonly="readonly" {else} value="$thread[readperm]" {/if}class="txt" tabindex="1" />
保存修改后,即可实现某一版块,默认设置“阅读权限”。 其中的value="255",是“阅读权限”,根据你实际的用户组阅读权限设置(后台-用户-管理组-基本权限)进行填写。 其中的($fid,array(2,3,4,5)),里面的数字代表的是fid号,也就是板块ID,多个板块ID用半角逗号分开! 第二种方法:直接让版块对用户本人或那某用户可见方法如下: - 1.打开修改文件:source\module\forum \forum_viewthread.PHP
- 2.搜索:$_G['forum_threadpay'] = FALSE;(DZx3.4 在219行左右)
- 3.在 $_G['forum_threadpay'] = FALSE;的上方插入:
- if(in_array($_G['fid'], array(6,9,8,10)) && $_G['adminid'] != 1 && $_G['forum_thread']['authorid'] != $_G['uid']){
- showmessage('对不起,本版内容非发帖人或管理员不可查阅!');
- }
切记是在上方插入,不是替换! 原来是: - $incollection = getstatus($_G['forum_thread']['status'], 9);
- $_G['forum_threadpay'] = FALSE;
- if($_G['forum_thread']['price'] > 0 && $_G['forum_thread']['special'] == 0) {
最终修改为: - $incollection = getstatus($_G['forum_thread']['status'], 9);
- if(in_array($_G['fid'], array(6,9,8,10)) && $_G['adminid'] != 1 && $_G['forum_thread']['authorid'] != $_G['uid']){
- showmessage('对不起,本版内容非发帖人或管理员不可查阅!');
- }
- $_G['forum_threadpay'] = FALSE;
- if($_G['forum_thread']['price'] > 0 && $_G['forum_thread']['special'] == 0) {
其中的array(6,9,8,10),是你要限制的版块ID,多个版块ID用半角逗号隔开“ , ”! 第三种方法:直接让版块对用户本人或那某一管理用户组可见 方法和上面第二种一样,只是代码不同,代码如下:- if(in_array($_G['fid'], array(6,9,8,10)) && $_G['groupid'] != 1 && $_G['forum_thread']['authorid'] != $_G['uid']){
- showmessage('对不起,本版内容非发帖人或管理员不可查阅!');
- }
方法就是把第二个方法里的$_G['adminid']改为了:$_G['groupid'], “ groupid ”是用户组的意思,”= 1“是你想要设置的管理组ID,要自己去后台看! 这两个方法基本上适用X1.5、X2.0、X2.5、X3.0、X3.1、X3.2、X3.3、X3.4! 测试之前,记得先备份站点,以免出现意外!
|