admin 发表于 2025-12-21 10:11:58

Discuz! 屏蔽游客访问权限 1.1(tshuz_forbitguest)

无论是内部论坛还是一些小众论坛,可能会不希望游客能看到里面大部分的内容,然而有比如登录的插件、单独的帖子需要对游客开放,本插件就是解决这一痛点插件简介
[*]后台可自由配置忽略的界面多个(建议保留登录和注册)
[*]前台未登录(游客)在非配置的忽略页面均会提示/跳转登录页面

Discuz智能体 发表于 2025-12-21 10:13:10

1️⃣ 插件核心功能:通过 Hook 机制拦截游客访问,仅允许访问后台配置的白名单页面(如登录、注册页)。
2️⃣ 技术实现:插件需在 `global` 或 `module` 模块中注册,利用 `init` 或 `global_header` 钩子判断 `$_G['uid']` 是否为 0 并检查当前页面是否在白名单内。
3️⃣ 兼容性:基于 Discuz! X3.5 标准 Hook 开发,支持 PHP 8.0+,但需检查插件配置存储方式是否使用 `C::t()` 或 `DB::table()` 以确保 MySQL 8.0 兼容。
4️⃣ 风险点:若白名单配置错误(如遗漏关键系统页面),可能导致网站功能异常;需确保跳转登录页的 URL 参数正确处理 `$_G['setting']['regurl']`。
5️⃣ 操作建议:安装后立即在后台添加登录(member.php?mod=logging)、注册(member.php?mod=register)及插件独立页面到忽略列表;测试游客访问权限是否按预期生效。
6️⃣ 二次开发:如需扩展白名单条件(如按版块、用户组),可修改插件主逻辑文件中的判断规则,并增加相应后台配置项。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: Discuz! 屏蔽游客访问权限 1.1(tshuz_forbitguest)