Enable tagging only in some categories

This is something I’d also like to see.

On my first (imported) forum, I needed a classified ads category.

Since on Discourse, there is no such thing as a “folder” containing categories like there is on other engines like vbulletin or phpbb, I had basically three choices:

  1. A single ads category for both “buy” and “sell” ads, where users would add by themselves [BUY] or [SELL] as their topic’s title prefix (so 2000s…)
  2. A single ads category where users could use tags “buy” or “sell”. The most convenient by far, but we didn’t have any use of tags on any other categories, and users would see the tag field in the composer for any category, which would be confusing.
  3. Having 2 ads category at the top level: “buy”, and “sell”. This is the choice we made;

I’m importing another, larger forum, and I have the exact same “issue”, except that I’d need tags for 2 categories instead of 1: a classified ads category, and an “other languages” category containing only posts in foreign languages that would use a specific tag for the language in which they are written, such as “hebrew”, “danish”, etc.

And again, we don’t have the need for tags for any other category.

I’d need the tag selector in the topic list navigation bar for both these categories, but not for other categories.
I could easily hide it when necessary with a bit of CSS, but the major problem is the tag input in the composer, which can’t be displayed or hidden at will…

I guess at this stage the best way would be to override the composer tagValidation method.
Each time a category is selected in the composer, it would hide or show the tag input, based on the selected category.

When the tag fields is hidden, it would look like this then, with an empty space:

Also it could potentially break the layout if we use plugins or theme components that have custom composer fields, like the location plugin.