登录重定向和/或群组页面横幅组件

此组件允许您在用户登录后将他们重定向到任何您喜欢的位置,还可以在群组(/g)页面上放置一个欢迎横幅。

它的两个部分是独立构建的,因此您可以将用户重定向到任何您想去的地方,或者仅将其用于在群组页面上放置横幅。默认行为是将新用户重定向到群组页面,并在那里有一个欢迎横幅鼓励他们加入群组,以帮助他们与您的社区互动。

您还可以使用此组件在用户达到特定信任等级时,在登录时将其重定向到特定页面,或者在用户加入的群组数量低于您选择的数量时进行重定向。

首次登录重定向

一个 Discourse 主题组件,它将没有群组成员资格的用户重定向到一个自定义页面,并显示一个可自定义的欢迎横幅。

特性

  • :counterclockwise_arrows_button: 智能重定向 - 在登录时将没有群组成员资格的用户重定向到自定义页面
  • :artist_palette: 可自定义横幅 - 在群组页面上显示彩色欢迎横幅
  • :gear: 完全可配置 - 独立启用/禁用重定向和横幅
  • :bust_in_silhouette: 基于群组的逻辑 - 一旦用户加入任何群组,即停止重定向
  • :bullseye: 信任等级感知 - 横幅可见性可根据信任等级限制
  • :rainbow: 彩虹渐变 - 引人注目的 6 色渐变背景(带有切换到纯色的选项)
  • :mobile_phone: 移动响应式 - 横幅适应移动屏幕

安装

  1. 在 Discourse 管理控制台中,转到 自定义 → 主题 → 组件,然后点击 安装

  2. 选择 来自 Git 仓库 并粘贴:

    https://github.com/focallocal/first-login-redirect
    
  3. 安装后,将组件添加到您的活动主题中

工作原理

重定向逻辑

  • 检查用户是否是任何群组的成员
  • 检测他们何时导航到主页
  • 将他们重定向到配置的 URL(默认值:/g
  • 一旦他们加入任何群组,就停止重定向
  • 可以独立于横幅禁用

欢迎横幅

  • 默认在群组索引页面 (/g) 上显示
  • 可见性由信任等级设置控制
  • 可以独立于重定向禁用
  • 用户达到信任等级 1 后自动隐藏
  • 使用 before-groups-index 插件插口定位在群组列表顶部

自定义

主题设置(管理面板)

所有自定义都可以在 Discourse 管理面板中完成,无需编辑代码!

  1. 转到 管理 → 自定义 → 主题
  2. 点击包含此组件的主题
  3. 转到 设置 并找到“首次登录重定向”部分

可用设置:

重定向设置:

  • 启用重定向:打开/关闭重定向功能(默认:true)
  • 所需最少群组数:用户必须加入多少个用户创建的群组后重定向才会停止(默认:1)
    • 自动群组(如 trust_level_0, everyone)不计入
  • 重定向 URL:将没有群组的用户发送到哪里(默认:/g
    • 示例:/g (群组), /categories, /about, /latest

横幅设置:

  • 显示横幅:打开/关闭横幅(默认:true)
  • 最低信任等级:看到横幅的最低信任等级(0-4,默认:0)
  • 最高信任等级:看到横幅的最高信任等级(0-4,默认:4)
  • 横幅标题:主要的较大文本
  • 横幅副标题:较小的解释性文本

排版:

  • 标题字体大小:主标题的大小(默认:2.5em)
  • 副标题字体大小:副标题的大小(默认:1.25em)
  • 文本阴影启用:切换文本阴影以提高可读性
  • 文本发光启用:切换外部发光效果

颜色:

  • 使用渐变:启用/禁用渐变(如果禁用,则使用纯色)
  • 渐变颜色 1-6:自定义渐变中的每种颜色
    • 默认:粉色 → 橙色 → 黄色 → 绿色 → 青色
    • 将“使用渐变”设置为 OFF 以使用颜色 1 创建纯色

布局:

  • 横幅内边距:横幅内部空间(默认:3rem 2rem)
  • 边框半径:角落圆度(默认:12px,使用 0 为方形)

示例

仅对 TL0 显示(新用户):
设置 最低信任等级 = 0,最高信任等级 = 0

除管理员外对所有人显示:
设置 最低信任等级 = 0,最高信任等级 = 3

纯色横幅:
关闭“使用渐变”并将颜色 1 设置为您想要的颜色(例如,橙色为 #FF5722)。

双色渐变:
打开“使用渐变”并将颜色 1-3 设置为一种颜色,颜色 4-6 设置为另一种颜色。

更大的文本:
将标题设置为 3em,副标题设置为 1.5em

无效果:
禁用“文本阴影”和“文本发光”以获得扁平文本。

禁用重定向(仅横幅)

删除或注释掉文件:
javascripts/discourse/api-initializers/first-login-redirect.js

更改信任等级要求

在两个初始化程序文件中,更改:

currentUser.trust_level === 0

为:

currentUser.trust_level <= 1  // TL0 和 TL1

技术细节

  • API 版本:1.8.0(现代 Discourse API)
  • 组件类型:带有模板标签的 Glimmer 组件
  • 插件插口before-groups-index
  • 兼容性:Discourse 2.8.0+

故障排除

问:重定向不工作
答:清除浏览器会话存储(sessionStorage)并使用新的信任等级 0 帐户进行测试

问:测试时横幅不显示
答:验证您是否在 /g 路由上,并以 TL0 用户身份登录,或检查您在管理员中设置的值。检查浏览器控制台是否有错误。

问:重定向循环
答:会话存储检查应能防止这种情况。如果发生,请清除浏览器缓存和会话存储。

许可证

MIT — 公共幸福运动

您好,我看到您已经创建了一些主题组件。您是否愿意加入 @theme_authors 组,以便您可以在 Theme component 类别中创建主题?谢谢。

1 个赞

我更像是一个项目经理,但是人工智能让编写更紧凑的代码变得容易多了,所以当然可以。谢谢。