Discuz 插件:隐藏网盘分享链接,保护隐私
Discuz 插件:隐藏网盘分享链接,保护隐私
该插件可以自动隐藏论坛帖子中的百度网盘、115 网盘和阿里云盘分享链接,仅楼主和回帖人可见,有效保护用户隐私,防止链接被恶意盗用。
插件代码
<?php
if (!defined('IN_DISCUZ')) {
exit('Access Denied');
}
class plugin_wangpancheck {
}
class plugin_wangpancheck_forum extends plugin_wangpancheck {
var $thread_author_id;
function viewthread_postbottom_output() {
global $_G, $postlist, $bestpost;
$bestpost['message'] = '';
foreach ($postlist as &$post) {
// 如果是主题的第一篇帖子,保存楼主的ID
if ($post['first']) {
$this->thread_author_id = $post['authorid'];
}
// 判断当前用户是否是帖子回复者或者楼主
$isAuthorOrThreadAuthor = ($_G['uid'] == $post['authorid']) || ($_G['uid'] == $this->thread_author_id);
// 如果不是作者或主题作者,则替换含有 'baidu.com', '115.com' 或 'aliyundrive.com' 的整个链接
if (!$isAuthorOrThreadAuthor) {
$replaceStr = '***分享链接仅楼主和回帖人可见***';
$searchArray = array('baidu.com', '115.com', 'aliyundrive.com');
foreach ($searchArray as $searchStr) {
if (strpos($post['message'], $searchStr) !== false) {
$post['message'] = preg_replace('/http[s]?://[^ ]*' . preg_quote($searchStr) . '[^ ]*/i', $replaceStr, $post['message']);
}
}
// 移除所有的 a 标签以确保替换后的文本不再是超链接
$post['message'] = preg_replace('/<a[^>]*>|</a>/i', '', $post['message']);
}
}
}
}
使用方法
- 将以上代码保存为
plugin_wangpancheck.php文件 - 将文件上传至 Discuz 的
source/plugin目录下 - 进入 Discuz 后台,启用该插件
功能说明
- 该插件会检测帖子内容中是否包含 'baidu.com', '115.com', 'aliyundrive.com' 链接
- 如果检测到链接,并且当前用户不是帖子作者或主题作者,则会将链接替换为 '分享链接仅楼主和回帖人可见'
- 插件还会移除所有 a 标签,确保替换后的文本不再是超链接
注意事项
- 该插件仅能隐藏包含 'baidu.com', '115.com', 'aliyundrive.com' 的链接,其他网盘链接需要自行添加代码
- 该插件可能无法识别所有类型的网盘链接,建议使用官方的网盘分享功能
- 为了安全起见,建议定期更新插件代码以修复漏洞
原文地址: https://www.cveoy.top/t/topic/oYix 著作权归作者所有。请勿转载和采集!