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:
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.