宾客门户主题组件

你好 @KhoiUSA :wave: 谢谢,我合并了一个更新:DEV: Migrate FA5 icons to FA6 by VaperinaDEV · Pull Request #25 · VaperinaDEV/discourse-guest-gate-theme-component · GitHub :slightly_smiling_face:

6 个赞

谢谢更新!

3 个赞

您好 - 我们尝试在新 Discourse 实例上安装此组件,但在显示模态框时收到错误:

链接指向 此帖子

考虑到该帖子来自 2023 年,令人惊讶的是此组件需要此更新。因此,我想知道我们是否在安装过程中做错了什么?

您好 :waving_hand: 能否移除组件并重新安装此组件:GitHub - VaperinaDEV/discourse-guest-gate-theme-component: Forced login / registration popup insired by Quora 以确保您使用的是正确的组件?

1 个赞

太好了,现在可以用了!

不过,我在更新模态框中的文本时遇到了困难。我可以成功更新标题,但似乎无法编辑正文。是我编辑错了字段吗?

原来我们只需要启用相应的设置:

1 个赞

你好 @Don 感谢你提供的这么好的组件。我明白该组件的意图(实际上是标题)是触发访客/匿名用户。是否可以添加基于组或信任级别的条件设置?我正试图为访问特定类别中任何主题的已登录用户显示一个模态框。这将补充 Discourse-subscriptionscategory-lockdown

您好 @Don

感谢您的组件。我们在论坛 https://community.escapecollective.com/ 上使用了您的插件。但我们遇到了一个问题:当 max_guest_topic_views 参数设置为大于 1(在本例中为 3)时,模态窗口会显示片刻然后立即消失。我认为这是因为 Discourse 在加载 JS 时会执行“软”页面刷新(Ember SPA 路由),此时视图计数器会被重置,模态窗口会立即消失。我认为这发生在 Discourse 更新到 3.5.0.beta9-dev 版本之后。请帮助我弄清楚这个问题。

ezgif-5e4b84ca418b8a

作为一个数据点,我正在尝试重现此问题,但无法成功。

我刚刚更新到最新版本,这个主题组件似乎运行正常。

1 个赞

@merefield 感谢您的回复,是的,我们正在使用默认主题。您可以在 https://community.escapecollective.com/ 上自行查看。这是另一个展示问题的视频:

ezgif-7af28737d709fa

您的 JavaScript 控制台有显示任何内容吗?

@merefield 什么都没有

1 个赞

你好 :wave:

这看起来是 Topic Cards 主题组件的一个问题。当你点击主题标题时,它也会强制进行整页加载,这会导致这里出现问题。如果你通过点击标题以外的任何地方打开一个主题,那么 Guest Gate 就可以正常工作,因为它不会强制页面重新加载,所以只会发生 SPA 加载。

请在 Topic Cards 主题组件主题中报告此问题。

2 个赞

你好 @Don
是的,你说得对,如果我禁用主题卡片组件,一切都会按预期工作。我将在主题卡片线程中发帖,因为我们需要这两个组件。
谢谢!

1 个赞

主题列表预览也有一个类似主题卡片的宽幅版式选项,名为“图块”。它目前可以与 GG 一起使用。也许您可以在等待主题卡片修复的同时尝试一下。

1 个赞

大家好,
感谢您的插件,它运行得很完美。
我只有一个问题:我没有看到任何居中标题的设置。这正常吗?

超棒的组件 :+1:,我想知道是否可以在 custom_gate.little_text 字段中使用换行或段落

感谢大家的反馈

1 个赞

你好 :waving_hand:

是的,绝对可以。由于 custom_gate.little_text 被渲染为 htmlSafe,你可以在其中使用 HTML。例如,你可以使用 <br> 进行换行,或使用 <p> 标签分隔段落。

例如:

第一行。<br>
第二行。

或者

<p>第一段。</p>
<p>第二段。</p>
1 个赞

你好 :waving_hand:

抱歉回复晚了。

目前还没有相关的设置,但你可以通过一个简单的主题组件来实现这个效果。

.d-modal.gate {
  .d-modal__title {
    margin: auto;
  }
}
1 个赞

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 个赞