宾客门户主题组件

Guest Gate 2.0 即将上线! :rocket:

Guest Gate 的新版本目前正在开发中,这不仅仅是一个简单的版本更新,而是一个重大的升级。

2.0 版本带来了重新设计的触发系统、更现代化的实现方式、显著更多的自定义选项,以及与当前 Discourse 版本更好的兼容性。

:rocket: 新的触发系统

2.0 版本最大的变化是,你不再局限于仅通过页面浏览量来触发。

现在你可以选择如何触发 Guest Gate:

  • 页面浏览量 - 在达到可配置的页面浏览次数后显示门控

  • 时间 - 在页面上停留一定时间后显示

  • 滚动 - 在访客滚动到页面可配置的百分比时显示

  • 灯箱 - 在访客打开图片时显示

  • 任意 - 允许多种触发类型触发门控

这使得创建更复杂的访客门控策略成为可能。

:repeat_button: 新的重复行为

现在你可以控制 Guest Gate 显示后会发生什么:

  • 重复触发 - 每当配置的触发条件发生时再次显示

  • 随机页面浏览量 - 在随机数量的页面浏览后再次显示

  • 每会话一次 - 在浏览器会话期间仅显示一次

此外,还新增了针对随机页面浏览重复的可配置阈值。

为了保持向后兼容,现有的 “仅显示一次” 设置仍然受支持。

:stopwatch: 延迟显示

现在可以在触发条件满足后,以可配置的延迟时间显示门控。

例如,你可以设置在滚动深度达到 50% 时触发门控,但再等待 750 毫秒后才打开模态框。

这可以让体验感觉不那么具有侵入性。

:artist_palette: 对模态框更多的控制

2.0 版本增加了几个新的自定义选项:

  • 紧凑、标准或宽模态框

  • 显示或隐藏模态框标题

  • 可配置的标题位置

  • 改进的响应式行为

:framed_picture: 改进的自定义门控

自定义门控也进行了重大更新。

现在你可以:

  • 为自定义图片添加替代(alt)文本

  • 更好地控制自定义文本内容

  • 在自定义小文本字段中使用 HTML 内容,包括段落和换行

  • 更好地控制颜色和间距

在新的实现中,自定义内容的处理也更加整洁。

:gear: 现代化的实现

在底层,Guest Gate 2.0 进行了显著的现代化改造。

旧的实现依赖于遗留的插件初始化器、Discourse 页面跟踪和基于 jQuery 的灯箱处理。

2.0 现在使用 Discourse 的现代 API 初始化器和页面变更 API,并有一个专用的门控控制器负责管理触发器、计时器、滚动监听器、会话状态和模态框状态。

这也使得该组件在未来更易于维护和扩展。

:counterclockwise_arrows_button: 考虑现有安装

2.0 的一个重要目标是避免迫使现有用户手动重建其配置。

新版本包含一个设置迁移功能,将旧的 Guest Gate 设置转换为新的等效设置。

例如,旧的 max_guest_topic_views 设置会自动迁移到新的页面浏览配置和重复行为。

旧的灯箱设置也会自动映射到新的触发系统。

因此,升级应尽可能保留现有安装的行为。

:broom: 更整洁的配置

许多现有设置也进行了清理,并重写了其描述,以使管理员界面更易于理解。

登录/注册、Discourse Connect、自定义 URL 和按钮逻辑也在内部进行了重组。


接下来是什么?

Guest Gate 2.0 目前正在进行最终完善和测试。

此版本旨在为未来的 Guest Gate 功能奠定坚实的基础,同时为管理员提供对门控 何时、何地以及如何 出现的更多控制权。

如果你已经在使用 Guest Gate,在升级时你的现有配置应会自动迁移。


:test_tube: 想提前测试 v2.0?

你可以在这里尝试该分支:GitHub v2.0 分支

6 个赞