这太棒了,@angus。非常感谢。
视频总是很好的——我非常赞同让事情尽可能简单,但我不认为从 @angus 整理的这些资源中获取关键值需要视频。这些资源提供了你实现特定目标所需的代码(例如创建有效的主题自定义字段或分类自定义字段)。视频可能只是 @angus 或其他人讲解如何实现该资源,但这很直接,我们完全可以在这里把步骤列出来。
需要明确的是,这些资源并不是那种你可以直接“即插即用”并自定义论坛的插件。相反,它们高效地帮助你理解如何编写自己的插件中的自定义字段。
我是这样使用这些资源的:
你需要在 config/settings 中添加你想要的字段名称和类型。这些资源中的代码使用了在那里定义的变量。因此,在那之后,你实际上不需要对代码做太多自定义修改就能让它在自己的插件中运行——plugin.rb 及其他地方的变量会引用 config/settings,然后就能正常工作。
更新 config/settings 后,你可以直接按照代码操作,将其添加到你的插件中:
-
从 plugin.rb 中的代码开始,将其添加到你自己插件的 plugin.rb 中以创建自定义字段。
-
然后前往 initializer(位于 assets/javascripts/discourse/[custom-field-initializer]),获取用于初始化自定义字段并允许将其保存到服务器的代码。
-
接着在视图层创建表单,这是用户(或者如果你的应用自动添加该字段,则是你的应用)输入自定义字段值的地方,此处(assets/discourse/connectors/[plugin-outlet-name]/[your special template].hbs)。
-
@angus 已经设置好这些,你需要在一个会被插入到 Discourse 模板中的插件出口(plugin outlet)中添加自定义字段的表单。该表单的设置位于 此处(assets/javascripts/discourse/lib/[custom-field-name].js.es6),因此你可能也想自定义它以确保表单正常工作。
@angus,如果我说错了什么,请随时纠正。
在按照上述步骤设置自定义字段并熟悉之后,我开始进一步自定义(例如,在表单功能上更有创意),但这确实是一个极其有帮助的起点,为我节省了大量时间。
完成之后,我确实有一些问题(就像我之前问的那样),但从那里继续来看,在 Dev 频道获得回复似乎是最有帮助的方式。