你好 @KhoiUSA
谢谢,我合并了一个更新:DEV: Migrate FA5 icons to FA6 by VaperinaDEV · Pull Request #25 · VaperinaDEV/discourse-guest-gate-theme-component · GitHub ![]()
谢谢更新!
您好 - 我们尝试在新 Discourse 实例上安装此组件,但在显示模态框时收到错误:
链接指向 此帖子。
考虑到该帖子来自 2023 年,令人惊讶的是此组件需要此更新。因此,我想知道我们是否在安装过程中做错了什么?
您好
能否移除组件并重新安装此组件:GitHub - VaperinaDEV/discourse-guest-gate-theme-component: Forced login / registration popup insired by Quora 以确保您使用的是正确的组件?
你好 @Don 感谢你提供的这么好的组件。我明白该组件的意图(实际上是标题)是触发访客/匿名用户。是否可以添加基于组或信任级别的条件设置?我正试图为访问特定类别中任何主题的已登录用户显示一个模态框。这将补充 Discourse-subscriptions 和 category-lockdown。
您好 @Don
感谢您的组件。我们在论坛 https://community.escapecollective.com/ 上使用了您的插件。但我们遇到了一个问题:当 max_guest_topic_views 参数设置为大于 1(在本例中为 3)时,模态窗口会显示片刻然后立即消失。我认为这是因为 Discourse 在加载 JS 时会执行“软”页面刷新(Ember SPA 路由),此时视图计数器会被重置,模态窗口会立即消失。我认为这发生在 Discourse 更新到 3.5.0.beta9-dev 版本之后。请帮助我弄清楚这个问题。

作为一个数据点,我正在尝试重现此问题,但无法成功。
我刚刚更新到最新版本,这个主题组件似乎运行正常。
@merefield 感谢您的回复,是的,我们正在使用默认主题。您可以在 https://community.escapecollective.com/ 上自行查看。这是另一个展示问题的视频:

您的 JavaScript 控制台有显示任何内容吗?
@merefield 什么都没有
你好 ![]()
这看起来是 Topic Cards 主题组件的一个问题。当你点击主题标题时,它也会强制进行整页加载,这会导致这里出现问题。如果你通过点击标题以外的任何地方打开一个主题,那么 Guest Gate 就可以正常工作,因为它不会强制页面重新加载,所以只会发生 SPA 加载。
请在 Topic Cards 主题组件主题中报告此问题。
你好 @Don
是的,你说得对,如果我禁用主题卡片组件,一切都会按预期工作。我将在主题卡片线程中发帖,因为我们需要这两个组件。
谢谢!
主题列表预览也有一个类似主题卡片的宽幅版式选项,名为“图块”。它目前可以与 GG 一起使用。也许您可以在等待主题卡片修复的同时尝试一下。
超棒的组件
,我想知道是否可以在 custom_gate.little_text 字段中使用换行或段落
感谢大家的反馈
你好 ![]()
是的,绝对可以。由于 custom_gate.little_text 被渲染为 htmlSafe,你可以在其中使用 HTML。例如,你可以使用 <br> 进行换行,或使用 <p> 标签分隔段落。
例如:
第一行。<br>
第二行。
或者
<p>第一段。</p>
<p>第二段。</p>
你好 ![]()
抱歉回复晚了。
目前还没有相关的设置,但你可以通过一个简单的主题组件来实现这个效果。
.d-modal.gate {
.d-modal__title {
margin: auto;
}
}
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 分支




