Is there any built in extensibility to the NodeBB composer that would allow you to submit additional data along with a submitted topic or post?
So for example, say you want the users to submit some data to describe their post in a way that is useful for your system, is there a built in extension point that would allow you to add a field (text, select, whatever) to the composer and have that data stored alongside the post?
I was able to achieve something like this by hacking the extended data by using tags that are automatically created when the user fills in my custom fields. It works for this scenario, but it would be great if there was a better way to do this.
In addition to being able to add custom data to posts, it would be great if you could specify that the custom extended fields only apply to some categories in your system.
Please do this! 👍 We need more tutorials and technical guides. I've been trying to immerse myself more in the source and writing plugins so I can write some stuff for the community.
I am wanting to add some fields to the registration page, so I thought I'd write a plugin for it.
It looks like the process would be:
Add a 'filter:register.build' hook function to insert the html for the extra form inputs.
Add a 'filter:user.custom_fields' function to insert the key/value to the userData object.
I looked at the spam-be-gone plugin to get an understanding of how to go about it, but my question is: Is it possible to place my added field(s) at the top of the form -- or anywhere else -- rather than the bottom?
I can also do this by adding my additional html into the register.tpl file and then adding the key/value to the userData object in /src/user/create.js, but I'd rather do it via a plugin as it seems cleaner. I don't need the data to appear on the site (i.e. the user's profile) so just these two things work fine.
The problem is I believe I'd have to do a 'git pull --rebase' each time I wanted to get updates for nodebb which could break things over time. Seems hacky. Plus, it is more maintainable to keep my modifications modular.
So, is there a better way? What's the best way to go about doing something like this? I'm just assuming that doing it via a plugin would be ideal, but if there are better options that are clean, then please let me know.
Lastly, if I wanted to have a function run a check on this info for duplicates during the registration (exactly like the one for username) can you steer me in the right direction on how I'd go about it?