通过 JavaScript/插件 API 访问自定义用户字段

您好,我曾尝试实现 Our solution for blurring NSFW content - #5 by bartv - 但不幸的是,代码不再有效。
我在这里有点卡住了,而且我找不到关于 discourse JavaScript API 的任何文档,或者如何检索自定义用户字段。

我尝试将链接的代码片段添加到我的站点主题的 header.html 部分。
JavaScript 中可访问的对象 const user = api.getCurrentUser(); 似乎包含一个 custom_fields 属性,而不是引用的帖子中的 user_fields

但是它是空的,或者我不知道如何正确查询/填充它。我感觉我需要一个实际的 Ruby 插件来访问这些数据。

我将非常感谢您对此问题的任何帮助,或指导如何再次获得相同的功能。
我需要的功能是根据自定义用户字段向 body 添加自定义 css-class。

感谢您的阅读 o/

如果您查看用户配置文件的 .json 输出,您会看到 user_fields 记录(例如 https://meta.discourse.org/u/pfaffman.json,只是这里没有自定义字段)。这就是您在 UX 中添加的用户字段所在的位置(它们实际上是一种特殊的 user_custom_field)。user_custom_fields 似乎不在主题流中的用户记录中。我不确定它们是否曾经在那里然后消失了(这可能是一个错误)。您需要确保您的用户字段在这些设置中可见(例如,显示在用户卡片上?)。

根据我现在看到的情况,您需要创建一个插件来将这些自定义字段添加到序列化器中。

如果您可以使用组而不是自定义用户字段,您也许可以解决您的问题。

2 个赞

这就是您在 UX 中添加的用户字段所在的位置(它们实际上是一种特殊的 user_custom_field

我明白了,这解释了变量命名。谢谢。

我认为 /u/user.json 端点仅公开公共字段,因为它可公开访问。鉴于问题的性质,我怀疑人们是否希望他们的 NSFW 偏好在用户卡上公开。因此,我将首先研究使用群组作为一种变通方法 :smiley:

2 个赞