适合版本:D4.1 4.0 
难易程度:中 
数据库修改:有 
版权:魔焰男孩 
修改:BY odo_cd  
 
4。2增加分板块控制的功能,见2楼,还有最后一个问题没解决了,就是在archiver里可以看到。。。。。。 
 
 
首先我声明,第一次自己改这玩意,有点乱(我接触php和mysql只有一个月,其实不懂,只是对照到改),不免有BUG,不过我已经测试成功,有问题,请大家指出。 
 
该插件已经解决后台控制的问题,但是还有个问题是在archiver中指定用户的帖子内容大家都能看,所以只有把arciver的连接隐藏了,希望高手能把这问题解决了 
 
我确实需要这功能,并且看到很多人都在跟原作者的帖有后台功能,所以我自己弄出来了给自己用,同时分享给大家,也算回报。 
 
原帖: 
https://discuz.dismall.com/viewthread.php?tid=243891 
 
1、在后台升级数据库: 
- ALTER TABLE cdb_usergroups ADD allowreaduserpost int(1) DEFAULT '0' NOT NULL;
 
 - ALTER TABLE cdb_threads ADD readuser Varchar(255) NOT NULL DEFAULT '';
 
  复制代码 
 
如果您已经安装原作者的版本,请不要用第2个升级数据库语句。 
 
2、在post_newthread.htm中找到: 
 
 
 
 
 
上面添加: 
 
- <!--{if $allowreaduserpost}-->
 
 - <tr>
 
 -         <td class="altbg1">本帖阅读用户:</td>
 
 -         <td class="altbg2"><input type="text" name="readuser" size="20" 
 
  
- value=""> <span class="smalltxt">(允许浏览本帖的用户,多个用户请用半角 ',' 分隔
 
  
- ,留空为所有用户都能阅读)</span></td>
 
 -         </tr>
 
 - <!--{/if}-->
 
  复制代码 
 
3、post_editpost.htm中找到 
 
 
 
 
上面添加: 
 
- <!--{if $allowreaduserpost}-->
 
 - <tr>
 
 -         <td class="altbg1">本帖阅读用户:</td>
 
 -         <td class="altbg2"><input type="text" name="readuser" size="20" 
 
  
- value=""> <span class="smalltxt">(允许浏览本帖的用户,多个用户请用半角 ',' 分隔
 
  
- ,留空为所有用户都能阅读)</span></td>
 
 -         </tr>
 
 - <!--{/if}-->
 
  复制代码 
 
4、admin\groups.inc.php 
 
查找 
 
- showtype('usergroups_edit_thread');
 
  复制代码 
 
在下面一行添加: 
 
 
- showsetting('usergroups_edit_allowreaduserpost', 'allowreaduserpostnew', 
 
  
- $group['allowreaduserpost'], 'radio');
 
  复制代码 
 
查找 
 
 
 
- allowhtml='$allowhtmlnew', allowpostpoll='$allowpostpollnew', 
 
  
- allowdirectpost='$allowdirectpostnew', allowvote='$allowvotenew',
 
  复制代码 
 
在上面添加 
 
- allowreaduserpost='$allowreaduserpostnew',
 
  复制代码 
 
5、admincp.lang.php 
 
- 'usergroups_edit_thread' => '帖子相关',
 
  复制代码 
 
下添加: 
 
- 'usergroups_edit_allowreaduserpost' => '是否允许发布指定用户帖',
 
  复制代码 
 
已经安装原作者的插件的不用重复以下步骤! 
 
6、viewthread.htm中 
 
- $thread['modaction'] || $thread['blog']
 
  复制代码 
 
在后面(不是下面)添加(注意前面有个空格): 
 
 
 
 
再次查找: 
 
 
- <!--{if $thread['readperm']}-->  {lang readperm_thread} <span class="bold">$thread[readperm]</span>  <!--{/if}-->
 
  复制代码 
在下面添加上: 
 
 
- <!--{if $thread['readuser']}-->  本帖只有指定人员才能阅读  <!--{/if}-->
 
  复制代码 
 
修改完成后, 保存退出。 
 
. 打开文件 ./include/newthread.inc.php, 查找: 
 
 
-         if(!$typeid && $forum['threadtypes']['required']) {
 
  复制代码 
 
在上面添加上: 
 
 
-         $readuser = isset($readuser) ? $readuser : '';
 
 -         if(strlen($readuser) > 255) {
 
 -                 showmessage('您设置的指定阅读用户超过 255 个字符, 请返回修改。');
 
 -         }
 
  复制代码 
 
 
再次查找: 
 
 
 
 
在后面(不是下面)添加(注意前面有个空格): 
 
 
 
 
再来查找: 
 
 
 
 
在后面(不是下面)添加(注意前面有个空格): 
 
 
 
 
修改完成后, 保存退出。 
 
7. 打开文件 ./include/editpost.inc.php, 查找: 
 
 
-                         if(!$typeid && $forum['threadtypes']['required']) {
 
  复制代码 
 
 
在上面添加上: 
 
 
                       - $readuser = isset($readuser) ? $readuser : '';
 
 -                         if(strlen($readuser) > 255) {
 
 -                                 showmessage('您设置的指定阅读用户超过 255 个字符, 请返回修改。');
 
 -                         }
 
  复制代码 
再次查找: 
 
 
 
在后面(不是下面)添加(注意前面有个空格): 
 
 
 
 
修改完成后, 保存退出。 
 
8. 打开文件 ./viewthread.php, 查找: 
 
 
- $allowpaytoauthor = substr(sprintf('%02b', $forum['allowtrade']), -2, 1);
 
  复制代码 
 
在上面添加上: 
 
 
- $readuser = explode(',', $thread['readuser']);
 
 - $readchk = false;
 
 - foreach($readuser as $chk_name => $chk_user) {
 
 -         if($discuz_user == $chk_user) {
 
 -                 $readchk = true;
 
 -                 break;
 
 -         }
 
 - }
 
 - unset($readuser, $chk_name, $chk_user);
 
 - if($thread['readuser'] && !$readchk && ($adminid != 1) && ($thread['author'] != $discuz_user)) showmessage('对不起, 本帖只有指定人员才能阅读, 您不在指定列表中, 因此无权阅读本帖。');
 
  复制代码 
 
 
修改完成后, 保存退出。 
完工。。。。。。。。。。 
 
 
 
反安装: 
 
- ALTER TABLE cdb_threads DROP readuser;
 
 - ALTER TABLE cdb_usergroups drop allowreaduserpost;
 
  复制代码 
 
再依次恢复改动的文件,建议再改动之前作备份。 
 
附带说明: 
 
在主题列表里面显示设置了阅读用户的帖子为“认证帖子”, 方法如下: 
 
打开模版文件 forumdisplay.htm (一般位于 ./templates/default/ 目录里, 安装多个模版的每个模版都要修改), 查找: 
 
 
-                 <!--{if $thread['readperm']}--> - [{lang readperm} <span class="bold">$thread[readperm]</span>]<!--{/if}-->
 
  复制代码 
 
在下面添加上: 
 
 
              - <!--{if $thread['readuser']}--> - [认证帖子]<!--{/if}-->
 
  复制代码 
 
成功了的回来跟一下。。。。 
 
修改完成后, 保存退出。 
 
[ 本帖最后由 odo_cd 于 2006-4-3 22:00 编辑 ] |