Composr Tutorial: Discussion forums

Written by Chris Graham
This tutorial will explain how discussion forums work in Conversr (sometimes abbreviated as CNS), and how best to organise them.


Structure

Image

Adding a forum

Adding a forum

(Click to enlarge)

Image

When editing forums, the full structure is displayed, with an opportunity to reorder both groupings and sub-forums within

When editing forums, the full structure is displayed, with an opportunity to reorder both groupings and sub-forums within

(Click to enlarge)

Discussion forums are a communication tool for site users, based around topics of conversation located within forums.

Discussion forums are organised into a hierarchical structure (also known as a tree structure). The forum you view when you visit the discussion forums is the home forum in the hierarchy, and contains child forums (sub-forums), which may themselves contain child forums, and so on. Within each forum there may also be topics (known as threads in some other software). And within each topic, there are one or more posts.

Forums are actually a very powerful collaboration tool, not merely limited to chat. For example, The Composr Core Development Team uses a forum as an integral part of the process for the designing of the software you're using right now: it is surprising what forums and topics can be made to represent.

So, now that I have explained the structure of a discussion forum, I will explain what each of these constructs are for.

A forum exists to organise topics into some kind of common subject. For example, it is common for a website to have a debates forum, which contains member-created topics, each representing a single debate. A topic in the debates forum such as a topic titled 'Does extraterrestrial life exist?', contains a number of member-created posts, that together form a continuing line of discussion. A topic gets created, in the most appropriate forum, when a member wishes to discuss something and knows of no topic to continue (by making a new post in); the topic is started with a single post, that leads the discussion, by the member who made the topic.

The sub-forum system exists so that forums may be organised such that subjects are logically sub-classified in such a way as to prevent an 'explosion' of forums displayed on the home forum (which would be cluttered and difficult to navigate). Whether a forum with sub-forums should itself be able to hold topics is up to you, but often allowing this is a useful technique for allowing placement of a topic that classifies under a forum, but not one of the sub-forums.

Add or edit forums from:
Admin Zone > Structure > Forums

You can delete a forum from the bottom of its edit form. The root forum cannot be deleted, however.

Flexibility

While discussion forums are primarily meant for discussion, they may in fact be used for the general purpose of conveying information.

It is often useful for a topic that may-not-be-replied-to be made by staff to convey some form of alert. Why? The discussion forums might be used rather than news, or some other Composr medium, due to the easiness of creating and organising topics, or to target an audience that views the discussion forums more regularly than the other mediums.


Forum groupings

Image

Adding a forum grouping

Adding a forum grouping

(Click to enlarge)

Apart from forums, topics, and posts, there is one additional organisational construct in the inbuilt forum system: forum groupings (known as 'categories' in some software). However, forum groupings have a very limited effect on organisation. The system stores a number of groupings, and any forum, at any position in the tree can be 'tagged' against one of these groupings: the groupings have no effect on, and are not a part of, the forum structure, and all they do is group up sub-forums of the same forum grouping visually. By default, every forum is of the forum grouping 'General' and hence all sub-forums are grouped under this when displayed.

Add or edit forum groupings from:
Admin Zone > Structure > Forums

You can delete a forum grouping from the bottom of its edit form.

Topics in a forum

Within a forum, there are a number of to modify a topic, to change their behaviour:
  • A topic may be 'pinned' (also known as 'stickied' in some systems). A pinned topic is placed at the top of the topic list, usually as it contains important information
  • A topic may be made 'cascading'. Cascaded topics appear in all forums in the forum tree, underneath (and including) the forum they are placed in. The cascade property is often used to make forum-wide announcements
  • A topic may be 'closed'. Only those with the necessary privilege may post in a closed topic
  • The validation status of a topic (or post) may be changed. Topics that are not validated are only viewable by moderators and the topic creator. Whether topics are automatically set as validated or not depends on permissions (specifically the 'May bypass low-impact validation' permission)

Topics may be moved between forums by moderators.

Strategies for organising your forums

Image

The home forum (i.e. root forum)

The home forum (i.e. root forum)

(Click to enlarge)

Image

A sub-forum of the home forum

A sub-forum of the home forum

(Click to enlarge)

When you design your discussion forums, you need to decide what forums you will create, and how to organise them. A very common mistake is to create far too many forums, which has the effect of diluting your community, and making it feel dead: which in return often terminally reduces member activity. If a month after creating a forum, you expect it to have less than ten topics, then you probably should not be making it: remember: you can always add new forums later, and mass move topics into them. Conversely, it would be a mistake to create too few forums, leading to a situation where it is difficult to locate topics.

Conversr creates a default forum structure which is appropriate for a small or new community. To encourage discussion specific to your site, you may wish to add a new grouping with perhaps 3 forums (sub-forums of the home forum) placed in that grouping.

Using access permissions effectively

Forums use the standard Composr permissions system.

All forums define which usergroup have access to them (view access), as well as allowing privilege overrides for each usergroup.

It is common to deny most usergroups any kind of access to certain forums, such as staff forums, in order to make them private to all but select members. Using usergroups (often multiple per member) you then assign access by putting the members in the respective usergroup(s).

The view access check box only gives view access to a forum (not posting access, etc). Likewise, if a forum view access box is unchecked for any particular usergroup that only means there is no view access to the forum for the particular usergroup. Un-checking the forum view access check box does not stop or take away any other permissions – it simply takes away view access for a particular usergroup.

Members have the 'best' permissions when all their usergroups' permissions are considered.
For example: Let's imagine a member is in 3 usergroups, A, B, and C, and usergroup C has the privilege to post in the forum but usergroups A and B do not. That member will be assigned posting access, because the necessary privilege can be found within their usergroups.
This is calculated on a permission-by-permission basis. If one of their usergroups grants them certain privileges, and another grants them other privileges, they get the combined set of privileges.
If one usergroup grants view access but not posting privilege, and one usergroup grants posting privilege but not view access, a member in those usergroups gets both.

There is one exception to the above rules: negative privileges overridden against particular forums take precedence over global privileges. For example, if usergroup X is granted the global privilege necessary for posting ("Submit low-impact (medium visibility) content"), but usergroup Y is explicitly denied posting on one particular forum, then a member in those usergroups would not be assigned posting privilege for that particular forum. Overrides always take precedence.

Setting bypass-validation access

By default, forum permissions are set so that members need their posts validating before they show up. This can be changed using Composr's standard permission functionality, but as it is a common task, we thought we'd explain it as an example…

You'll need to enable the following global privileges:
  • 'Avoid validation (approval) for low-impact content', if a member is to be able to post without requiring validation
  • 'Avoid validation (approval) for mid-impact content', if a member is to be able to create a topic without requiring validation

You can set them in 3 places (in order from highest level to lowest level):
  1. In the 'Submission' set of the global privilege settings (go to Admin Zone > Security > Privileges > Submission)
  2. Or, you can use the Permissions Tree Editor (go to Admin Zone > Security > Permissions Tree Editor) to set these on the forum zone's forumview module (if you don't want these to apply for any other 'mid-impact content' across the site)
  3. Or, you can set them against specific forums using either the Permissions Tree Editor or the editing screen of a forum

This flexibility is very intentional – you have a choice of setting things at a high level to apply to the whole website, but also the choice to make overrides at a lower level.

Anonymous posting

Members have a feature where they can choose to post anonymously. If they do this, their post will show as a guest post.

If you see guest posts somewhere where guests cannot post then this is probably why.

Staff can track which user made the post via clicking on the 'Guest' label and hence investigating the IP address. This is no different to an investigation on a normal Guest post.

Replying

Image

Quick reply

Quick reply

(Click to enlarge)

Replies can either be made beneath the topic ("quick reply"), or via the full reply screen.

If your users are confused by the quick reply function (for example, they miss the WYSIWYG), you can turn off the 'Use quick reply' privilege for them.

Topic polls

Image

Viewing a poll (post-voting)

Viewing a poll (post-voting)

(Click to enlarge)

Image

Viewing a poll (pre-voting)

Viewing a poll (pre-voting)

(Click to enlarge)

Image

Adding a poll

Adding a poll

(Click to enlarge)

Topics may have a poll attached to them (by any member) by default, so as to gauge opinion tied to a discussion. These polls are separate to the main Composr poll system, and have different options.

Polls have options to restrict or allow:
  • restrict viewing of poll results after voting until the option is unticked (unchecked) on the poll
  • restrict voting, such that members must reply to the topic of the poll before they may vote in it
  • allow viewing which members voted for each option instead of just the vote counts
  • allow members to revoke or change their own vote
  • restrict when voting will be closed, either manually or on a specific date
  • restrict the number of allowed selections on the poll
  • allow guests to vote without logging in

Site staff can set default or mandatory topic poll options on a per-forum basis (such as restricting which options are allowed) using XML markup. See Advanced forum settings for more information.

There are a number of privileges associated with polls:
  • On adding polls:
    • Any member who can add a topic can also add a poll to that topic
    • Members can only set poll results public if they have the "Un-blind their own polls" or "Edit Midrange Content" privilege.
  • On using polls:
    • Those without the "can vote in polls" privilege cannot vote in any polls regardless of the settings of any particular poll.
    • The "View poll results before voting" does what you'd expect.
  • On editing polls:
    • Once a member creates a topic poll, it can only be edited or deleted by those with the proper privileges (Edit their own polls or Edit Midrange Content) to ensure voting result fairness.
  • On deleting polls:
    • Polls can only be deleted by members with the "Delete other users' mid-impact (medium visibility) content" privilege or with the "Delete own mid-impact (medium visibility) content" (if they own the poll they want to delete)

On viewing results:
  • When a member views a topic poll, if voting is open, they can either vote on it or view the results. If a member views the results without voting, they do not have the "View poll results before voting" privilege, and the poll does not allow members to revoke votes (i.e. be influenced to change their minds), the member forfeits their vote on that poll. Guests cannot view poll results prior to voting if the poll is set to not allow guest voting nor vote revoking.
  • If voting on the poll is closed, then the member will either see the results if they are public, or they will only see a message saying that voting is closed.
  • After a member votes, if results are public, they will see the current results of the poll. If enabled on the poll, the number of votes for each option will be a link and can be clicked to see which specific members voted that option and when.

If voting revocation is allowed on the poll and voting is still open, a member may revoke their vote with the Revoke Vote button. They may then re-vote at any time on the poll so long as voting is still open. Revoked votes are logged in the Action Log for moderators to review.

When editing poll answers, the votes will be maintained; you should generally only edit answers to fix typos or add new choices (but not to modify or remove existing ones). If you are modifying existing answers beyond fixing typos, you should tick (check) the "Erase votes" box to erase all current votes for a fair poll.

Weighting poll results with points

A site-wide setting can be enabled to allow poll results to be weighted according to the number of life-time points each voter had at the time of voting. These settings are located in the Admin Zone > Setup > Configuration > Forum options > Point-weighting for topic polls.

When the site-wide setting is enabled, individual polls can then have point-weighting enabled or disabled (they will be disabled by default).

Point weighting works by assigning a voting power to every vote based on the number of life-time points the voter had at the time they voted.

The formula used to weigh poll results and generate a voting power is as follows:

min(<maximum>, max(0, <offset> + (<multiplier> * (<life-time points> ^ (1 / max(1, <root base>))))))
  • root base, multiplier, offset, and maximum are configurable values in the Forum / Point-weighting for topic polls options.
  • First, the formula takes the root of the member's life-time points at the time of voting (e.g. If the root base is 2, it will take the square root. If it is 3, it will take the cubic root.).
  • Then, the formula multiplies the results by the absolute value of the configured multiplier.
  • Next, the offset is added to the result (offset can be negative to subtract instead).
  • Finally, the formula ensures voting power is not higher than the defined maximum (if defined), and not lower than 0.
  • When a member's life-time points are 0 or negative, their voting power will be 0 (e.g. their vote has no effect on the poll results).
  • If the points addon is not installed, everyone has a voting power of 1 (e.g. the behaviour is the same as a non-weighted poll).

There are a couple nuances with the weighted voting system:
  • Currently, the weighted voting system is very inefficient for large polls as it must tally all of the voting powers (see Composr tracker issue 4876).
  • The votes of early voters may not be weighted as high as they could be especially when a member later earns more points. If revoke vote is enabled on a poll, a member can revoke and re-vote to have their voting power re-calculated with their new points. Otherwise, a member can wait until close to the poll closing time, or when they expect to have the most number of points, to vote.

There is a tool at Admin Zone > Structure > Forums > Voting power calculator, for running simulations on different settings to see what the outcomes will be.

In order to help assure users on the long-term integrity of the forum voting, there is an RSS/Atom feed of votes (advertised in the page metadata when viewing a poll). These allow members to collectively download records and compare them at a later date. The RSS/Atom feed parameters can be tuned to find all poll votes across the entire forum, or under specific forums, etc, using Selectcode.

Editing posts

There is an edit post button underneath each post.

If you edit a post then you get to choose whether it shows as edited or not. The default is for this option to be checked unless you edit quickly (within 3 minutes). The special case here is because we assume that the edit is a quick correction rather than being a retraction that should be advertised.

Staff can view full post history: edits aren't secret from staff.

Deleting posts

There is a delete post button underneath each post.

If somehow a corrupt post makes it through and obscures the delete button after it, you can manually delete (or edit) it from the edit URL:
http://yourbaseurl/forum/index.php?page=topics&type=edit_post&id=<postid>
You can find the post ID from above (before) the post in the topicview.

Conversr versus other forum software

Conversr was designed to be a powerful forum in its own right.

Here are some features we have in Conversr that are mostly unique across forum software:
  • Blind polls (results hidden until voting ends)
  • Default poll options (options can be default or required for all polls in a forum, and allowance of custom options can be disabled)
  • Weighted polls (so more vetted and active members have a larger influence in a poll's results; this can be very useful for democratic and autonomous voting of issues pertaining to the site)
  • Private topics, rather than primitive private messages
  • Inline private posts (private messages embedded in public forum topics, so people can make private remarks to each other)
  • Forum introduction questions (a much more general concept than the silly 'password protected' forums, which duplicate what usergroup permissions are for)
  • True tree structure for forum, and cascading topics that can show as pinned just for a subtree (e.g. have a pinned topic under all the 'Games' forums, but not under the 'Politics' forums)
  • Reporting posts to a support ticket (so moderators can discuss reported posts as part of their normal forum workflow, rather than them being stored elsewhere)
  • Clubs (so members can create their own usergroups and forums)
  • JavaScript overlay for profile info next to posts, rather than having repetitive information placed everywhere
  • Integrated moderation function (no separate modcp needed)
  • Post history (so you can see if people edited old posts in a debate for example)
  • Welcome messages (so you can define a series of mailings to welcome new members)
  • Important posts (a moderator can highlight a post in a topic to make a clear point)
  • Post Templates (so the forum can be used like a help desk)
  • Integrated rank/usergroup system (because having rank and usergroup separate just gets confusing)
  • Reputation system (via the Karma non-bundled addon (maintenance status))
    • Reputation is not particularly unique across other forums, but Conversr's Karma is vastly more configurable than most and can be set up so more vetted members have a larger impact on the reputation of other members.

Since the time of Conversr's development, standalone forums have actually reduced a lot in popularity, for the same reasons that we decided tight integration was the way to go – a consistent user experience across a whole website is the way to go, instead of having community features mostly siloed off on some separate piece of software. That ended up being called 'Web 2.0' and then 'Social media', but it basically is what Composr's philosophy always has been: an interactive and integrated cross-website experience. However most "new forums", written from scratch to provide this tight integration, are cut down in functionality and lack a lot of really important features, while we've matched and raised the functionality at the same time as properly integrating it. This is one thing we're quite proud of about with Composr: we don't just throw away proven functionality to create the new, we embrace established concepts and build industry innovations right into the core of it all.


See also


Feedback

Please rate this tutorial:

Have a suggestion? Report an issue on the tracker.