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

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

安装此主题组件

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

您还可以使用此组件将低于特定信任级别的用户在登录时重定向到某个页面,或者重定向已加入群组数量少于您所选数量的用户。

首次登录重定向

一个 Discourse 主题组件,它会将没有群组隶属关系的用户重定向到一个自定义页面,并显示一个可自定义的欢迎横幅。

特性

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

安装

  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)并使用全新的 TL0 账户进行测试

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

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

许可证

MIT — 公共幸福运动

1 个赞