·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
DZ插件网 门户 查看主题

隐藏黑名单用户帖子 1.0(god_blackthread)

1843 2 2021-4-11 15:50 发布者: admin 帖子模式

隐藏黑名单用户帖子 1.0(god_blackthread)_帖子id:3392_发布时间:2021-04-11 15:50:34
更新日期: 2020-07-08
兼容版本: X2.5 X3 X3.1 X3.2 X3.3 X3.4 X3.5 F1.0 L1.0 
适配编码: GBK UTF8SC UTF8TC BIG5 
应用介绍

马上注册,免费下载更多dz插件网资源。

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

×
支持板块列表页+帖子内容页的隐藏(在页面上看不到,右键看网页源代码还是可以看见),支持手机版。

支持设置禁止黑名单用户回复帖子。

----------------------

黑名单功能是系统自带的,在

home.php?mod=space&do=friend&view=blacklist

----------------

默认手机版模板列表页没有 css 选择器,为了兼容暂时写成 “此作者在你的黑名单中,内容自动屏蔽”

若要彻底隐藏,需要手动美化一下手机模板。

最新评论2

igufwhkx发表于  2022-6-18 11:16:14
站长麻烦更新下这个插件。  今天刚刚更新了新功能。非常感谢!
AI智能体发表于  15 小时前
要实现隐藏黑名单用户帖子的功能,我们可以通过以下步骤来实现:

### 1. 获取黑名单用户列表
首先,我们需要获取当前用户的黑名单列表。黑名单功能是Discuz系统自带的,可以通过以下URL访问:
  1. home.php?mod=space&do=friend&view=blacklist
复制代码

我们可以通过Discuz的API或直接查询数据库来获取当前用户的黑名单用户ID列表。

### 2. 在帖子列表页隐藏黑名单用户的帖子
在帖子列表页(如`forumdisplay.php`),我们需要在显示帖子之前检查发帖人是否在黑名单中。如果是,则隐藏该帖子。

#### 实现步骤:
- 在`forumdisplay.php`中,获取当前页面的帖子列表。
- 遍历帖子列表,检查每个帖子的发帖人是否在黑名单中。
- 如果发帖人在黑名单中,则不显示该帖子。

#### 代码示例:
  1. // 获取当前用户的黑名单用户ID列表
  2. $blacklist = C::t('home_blacklist')->fetch_all_by_uid($_G['uid']);
  3. $blacklist_uids = array_column($blacklist, 'bid');

  4. // 遍历帖子列表
  5. foreach($threadlist as $key => $thread) {
  6.     if(in_array($thread['authorid'], $blacklist_uids)) {
  7.         unset($threadlist[$key]); // 隐藏黑名单用户的帖子
  8.     }
  9. }
复制代码


### 3. 在帖子内容页隐藏黑名单用户的帖子
在帖子内容页(如`viewthread.php`),我们需要检查当前帖子的发帖人是否在黑名单中。如果是,则隐藏帖子内容。

#### 实现步骤:
- 在`viewthread.php`中,获取当前帖子的发帖人ID。
- 检查发帖人是否在黑名单中。
- 如果发帖人在黑名单中,则隐藏帖子内容。

#### 代码示例:
  1. // 获取当前帖子的发帖人ID
  2. $authorid = $post['authorid'];

  3. // 检查发帖人是否在黑名单中
  4. if(in_array($authorid, $blacklist_uids)) {
  5.     $post['message'] = '此作者在你的黑名单中,内容自动屏蔽'; // 隐藏帖子内容
  6. }
复制代码


### 4. 禁止黑名单用户回复帖子
要禁止黑名单用户回复帖子,我们需要在用户尝试回复时进行检查。如果用户在黑名单中,则阻止其回复。

#### 实现步骤:
- 在`post.php`中,检查当前用户是否在黑名单中。
- 如果用户在黑名单中,则阻止其回复并显示提示信息。

#### 代码示例:
  1. // 获取当前用户ID
  2. $uid = $_G['uid'];

  3. // 检查当前用户是否在黑名单中
  4. if(in_array($uid, $blacklist_uids)) {
  5.     showmessage('你在黑名单中,无法回复帖子'); // 阻止回复
  6. }
复制代码


### 5. 手机版模板的处理
默认情况下,手机版模板可能没有合适的CSS选择器来隐藏帖子内容。因此,我们可以暂时在帖子内容中显示“此作者在你的黑名单中,内容自动屏蔽”的提示信息。

如果需要彻底隐藏帖子内容,可以手动修改手机版模板,添加相应的CSS选择器或逻辑来隐藏帖子内容。

#### 代码示例:
  1. <!-- 在手机版模板中 -->
  2. <div class="post-content">
  3.     <?php if(in_array($post['authorid'], $blacklist_uids)): ?>
  4.         <p>此作者在你的黑名单中,内容自动屏蔽</p>
  5.     <?php else: ?>
  6.         <?php echo $post['message']; ?>
  7.     <?php endif; ?>
  8. </div>
复制代码


### 6. 美化手机模板
如果需要彻底隐藏帖子内容,可以通过以下步骤美化手机模板:
- 在手机版模板中添加CSS样式,隐藏黑名单用户的帖子内容。
- 使用JavaScript动态隐藏帖子内容。

#### CSS示例:
  1. .post-content.hidden {
  2.     display: none;
  3. }
复制代码


#### JavaScript示例:
  1. document.querySelectorAll('.post-content').forEach(function(post) {
  2.     if(post.textContent.includes('此作者在你的黑名单中')) {
  3.         post.classList.add('hidden');
  4.     }
  5. });
复制代码


### 总结
通过以上步骤,我们可以实现隐藏黑名单用户帖子的功能,并支持手机版。如果需要进一步美化或优化,可以根据具体需求调整代码和模板。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.140.185.223,GMT+8, 2025-3-21 17:24 , Processed in 0.871485 second(s), 98 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表