Extension:DiscussionThreading

What can this extension do?
MediaWiki supports a discussion model called talk pages. These are regular wiki pages whose only distinction is that they are associated with a content page. That is, these two types of pages are always linked to each other, a content page and a talk page. Since talk pages are regular wiki pages, they suffer many usability shortcomings. This extension addresses some of these shortcomings by customizing talk pages including:


 * Minimal threading - Subject headings are used to identify what discussion a particular comment belongs to. These headings are not dated and cannot be sorted.
 * Users explicitly sign their comments - signatures are automatically added to the discussions.
 * Transparent response mechanism - users can reply to existing comments or create new ones using the [new][edit][reply]
 * Conversation tracking - the [reply] allows users to specify existing objects (sections) in the system, and effectively track comments one has left, responses received (regardless of the location), and so on.

For a more complete analysis, check Erik Möller's article, from which the above was liberally plagiarized.

When a new post is created, the extension automatically tags with user information and posting date. Much like a threaded discussion listserv, it allows response to individual posts and organizes. Still allows user standard user editing. Tags do not appear on article or other pages, limited to discussion and 're:' is automatically added to replies.

Once installed it can be enabled or disabled using the global variable below the inclusion (Enabled by default with the inclusion): $wgSectionThreadingOn = True; /* Enabled */

Usage
Using Wikis for project management and collaboration. Many of the older users were much more comfortable with the listserv approach. This is a transitional path for them.

Installation
Installation has been greatly simplified. Link below describes, but can now be done by downloading files, manually patching linker.php, copying linker.php (REL1_10 and REL1_9_3 only), or applying downloaded patches.

See Extension:DiscussionThread_Article

Changes to LocalSettings.php
require_once("$IP/extensions/DiscussionThreading/DiscussionThreading.php");

Code
Has been fairly comprehensively tested. Has the following hooks:

$wgHooks['EditPage::showEditForm:initial'][] = 'efDiscussionThread'; $wgHooks['EditPage::attemptSave'][] = 'efStampReply'; $wgHooks['EditPage::showEditForm:initial'][] = 'efDiscussionThreadEdit'; $wgHooks['editSectionLinkForOther'][] = 'efDiscussionLink4other'; $wgHooks['editSectionLink'][] = 'efDiscussionLink'; $wgHooks['AlternateEdit'][] = 'efDiscussionThreadEdit';
 * 1) custom created hooks in linker.php

Patches required to Linker.php

Release Notes

 * 1.0
 * greatly reduces patching - completely dependent on hooks, although needs 2 hooks in linker.php to execute
 * Added [new] link in section header that starts a new thread at the bottom
 * Defaults to add new comment when discussion page first entered
 * If previous patches applied, EditPage.php can be reverted to appropriate release version - patches no longer required
 * Between Version 0.0 and 0.1, changed to use the name 'DiscussionThreading' instead of the 'AddCommentSection'. The comment was vestigial and not fully descriptive.