Collections

:information_source: Summary User created collections of linked Topics
:hammer_and_wrench: Repository Link https://github.com/Alteras1/discourse-collections
:open_book: Install Guide How to install plugins in Discourse

Preview

Mobile

Collections

This allows users to create collections of Topics that are visible when viewing said Topics. Collections may include any URL and will be visible on any linked Topic. Collections can be organized into sections, and any changes to a collection is reflected on all linked topics. There is no restriction on the Topic being linked, so users can create a collection across categories/tags.

Title & Description

Optional field available for input. If provided, these will be displayed at the top of the list.

Sections

Optional organizational feature. By adding a section header, the collection can be divided into sections, allowing collapsible sections to be displayed.

Subcollections

Users can also create a subcollection, which is only displayed for a single topic, allowing users to link relevant URLs (i.e. specific posts/external resources) only for the single topic. Any topic URLs added will not be linked.

Permissions

The plugin allows any user to create a collection for their own Topics. By default, users can only link to their own Topics, and must add other users as maintainers, who can add their own Topics to the collection. This setting can be disabled, allowing only specific groups full control over any collection (by default Staff & TL4).

Permissions Demo

Settings

Include a table of settings and setting descriptions

Name Description
collections enabled Enable/disable the plugin. Default: true
collection by topic owner Allow topic OP to create collections. Default: true
collection by topic owner allow groups Restrict topic OP who can create collections. Limits collection by topic owner. Default: TL1
collection modification by allowed groups Groups allowed to create/modify any collection. Default: Admin Moderators TL4.

Alternatives

This plugin is heavily inspired by (and was at one point based on) the Discourse Doc Categories plugin. While the Doc Categories plugin has a good indexing mechanism and the display is great, the design was meant for wiki style pages, where everything is collated in a single category. Similarly, the indexing relies on formatted text input in a separate Topic, which has its own pros & cons.

The DiscoTOC - automatic table of contents theme component also allows for organizing links outside of the post body, but is limited to a single topic.

If your purpose is just a wiki style organization, Discourse Doc Categories would be a better fit. If you just need only some pages to have linked Topics, DiscoTOC - automatic table of contents would be better.

Notes

This was originally designed to support the forum I am apart of migrate over to Discourse. As a writing focused forum, separate topics are maintained by users for different purposes, resulting in a situation where links between topics across categories is practically required. To help facilitate this, I’ve created this plugin to support users self-organize.

There is an alternate timeline where this is just a theme component, where indexing would occur with user inputted divs with URLs to other post. But after developing 90% of the tools, wizards, and code to do it, I realized it just wasn’t worth it and that the user would likely skip over every tutorial written and still complain about why things weren’t working. So that path was ditched. It honestly isn’t a bad solution, as it would be far more lightweight than a plugin, but it would’ve put a lot of unnecessary burden on users to make sure they had the correct formatting on not just one post, but on multiple.

I have currently marked this as experimental, as I’m still not 100% set on the UI features (ie icons) and the permissions system. Also, I need to add automated unit tests.

9 Likes

FYI: all videos were broken :thinking: (iPad)

1 Like

Huh, I thought iOS Safari supported WebM…

I’ve swapped out the videos for MP4. Ty!

4 Likes