用例
我们正在努力改善社区的入职体验。自然而然地,我们希望利用我们所了解的用户信息,根据他们提供给我们的信息来执行/显示某些操作。
今天,我们的用户通过 OIDC 集成开始他们的账户创建,通过创建我们公司的账户。他们在 OIDC 中提供电子邮件、姓名和用户名,然后 OIDC 会将他们重定向回 Discourse。
问题
我们现在希望让他们填写一些额外的用户字段——这很好,因为 Discourse 提供了这个功能!不幸的是,我们无法根据先前字段的响应来显示字段。例如,我们想问“哪个角色最能描述您?”选项包括 developer、administrator 和 analyst。
如果他们选择 developer,我当然想问他们偏好的编程语言是什么。我之后也会将他们添加到开发人员用户组。
如果他们选择 analyst,我想问他们一系列不同的问题,并将他们添加到不同的用户组。
解决方案建议
如今,网络上的许多表单选项都提供条件表单字段(例如,您从哪里听说我们?如果选择了“其他”,则会出现一个附加字段来说明原因)。如果您能像处理新主题表单模板一样,开始朝着类似(但更强大)的方向发展,那就太好了,但需要增加一个能够依赖于另一个字段 ID 的功能,特别是该字段的输入。例如,它可能看起来像这样:
- type: dropdown
id: user-type
choices:
- "Developer"
- "Application Administrator"
- "Analyst"
attributes:
none_label: "Choose your role..."
label: "Which option best describes your job"
validations:
required: true
- type: dropdown
id: developer-type-programming-language
depends: user-type
choices:
- "Developer"
choices:
- "Developer"
- "Application Administrator"
- "Analyst"
attributes:
none_label: "Preferred programming language..."
label: "What is the primary programming language used in your role?"
validations:
required: true
在此示例中,所有用户都会被问到第一个问题。如果用户从下拉列表中选择 Developer,那么表单上会出现第二个问题,询问他们偏好的编程语言。
这种条件字段改进可以用于用户入职流程以及最初设计的新主题的地方。
6 个赞
pfaffman
(Jay Pfaffman)
2024 年4 月 27 日 15:23
3
6 个赞
pfaffman
(Jay Pfaffman)
2024 年4 月 27 日 17:51
5
2 个赞
Heliosurge
(Dan DeMontmorency)
2024 年4 月 28 日 02:45
6
该插件实际上非常直观。
底部的复选框添加了身份验证选项。
然后填充将激活下一个用户自定义字段的触发器响应。在我的例子中,它是耳机数量大于无。
填充后,然后定位您想要显示的自定义用户字段。在我的示例中,如果数量为 1-6+,用户将被提示输入主和次头显。
如果将其扩展到实验性的表单模板,那将非常棒。
5 个赞
isaac
(Isaac Janzen)
2024 年4 月 29 日 12:24
7
它已经在我的待办事项列表上有一段时间了……我这周一定会加上去的
4 个赞
pfaffman
(Jay Pfaffman)
2024 年5 月 1 日 15:50
11
Isaac Janzen:
我以为 我已经写过了……
哎呀!抱歉,我也忘了。
是否可以在用户个人资料中设置这些条件,而不是仅在创建帐户页面上设置?(我很确定我理解它只在帐户创建页面上起作用——我有一个人想让用户回去输入内容,并强制执行这些规则。)
2 个赞
isaac
(Isaac Janzen)
2024 年5 月 1 日 16:00
12
Jay Pfaffman:
我相当确定我明白它只在账户创建页面上运行
是的,这是该插件目前唯一受影响的位置。
让我确保我们理解一致:
您是希望能够通过 /preferences/profile 更新公开的 自定义用户字段,并且我们应用与创建账户模态框相同的条件隐藏/显示逻辑吗?
例如,如果“自定义字段 1”的值为“显示自定义字段 2”,则显示第二个自定义字段?
2 个赞
pfaffman
(Jay Pfaffman)
2024 年5 月 1 日 16:04
13
是的。我希望所有 custom_user_fields(即“注册后可编辑”)都能在 /preferences/profile 页面上应用相同的规则。
我认为是这样。在创建账户模态框中生效的规则将在个人资料页面中生效。
4 个赞
isaac
(Isaac Janzen)
2024 年5 月 1 日 16:07
14
我认为这将是一个很好的补充。将条件字段逻辑移到个人资料页面应该 会很容易。
这可以作为 pr-welcome 的一个好例子,但我也可以在接下来的一个月左右看看。
5 个赞
pfaffman
(Jay Pfaffman)
2024 年5 月 1 日 16:11
15
Isaac Janzen:
将条件字段逻辑移至个人资料页面应该 会很容易。
嗯,也许对你来说是这样!我试了一下,很快就迷失了方向。看起来应该和把一些东西复制到首选项页面一样简单,但具体是哪些东西就不是我能轻易理解的了。
Isaac Janzen:
我也可以在接下来的一个月左右看看。
那就太好了!
4 个赞
stephtara
(Stephanie Booth)
2026 年2 月 9 日 06:21
17
我也有类似的使用场景!在注册时以及注册后可编辑的用户字段中都是如此。(如果人们养了一只患有糖尿病的猫,我想要更多关于这只猫的信息;如果他们在家里进行测试,我们想知道如何进行;等等)
(我看到有人在某个地方提到将填写某些用户字段作为更改信任级别的条件,这对入职培训也超级有趣!)
ToddZ
2026 年2 月 9 日 10:59
18
那个插件看起来很酷!我之前没听说过它。如果它可以扩展到用户个人资料字段,那听起来肯定能满足 Jay 和 OP 的需求。
但这个问题也让我想起了 Pavilion Custom Wizard Plugin ,以及它是否可以应用于这种情况。我没有用过它,所以不确定它的能力,但它确实提到可以进行条件设置 和管理用户自定义字段 ……