api.addSaveableUserOptionField 是做什么用的?

几乎没有关于此的文档,并且插件 API 文件没有注释来解释此函数的使用。此外,我唯一能看到它使用的地方是在插件中,而不是在核心中。那么 api.addSaveableUserOptionField() 具体是做什么的?使用它是否需要额外的配置?

我不知道,但这是我发现的。\n\n但首先——我的问题是,你为什么关心?你想做什么吗?但也许如果你想创建一个具有用户选项的插件,这就是如何做到。它不用于核心,因为它是一个钩子,特别是供插件拥有自己的用户选项。\n\n[quote="NateDhaliwal, post:1, topic:381049"]\naddSaveableUserOptionField\n[/quote]\n\n看起来它在 Chat 插件中使用,就像这样:\n\ndiscourse/plugins/chat/assets/javascripts/discourse/initializers/chat-user-options.js at main · discourse/discourse · GitHub UserUpdater。\n\ndiscourse/plugins/chat/plugin.rb at main · discourse/discourse · GitHub

1 个赞

是的,我计划在一个插件中设置用户设置。我之前看到聊天和AI(我没记错的话)使用了此功能来添加用户设置,所以我想知道是否有文档记录了实现方法。

1 个赞

回到这个问题,这里似乎有更多信息。

这现在列出了 3 个函数:addSaveableUserField(), addSaveableUserOption(), 和 addSaveableCustomFields()

第一个似乎是指添加和保存管理员定义的自定义用户字段。然而,后两个不太清楚。它们是否需要一个插件才能在后端使用 register_custom_user_field :...?是否需要做更多的事情,还是可以在主题组件(TC)中使用?

谢谢。

1 个赞

看起来它适用于通过用户体验(UX)添加的自定义字段和通过插件添加的自定义字段。对于自定义字段,我相当确定它们的名称类似于 user_field_1。例如,您可以使用数据浏览器(data explorer)查看表。或者,它可能只意味着通过用户体验(UX)添加的字段(“管理员定义的个人资料字段”),在这种情况下,您将使用创建它时给它的名称。我建议两种方法都试试。

而且 GitHub 宕机了,所以我无法在那里查看代码。

1 个赞