How to replace a forum with a Questions & Answers system?

1
+1
-1

Assume there is a high activity on forum of a Drupal 7 based website. As threads grow and become (too) large, the high traffic shows no interest for many of such threads. Useful posts in it may go out of reach of many.

Just adding a rating system about posts doesn't seem to help. So it seems like replacing such forum with a Questions & Answers (=Q&A) solution is a possible direction to go. Ideally such Q&A system has, as many as possible, features like websites such as drupal.stackexchange.com.

However I don't know how to implement such Q&A solution in Drupal. Any suggestions?

Topics: 

Category: 

1 answer

1
+1
-1

The Answers module, suggested before, is indeed a very good fit as a replacement for a forum. Below are some more details about this module (disclosure: I'm a co-maintainer of it).

About

Some details about the Answers module, from its project page:

Answers enables the implementation of a Question & Answer system in a Drupal site. Users can post questions and other users can answer them.

Head over to its project page for more details.

The question can be about something being searched for (wanted, aka the demand), like support requests, goods, properties or services for sale or for rent. And the answer(s) consists of one of more possible offers (the fulfillment of the request in the demand). Variation of this are Classified Ads or Auctions.

When the Answers module is enabled, it enables the content types Question and Answer.

Theming

The newest 7.x-4.0 version of the Answers module comes with the (new) Answers Theme sub-module, which, out-of-the-box, transforms the (rather boring) vanilla display of a Question (and its related Answers below it), into a way more attractive look-and-feel. Such as the orange bubble that is added around the question (to better highlight it).

Here is a screenprint that is pretty close to what's included in the newest version (... and this page is using the one from that newest version):


enter image description here


Submodules

The functionality offered by the Answers module is implemented via multiple submodules, so that only desired functionality can be enabled:

  • The Answers Theme submodule takes care of the theming of questions and their related answers (as detailed above).
  • The Best Answer submodule can be used so that the question author can "accept" one of the answers as the best one. And you can use the Rules module to either trigger all sorts of subsequent things to happen "when an answer gets marked as best answer", or to add all sorts of validations when posting an answer (or question).
  • The Answers Notification submodule allows logged in users to subscribe to selected questions, so that they receive notifications (using the amazing Message Stack) when Questions receive Answers.
  • The Answers Voting submodule implements a system to upvote or downvote either Questions and/or Answers (which uses the Rate module).
  • The Answers Userpoints submodule increases or decreases "reputation points" (which uses the Userpoints module) on events such as up- or down-voting on a question or answer, or marking an Answer as the "Best Answer".

Business logic

Quite a lot of the "business logic" of the Answers module is implemented via all sorts of configurable rules (using the Rules module). As an example, if you don't agree with the out-of-the-box rules about how much "userpoints" are granted to an upvoted (or downvoted) question (or answer), you just use the Rules UI to tune the amount of such points to your requirements. My favorite about this: shouldn't downvoting questions also cost reputation points to the downvoter (similar to downvoting answers)?

Reporting

Using the Views module, all sorts of nodes related reports can be created, similar to what is shown on the Answers demo site (in read only mode for anonymous users). It includes Views based lists of:

  • Questions:
    • All: of all existing questions (= default tab).
    • Answered: all questions which have a "best" (= accepted) answer (= sub-tab).
    • Unanswered: all questions which do not yet have a "best" (= accepted) answer (= sub-tab).
  • Answers: lists all existing answers for any of the existing questions and which does not (yet) have any submenu options (implemented as tabs).
  • (reputation based) Rankings: contains a list of users with their actual ranking (= reputation points implemented via user points), and with each user a link to either the questions or answers from that user.

Refer to my answer to "http://drupal.stackexchange.com/questions/94299/how-to-get-the-node-ids-of-answers-for-a-question-in-drupal-services-rest/198521#198521" for more details about these views.

These views also use the dataTables format, but you could easily replace that with any views display format you'd want. And because of the search box that comes with dataTables, there is no need for extra menu links to search within questions, answers or rankings.

These new/enhanced views were created starting from the 7.x-4.x-rc2 release of Answers, and will be included in the next release of it also (together with various other enhancements not yet visible in the demo site for anonymous users).

To be complete: Ask Question can be used to post a new question (the equivalent of node/add/question), which in the demo site is only shown for authenticated users though.

Recommended release

To decide between the 7.x-3.2 and the 7.x-4.0-rc2 release, I would recommend the 7.x-4.0-rc2. Even though it is not yet an official release, it is fairly stable/functional, and only has a few more minor glitches to be resolved. Pretty soon an rc-3 (the last 'rc' release?) should become available also, which will include the newest features as you can see in the demo site already. More important: if you're just starting with the module, you won't have to "migrate" from 3.x in the future (some type of migration will be needed, which is still an open issue for now).

Credits

Answers wouldn't have been what it is today, without integrating it with the commonly used, popular, amazing modules such as:

Not to forget that it was chipcleary who realized many of these integrations over the past few years ... Therefor chapeau (aka kudos) to chipcleary!

PS: these days there is also the [tag:answers] tag on Drupal.SE.