Developing a Forum in dotCMS
Jun 06, 2012
The forum plugin was developed as a way to easily deploy the common functionalities of a forum on your dotCMS website. It offers a solution where discussions can take place, with forum members able to contribute and subscribe to topics and threads.
Although a plugin needs to be deployed to take advantage of all of the features, the forum is based mainly on velocity code, structures and existing macros.
The forum functionality includes some of the common features expected out of a forum, including:
- Discussions comprised of Topics, Threads, and Replies (respectively parents and children tied together by relationships).
- Forum contributors can add contribute by adding threads or replies exclusively form the front-end
- Forum contributors should be able to subscribe to Topics and Threads, allowing them to be notified of updates by email
- It should be easy to set-up, requiring the creation of three pages: Topic Listing, Topic Detail, and Thread Detail.
- Flexibility of placing the Forum in any folder or as its own host
- Forum administrators can completely moderate topics, threads, replies, and users.
- Contributors need to be registered and logged-in users
The forum is basically made up of 3 pages: the Topics listing (or Forum Landing), the Topic Detail, and the Thread detail.
The Topic Listing page is basically a list of all "Topic" content which have threads. In this case we call them Topics, but they are basically sub-forums used to organize threads into themed areas of discussion. What makes this page unique is that it is the only of the three page which is not dynamic, rather it is created by adding the "Topic Listing" widget on a web-page.
For each topic, we display the last modified thread. Clicking on any of the topics will redirect a user to the Topic detail page where all of the children threads of a topic are listing.
The Topic Detail (or Thread Listing) page is a detail page which displays thread content which have a parent relationship to the topic passed in the URL. Clicking on a Thread will redirect the user to the detail page for this Thread.
Forum Contributors have the ability to Subscribe to a Topic, sending email notifications when new Threads are created. They also have the ability to create new threads, in which case we display a front-end content submit form, and automatically relate the thread to the Topic display in the page (hidden from the user).
The Thread Detail page is similar to the Topic detail, but instead displays a list of Reply pieces of content with a parent relationship to the Thread passed in the URL.
On this page, Forum Contributors have the ability to submit their replies via the "Add Reply" submission form, and can also Subscribe to the thread to receive email notifications when new replies are added.