# Topic Templates

**URL:** https://meta.discourse.org/t/topic-templates/18282
**Category:** Feature
**Created:** [July 30, 2014, 6:55pm UTC](https://meta.discourse.org/t/topic-templates/18282 "2014-07-30T18:55:51Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![InsaneMosquito](https://avatars.discourse-cdn.com/v4/letter/i/7cd45c/32.png) [@InsaneMosquito](https://meta.discourse.org/u/InsaneMosquito)
#### Post date: [July 30, 2014, 6:55pm UTC](https://meta.discourse.org/t/topic-templates/18282/1 "2014-07-30T18:55:51Z")

</div>

Before I describe what I’m seeking, I wasn’t sure if this should be a feature request or a plugin request. If I’ve classified it incorrectly, please let me know.

**Problem:** Discussion boards often have topics that follow a standard form. It would be easier for users if this form could be associated with a category so that when they attempt to make a topic in that category, the basic layout appears in the text box.

**Use Case 1:** Technical Support Form  
Basic information is generally required when troubleshooting a technical issue.

- Operating System
- Browser and browser version
- Plugin version
- etc

**Use Case 2:** Feature requests 😄  
A standard feature request makes browsing through new requests easier. It can quickly bullet a list of items explaining what is needed, why it’s needed and provide possible use cases.

- Problem trying to solve
- Use cases
- Brief explanation of why this would help

**Use Case 3** : Gaming community player report  
In gaming communities, it is common to have users report other users for (perceived) rule violations on the game servers. To effectively follow up on these the administrators usually need common data.

- Unique ID of offending player (name, steam id, minecraft name, etc)
- Time of incident (useful to check logs)
- Violation
- Other players that saw the incident

**Use Case 4:** Buy/Sell/Trading request  
On sites that facilitate informal buying/selling/trading of items, it is helpful to have a similar layout for each listing.

- Buy/Sell/Trade  
&nbsp;- Item name  
&nbsp;- Description  
&nbsp;- Price/Looking for  
&nbsp;- Payment method desired

**Use Case 5:** Membership application  
Gaming communities (among others) often offer a step above ‘forum user’ when a user is considered a member of the community. This often grants other privileges and recognition. This usually requires filling out an application of some kind

- Name of player
- Class you generally play as (ie. Orc, Villian, Pyro, etc)
- Experience level of classes
- Availability hours (to plan raids, games, etc)

**How this would help** : In many forms, if an area is expected to confirm to a standard format, the user has two options. The first is to risk it and just post their problem. This generally results in a user being pointed to an announcement thread with the form to fill out and being told to edit or repost. The second option is to follow those instructions by copying and pasting the form into a new topic and then filling it out. Both of these actions require the user to search out the form template before they will be helped.

By providing a means for the site administrators to define a form to be associated with new topics in a category, the user doesn’t have to take the step of copying/pasting the form. It is provided for them.

---

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [July 30, 2014, 7:30pm UTC](https://meta.discourse.org/t/topic-templates/18282/2 "2014-07-30T19:30:55Z")

</div>

Honestly, it sounds like you don’t want a forum but a Tracker (for Bugs, Issues, Features). You really need to pick the software for the job instead of fitting the job into a piece of software

---

<div class="post-metadata">

### Author: ![InsaneMosquito](https://avatars.discourse-cdn.com/v4/letter/i/7cd45c/32.png) [@InsaneMosquito](https://meta.discourse.org/u/InsaneMosquito)
#### Post date: [July 30, 2014, 8:26pm UTC](https://meta.discourse.org/t/topic-templates/18282/3 "2014-07-30T20:26:14Z")

</div>

Perhaps, but the use case for [bugs](https://meta.discourse.org/category/bug), [feature requests](https://meta.discourse.org/category/feature) and [support](https://meta.discourse.org/category/support) is the very board. It’s been built to handle such use cases, I’m trying to simplify gathering important data for those use cases.

---

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [July 30, 2014, 8:42pm UTC](https://meta.discourse.org/t/topic-templates/18282/4 "2014-07-30T20:42:10Z")

</div>

Just because it exists here, doesn’t mean it is appropriate for the forum. Topic Templates don’t make sense to me. If you are wanting to change the forum to look like Tracking Software, use Tracking Software.

You’ll notice the board here doesn’t seem to care if they had templates for each category… they would have built it, if they felt it was needed to serve their purpose. Instead they saw it as a way to have discussions on those items and didn’t care if there was any enforcement to collect certain data. And let’s face it, if they felt it was needed, who better to develop the functionality than those who created the forum platform.

I simply think you are trying to use the software was something beyond its original intention and it seems you’d have better luck using the appropriate software.

---

<div class="post-metadata">

### Author: ![InsaneMosquito](https://avatars.discourse-cdn.com/v4/letter/i/7cd45c/32.png) [@InsaneMosquito](https://meta.discourse.org/u/InsaneMosquito)
#### Post date: [July 30, 2014, 10:33pm UTC](https://meta.discourse.org/t/topic-templates/18282/5 "2014-07-30T22:33:24Z")

</div>

I’m not suggesting topic templates for each category. I’m suggesting templates for _certain_ categories. It would be a minority of the categories (ie. the Computer Support subform, or the Ban Appeal subform). The majority would not have or need this functionality.

---

<div class="post-metadata">

### Author: ![Lid](https://avatars.discourse-cdn.com/v4/letter/l/2bfe46/32.png) [@Lid](https://meta.discourse.org/u/Lid)
#### Post date: [July 30, 2014, 11:26pm UTC](https://meta.discourse.org/t/topic-templates/18282/6 "2014-07-30T23:26:33Z")

</div>

@InsaneMosquito this is not a bad feature per say. I can see that it can be beneficial for certain type of communities and usage. but it is probably not going to be developed as part of the core of the system, This feature is not essential for a discussion platform, and even for communities that could have used it, they can simply achieve the same by copy paste the template from a pinned topic on that category.

if you see a greater need for this feature, and you think that it will improve your user experience tremendously  
You will probably have to develop it as a plugin or get/hire someone to do it for you.

---

<div class="post-metadata">

### Author: ![haiku](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/haiku/32/103858_2.png) [@haiku](https://meta.discourse.org/u/haiku)
#### Post date: [July 30, 2014, 11:28pm UTC](https://meta.discourse.org/t/topic-templates/18282/7 "2014-07-30T23:28:04Z")

</div>

It sounds like a generalised version of this feature request:

> [@Add UI for editing custom per-topic fields](https://meta.discourse.org/t/handy-custom-fields-editor/17607):
>
> Heyah, while working on the topic [permalinks plugin](https://meta.discourse.org/t/beta-topic-permalinks/17606/1), I realised that there is no way for the Administrator to add, configure or edit our new [awesome custom-fields](https://meta.discourse.org/t/deprecating-hstore-meta-data-fields/14962/3) other than going into the Shell or Database and do it manually. Which makes it a quite hidden feature. I’d propose to build a general-purpose modal-dialog similar to the administration interface listing all existing custom\_fields and allowing them to be edited (and maybe other fields added) by administrators. Here is an example sketc…

@cpradio I think you’re missing the intent a bit, this feature is not intended to organise discussion topics, but to standardise how certain kinds of discussions are started. A support forum is a perfectly reasonable scenario for this feature imo, a lot of friction could be avoided by requiring certain info up front. It may not be needed for every community: here on Meta, those requiring support are generally technically competent, a pretty rare thing among support forums (just look at phpBB!). But this will probably change when Discourse goes interstellar 🚀

Also I think the “it’s not been built yet so it can’t be that great” argument is a bit short-sighted, there are plenty of features in discourse that were suggested like this.

And of course, 🌈 Discourse Is Rainbows 🌈, right?

---

<div class="post-metadata">

### Author: ![InsaneMosquito](https://avatars.discourse-cdn.com/v4/letter/i/7cd45c/32.png) [@InsaneMosquito](https://meta.discourse.org/u/InsaneMosquito)
#### Post date: [July 30, 2014, 11:58pm UTC](https://meta.discourse.org/t/topic-templates/18282/8 "2014-07-30T23:58:11Z")

</div>

> [@Lid](#):
>
> You will probably have to develop it as a plugin or get/hire someone to do it for you.

That is a fair response. As I mentioned, I wasn’t sure if this fit better as a feature request or a plugin request.

---

<div class="post-metadata">

### Author: ![Lid](https://avatars.discourse-cdn.com/v4/letter/l/2bfe46/32.png) [@Lid](https://meta.discourse.org/u/Lid)
#### Post date: [July 31, 2014, 12:12am UTC](https://meta.discourse.org/t/topic-templates/18282/9 "2014-07-31T00:12:51Z")

</div>

@InsaneMosquito

I don’t see a problem with it being a topic under feature, this section is essentially for talking about features.  
if it fit under a plugin or core feature it is not that relevant at this point, so I think you are in right place.

I think it is a good thing that you bring up your ideas of features, whether it get accepted or not.  
it gives everyone food for thoughts .

---

<div class="post-metadata">

### Author: ![cpradio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cpradio/32/4970_2.png) [@cpradio](https://meta.discourse.org/u/cpradio)
#### Post date: [July 31, 2014, 1:42am UTC](https://meta.discourse.org/t/topic-templates/18282/10 "2014-07-31T01:42:04Z")

</div>

> [@haiku](#):
>
> @cpradio I think you’re missing the intent a bit, this feature is not intended to organise discussion topics

No I didn’t. I get what he wants, I’m telling him there are better suited products for it (because there are). I’d never use a forum for tech support… Never. How do you triage? How do you assign it to someone, how do you update its status? How do you track it? Schedule it? etc. It doesn’t make sense in the form of a forum.

> [@haiku](#):
>
> Also I think the “it’s not been built yet so it can’t be that great” argument is a bit short-sighted, there are plenty of features in discourse that were suggested like this.

You missed my point. The Discourse team is doing what he wants, and doesn’t seem to care that this feature doesn’t exist… They tell you in the category description what to enter and felt that was enough. I’m simply indicating, if they took that route instead of creating what was suggested, they don’t see it as a “need to have”.

@InsaneMosquito, I seriously think you should look at a different set of software for this. There are countless free ones out there that do exactly what you want and are designed to do it. I just don’t see why you’d use a forum for this. There isn’t a discussion here, there is triage, resolution, etc.

Maybe there is more to what you are looking for that I don’t see, but from what I can tell you are trying to fit what works best in a Tracking software suite into a forum made for discussions. I just don’t see the fit…(and this is coming from someone who has used a forum for support before, and I’d never go back to that ever!)

---

<div class="post-metadata">

### Author: ![adopilot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/adopilot/32/105040_2.png) [@adopilot](https://meta.discourse.org/u/adopilot)
#### Post date: [July 31, 2014, 6:04am UTC](https://meta.discourse.org/t/topic-templates/18282/11 "2014-07-31T06:04:44Z")

</div>

I also signature and like way of adding templates.

> [@cpradio](#):
>
> There are countless free ones out there that do exactly what you want and are designed to do it. I

I do not aggre with that . Why we need plenty of software. We use disocurse for forum, file sharing, media sharing, announcement sharing, technical support , business support , events, wiki store, fun etc… Before i used 3~10 apps for handling each scenario and that way is not so good. It is pain in the ass get users to work with only one and not with 5 apps. If you measure features that you get by specialized piece of software and what you lose using simple forum perhaps you are going to give up of some fancy features of dedicated software against free form forum because in dedicated software you are going to miss 10 ~ 20 features of disource, and again users do not want to switching apps.

@Lid one of way to get this fast working is to make custom oneboxing plugin for inserting templates. [There is Google calendar plugin which do some kind of tempting posts](https://meta.discourse.org/t/brand-new-plugin-interface/8793/66). What you cloud do is to make plugin which will IFAME you form into topic. I am trying to do same thing if I get working this I am going to share here.

---

<div class="post-metadata">

### Author: ![lightyear](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@lightyear](https://meta.discourse.org/u/lightyear)
#### Post date: [July 31, 2014, 8:08am UTC](https://meta.discourse.org/t/topic-templates/18282/12 "2014-07-31T08:08:51Z")

</div>

> [@InsaneMosquito](#):
>
> That is a fair response. As I mentioned, I wasn’t sure if this fit better as a feature request or a plugin request.

I have developed a [custom content layout plugin](https://github.com/ligthyear/discourse-plugin-custom-content-layouts) that allows one to configure a template, let it match via its archetype or just fall back to the default. The reason I haven’t published it yet, is that we are missing a decent editor to configure those and the [archetype system only really works with my patches](https://github.com/ligthyear/discourse_patches/tree/master/capability_archetypes) which I won’t even try to push before v1 😉 .

Another thing I’d like/have to add at some point is a better handling of the composer per archetype, because – let me be honest – it is anything but extensible at the moment.

But maybe you want to check it out already and let me know what you think.

---

<div class="post-metadata">

### Author: ![meglio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/meglio/32/71444_2.png) [@meglio](https://meta.discourse.org/u/meglio)
#### Post date: [July 31, 2014, 9:35am UTC](https://meta.discourse.org/t/topic-templates/18282/13 "2014-07-31T09:35:29Z")

</div>

This would be a really great feature.

The easiest solution could be a syntax (the same as for polls, but in the category description topic), which would allow to declare forms, which, in turn, will be shown in the New Topic space.

# Example mini-spec

1. Allow for a category prefix (or setting), e.g.:

> Forms: Category Name

1. Allow for simple syntax, probably just use lists as with polls. Example:

> - OS: required select |Windows XP|Windows 7|Windows 8|
> - Can reproduce: checked checkbox |YES|NO|
> - Name: required string(2..80)
> - Phone: optional string(5..18)
> - Problem: required text(20..2000)

The syntax can be very simple, the form is described by a list with the following special keywords:

Datatypes:

- number
- string
- select
- checkbox
- url

Helpers:

- required
- optional
- checked
- positive

Some simple rules:

- The first option in a select is selected by default
- The text values for states of a checkbox are listed the same way as for a select

NB. Do not have `optional` or `required` by default, that might be confusing

### Template

Then we can separate a template with HR, so everything below the last HR is used as a template, where macros are allowed: any of {{macro}}, {macro}, %macro%, %%macro%% and %macro.

---

<div class="post-metadata">

### Author: ![MaSe](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mase/32/105393_2.png) [@MaSe](https://meta.discourse.org/u/MaSe)
#### Post date: [July 31, 2014, 10:11am UTC](https://meta.discourse.org/t/topic-templates/18282/14 "2014-07-31T10:11:16Z")

</div>

There are categories where such templates or forms are really useful, for example, sell or job or dating topics. Many professional forums have categories for job ads, and many general-purpose life forums have categories for sell or dating ads.

---

<div class="post-metadata">

### Author: ![illspirit](https://avatars.discourse-cdn.com/v4/letter/i/49beb7/32.png) [@illspirit](https://meta.discourse.org/u/illspirit)
#### Post date: [July 31, 2014, 8:30pm UTC](https://meta.discourse.org/t/topic-templates/18282/15 "2014-07-31T20:30:27Z")

</div>

I think this would make a great plugin, I would definitely use it.

As for using “other software” for this… that’s just nonsense. I would use this for guild recruitment threads on my site among other things, I’m not going to setup different software just to do that.

---

<div class="post-metadata">

### Author: ![InsaneMosquito](https://avatars.discourse-cdn.com/v4/letter/i/7cd45c/32.png) [@InsaneMosquito](https://meta.discourse.org/u/InsaneMosquito)
#### Post date: [July 31, 2014, 9:35pm UTC](https://meta.discourse.org/t/topic-templates/18282/16 "2014-07-31T21:35:22Z")

</div>

@MaSe and @illspirit, I’ve updated the use cases in the first post to cover what you’d use this for. Thanks for the input.

---

<div class="post-metadata">

### Author: ![meglio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/meglio/32/71444_2.png) [@meglio](https://meta.discourse.org/u/meglio)
#### Post date: [July 31, 2014, 9:52pm UTC](https://meta.discourse.org/t/topic-templates/18282/17 "2014-07-31T21:52:44Z")

</div>

If you think the min-spec above makes sense, give it a like and the staff will probably consider adapting it and moving to their Minispec category.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [July 31, 2014, 11:02pm UTC](https://meta.discourse.org/t/topic-templates/18282/18 "2014-07-31T23:02:35Z")

</div>

This should start out as a plugin. Not a core feature quite yet.

---

<div class="post-metadata">

### Author: ![InsaneMosquito](https://avatars.discourse-cdn.com/v4/letter/i/7cd45c/32.png) [@InsaneMosquito](https://meta.discourse.org/u/InsaneMosquito)
#### Post date: [July 31, 2014, 11:08pm UTC](https://meta.discourse.org/t/topic-templates/18282/19 "2014-07-31T23:08:04Z")

</div>

Thanks for the input @sam. I’ve modified the category.

---

<div class="post-metadata">

### Author: ![DeanMarkTaylor](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/deanmarktaylor/32/102462_2.png) [@DeanMarkTaylor](https://meta.discourse.org/u/DeanMarkTaylor)
#### Post date: [May 14, 2015, 8:29pm UTC](https://meta.discourse.org/t/topic-templates/18282/20 "2015-05-14T20:29:15Z")

</div>

You can now prefill the subject / title and body content in the composer along with selecting a category via a link see:

> [@Creating a link to start a new topic with pre-filled information](https://meta.discourse.org/t/compose-a-new-pre-filled-topic-via-url/28074):
>
> bookmark This documentation explains how to create a link that starts a new topic in Discourse with pre-filled information. person_raising_hand Required user level: All users Sometimes you may want to provide users with a link that opens a new topic composer with certain information pre-filled. This can be useful for various use cases including bug report templates, feature requests, or standardized posts. Constructing the URL Base URL To compose a new pre-filled topic with no extra i…

[Next page](https://meta.discourse.org/t/topic-templates/18282.md?page=2)
