Guest Gate 2.0 即将上线! 
Guest Gate 的新版本目前正在开发中,这不仅仅是一个简单的版本更新,而是一个重大的升级。
2.0 版本带来了重新设计的触发系统、更现代化的实现方式、显著更多的自定义选项,以及与当前 Discourse 版本更好的兼容性。
新的触发系统
2.0 版本最大的变化是,你不再局限于仅通过页面浏览量来触发。
现在你可以选择如何触发 Guest Gate:
-
页面浏览量 - 在达到可配置的页面浏览次数后显示门控
-
时间 - 在页面上停留一定时间后显示
-
滚动 - 在访客滚动到页面可配置的百分比时显示
-
灯箱 - 在访客打开图片时显示
-
任意 - 允许多种触发类型触发门控
这使得创建更复杂的访客门控策略成为可能。
新的重复行为
现在你可以控制 Guest Gate 显示后会发生什么:
-
重复触发 - 每当配置的触发条件发生时再次显示
-
随机页面浏览量 - 在随机数量的页面浏览后再次显示
-
每会话一次 - 在浏览器会话期间仅显示一次
此外,还新增了针对随机页面浏览重复的可配置阈值。
为了保持向后兼容,现有的 “仅显示一次” 设置仍然受支持。
延迟显示
现在可以在触发条件满足后,以可配置的延迟时间显示门控。
例如,你可以设置在滚动深度达到 50% 时触发门控,但再等待 750 毫秒后才打开模态框。
这可以让体验感觉不那么具有侵入性。
对模态框更多的控制
2.0 版本增加了几个新的自定义选项:
-
紧凑、标准或宽模态框
-
显示或隐藏模态框标题
-
可配置的标题位置
-
改进的响应式行为
改进的自定义门控
自定义门控也进行了重大更新。
现在你可以:
-
为自定义图片添加替代(
alt)文本 -
更好地控制自定义文本内容
-
在自定义小文本字段中使用 HTML 内容,包括段落和换行
-
更好地控制颜色和间距
在新的实现中,自定义内容的处理也更加整洁。
现代化的实现
在底层,Guest Gate 2.0 进行了显著的现代化改造。
旧的实现依赖于遗留的插件初始化器、Discourse 页面跟踪和基于 jQuery 的灯箱处理。
2.0 现在使用 Discourse 的现代 API 初始化器和页面变更 API,并有一个专用的门控控制器负责管理触发器、计时器、滚动监听器、会话状态和模态框状态。
这也使得该组件在未来更易于维护和扩展。
考虑现有安装
2.0 的一个重要目标是避免迫使现有用户手动重建其配置。
新版本包含一个设置迁移功能,将旧的 Guest Gate 设置转换为新的等效设置。
例如,旧的 max_guest_topic_views 设置会自动迁移到新的页面浏览配置和重复行为。
旧的灯箱设置也会自动映射到新的触发系统。
因此,升级应尽可能保留现有安装的行为。
更整洁的配置
许多现有设置也进行了清理,并重写了其描述,以使管理员界面更易于理解。
登录/注册、Discourse Connect、自定义 URL 和按钮逻辑也在内部进行了重组。
接下来是什么?
Guest Gate 2.0 目前正在进行最终完善和测试。
此版本旨在为未来的 Guest Gate 功能奠定坚实的基础,同时为管理员提供对门控 何时、何地以及如何 出现的更多控制权。
如果你已经在使用 Guest Gate,在升级时你的现有配置应会自动迁移。
想提前测试 v2.0?
你可以在这里尝试该分支:GitHub v2.0 分支