Adding an interface adjacent to a conversation (with a plugin)


I’d like to create a plugin that integrates a separate user interface with a topic. This is what I’m thinking:

So the topic would be as normal, except each post can have a separate, but linked, interface. If a post has a linked interface, it needs to be displayed in line with the post, and the following posts would be pushed down.

In my use case, the interface would allow the user to produce simple graphs, to complement the text in their post. The data would be stored with the post (similar to the polls plugin?). In fact, the whole thing would be similar to the polls plugin, if the poll were off to the side rather than inline in the post.

Is such a thing possible in a Discourse plugin?
I guess the main issue would be extending the UI?

Any questions or thoughts are appreciated!

(Cortlandt Winters) #2

Hi Paul,

I have been thinking of some similar types of options as when I think of ways to extend and use discourse, I keep on wanting the discussion to be about something or collaborating with something.

I’m sure it’s possible, but there are definitely some aspects to really think about.

The first and most obvious concern is the layout. You definitely want any layout you create to work somehow on a phone in portrait mode. Space gets tight pretty quickly if there is a subject, a conversation and a currently edited post, possibly also with a preview. If the graph interface is an interface in and of itself, that could really take some additional thought.

Another concern is how the data is stored, but it sounds like you have this thought out and are going to go with the poll style which I think makes sense. There are other options that I think would get messy.

Finally, one other thing to think about is covering the process of administering this kind of post. For example what would happen if someone were to move a graph post to a non graph thread? There may be a number of admin operations to cover like that. I’m not sure, but those are the things that occur to me.

Please let us know how it goes as the overall concept is worth exploring, though it may be tricky.


Hi Cortlandt,

Thanks for your reply. The ability to extend a discussion thread in a domain-specific way would definitely be useful. Imagine a photography forum, where a user can post a photo, and ask for help in post-processing it. Other members could hit reply, use the interface to adjust the curves or whatever, write a comment, and hit post.

Like I said, I think I could do it in-line in the post, but other layouts would be tricky. It may require a generalisation of the main topic template, so that extra “columns” can be added to the sequence of posts. Like you say, mobile would be tricky, but it sounds too hard right now.

After trawling through Discourse code, I’m leaning towards a custom solution, maybe with Meteor. Although, Discourse certainly is pretty…