[discuz开发] discuz3.4设置会员免回复查看隐藏帖

[复制链接]
查看526 | 回复0 | 2023-5-18 19:26:45 | 显示全部楼层 |阅读模式
<
很多朋友在社区安装后并在后台自定义中设置了如VIP用户,
但该用户在社区使用中还是有些权限无法给予。
这样就给购买了VIP使用权限的用户使用上带来不便。
为更好的使特殊用户能更好的感受一些特殊的权限,
今天教大家如何修改文件来达到特殊用户不用回复就可查看隐藏帖的目的。

大家有可能会问,如何在数据库中增加新的数据项,其实很简单,大家在使用空间中都可使用phpMyAdmin来管理你的数据库,如你可以使用可使用phpMyAdmin中的 运行 SQL 查询中添加如上代码再点击右下方的执行即可。

一:升级数据库:

输入:
  1. ALTER TABLE `pre_common_usergroup_field` ADD `ishidefree` TINYINT( 1 ) DEFAULT '0' NOT NULL
复制代码
ALTER TABLE `pre_common_usergroup_field`:改动表
ADD `ishidefree`:添加字段
TINYINT( 1 ):字段类型tinyint  长度为:1
DEFAULT '0':默认值为0
NOT NULL: 约束强制列不接受 NULL 值

或者在Navicat for Mysql 中在数据库名上点击右键,运行SQL文件。如下图。下载地址:AddIshidefree.zip

2023-05-19 001.png

二:修改source/admincp/admincp_usergroups.php
查找:
  1. showsetting('usergroups_edit_post_new', 'allowpostnew', $group['allowpost'], 'radio');
复制代码


前面加入:
  1. showsetting('usergroups_hidefree_post', 'ishidefreenew', $group['ishidefree'], 'radio');
复制代码


再查找:
  1. 'allowpost' => $_GET['allowpostnew'],
复制代码


前面加入 :
  1. 'ishidefree' => $_GET['ishidefreenew'],
复制代码


三:修改source/function/function_discuzcode.php
查找(大概在38行):
  1. if($_G['member']['credits'] >= $creditsrequire || $_G['forum']['ismoderator']
复制代码


后面插入 :
|| $_G['group']['ishidefree']

整体效果为:
  1. if($_G['member']['credits'] >= $creditsrequire || $_G['forum']['ismoderator'] || $_G['group']['ishidefree']|| $_G['uid'] && $authorid == $_G['uid']) {
复制代码


再找第2个 :
  1. if($authorreplyexist
复制代码


注意:是第2个(一共有两个,这里要改第2个)
后面插入 :
  1. || $_G['group']['ishidefree']
复制代码


整体效果:
  1. if($authorreplyexist||$_G['group']['ishidefree']){
复制代码


四:修改source/language/lang_admincp.php
查找:
  1. 'usergroups_edit_post_new' => '允许发新话题',
复制代码


在上面添加:
  1. 'usergroups_hidefree_post' => '拥有隐藏贴免回覆权限:',
  2. 'usergroups_hidefree_post_comment' => '设置是否拥有隐藏贴免回覆权限',
复制代码


五,后台 "用户"->用户组->自定义用户组->在需要免回复的用户组后面点“编辑”->论坛相关->贴子相关>要设置此功能的用户组按设置是否拥有隐藏贴免回復权限 选"是",即可.

原文链接:https://www.likecs.com/show-307617192.html

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

本版积分规则