您好,
我想知道是否有人为主题创建了多个自定义字段?我曾成功使用此插件创建了一个自定义字段:GitHub - pavilionedu/discourse-topic-custom-fields: Discourse plugin showing how to add custom fields to Discourse topics
但是,我在创建多个自定义字段时遇到了麻烦。有人有可用的代码示例愿意出售或分享给我吗?我可以修改它以满足我的需求,但只是需要一些帮助来开始。我需要的 2 个新字段是 price(字符串)和 url(字符串)。我也很想在主题中添加一个图片上传字段,但还没有看到类似的东西。
谢谢!
ghassan
(Ghassan Maslamani)
2
你好,
我很乐意帮助你。我最近创建了一个插件,其中使用了主题自定义字段(https://meta.discourse.org/t/discourse-chain-topics-plugin/233088)。
在我的插件中,我为每个主题创建了两个额外的整数类型字段。同样,你可以添加任意数量的字段。最终,主题/用户自定义字段是一个 JSON 对象,你添加的每个字段都将作为键/值对存在于 JSON 对象中,其中键是字段名,值是字段的值。
你上面提到的示例(这也帮助了我)是通过在管理面板中添加额外字段来构建的,你可以在其中选择字段的类型和名称。但是,你不一定需要将额外字段与管理面板相关联。同样,你可以添加任意数量的字段(不确定这会如何影响性能)。
最后,如果你需要任何支持,请随时 ping 我/给我发消息。你也可以在 https://ghassan.blog 找到我的联系方式。
祝你好运。
3 个赞
cercal
(Guilherme Cercal Augusto)
3
您好,我遇到了同样的问题……现在我找到了如何使用多个自定义字段来完成它!
除了设置 plugin.rb,您还需要为每个字段拥有单独的文件(js 初始化器和 .hbs 和 .hbr 模板)!
discourse-topic-custom-fields 插件有一个名为
plugins/discourse-topic-custom-fields/assets/javascripts/discourse/initializers
在此文件夹中,您有一个名为:topic-custom-field-initializer.js.es6 的文件
对于单个字段,您可以编辑此文件,但对于多个字段,您应该有其他文件,例如:
topic-custom-field-url-initializer.js.es6 和 topic-custom-field-price-initializer.js.es6
在每个文件中,您将有 3 行带有变量 api 调用方法 registerConnectorClass,您需要更改第二个参数并添加一个后缀,以便在 3 行中的每一行都有一个独占的字段类名称
别忘了更改每个文件中的 exports 名称(在“exports default {…”之后)。
另外,对于 hbs 和 hbr 文件,您也需要为每个字段创建单独的文件,只需复制粘贴相同的文件,然后为每个文件名添加一个后缀,例如:
1 个赞