Extension:DiscussionThreading

From MediaWiki.org
Jump to navigation Jump to search
Translate this page; This page contains changes which are not marked for translation.
Other languages:
English • ‎中文 • ‎日本語
MediaWiki extensions manual
OOjs UI icon advanced.svg
DiscussionThreading
Release status: unmaintained
ThreadedDiscussionSP.JPG
Implementation User interface, Page action
Description Makes the talk area work like a threaded process, including auto tagging and reply processing
Author(s) Jack D. Pond, Daniel Brice
Latest version 1.6.0 (2016-10-26)
MediaWiki 1.17+
License GNU General Public License 2.0 or later
Download
README
  • $wgSectionThreadingOn
Translate the DiscussionThreading extension if it is available at translatewiki.net
Check usage and version matrix.
Issues Open tasks · Report a bug

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 subject page. That is, these two types of pages are always linked to each other, a subject 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 */

Announcements

  • Version 1.4 can now use MediaWiki:Editsection-brackets to set the brackets for links.
  • This extension does not work with MediaWiki development releases r70940 until r74697. A minor oversight in upgrade to core code Linker.php was corrected and fixed this.
  • Version 1.3 with automatic indent and highlight where to add text. Fixed to work before and after 1.11 now available. Thanks to Daniel Brice for a great idea and code on the automatic indent.
  • GREAT NEWS! The enhancement request Allow Developers to add links to edit sections via hooks has been made. This means no patches are required to install this extension if you are using REL1_11 or greater.

Alternatives

This was written as a formatting extension to Talk_Pages, rather than a replacement. The talk pages can still be used as a free-forum, but threads can be incorporated. It also offers the additional flexibility of allowing threads to be modified or removed, like any other wiki information set.

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

  • Download and place the file(s) in a directory called DiscussionThreading in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php:
    wfLoadExtension( 'DiscussionThreading' );
    
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

To users running MediaWiki 1.29 or earlier:

The instructions above describe the new way of installing this extension using wfLoadExtension(). If you need to install this extension on these earlier versions (MediaWiki 1.29 and earlier), instead of wfLoadExtension( 'DiscussionThreading' );, you need to use:

require_once "$IP/extensions/DiscussionThreading/DiscussionThreading.php";

Code

Has been fairly comprehensively tested.

Release notes

  • 1.6 - Convert to use extension registration, some code cleanup
  • 1.5 - Migrate to JSON i18n
  • 1.4 - Can set brackets and technical upgrade
  • 1.3 - Automatic Indentation Using JavaScript
    • Automatically indents replies and highlights where to add text (thanks to Daniel Brice)
    • Fix so extension works before and after MW Ver 1.11 (patches still rqd before 1.11)
  • 1.2 - siebrand updated to use current extension standards (THANKS!)
  • 1.1 - Updated to be forward compatible with release 1.11, bug fix
    • Rob Church made mods that simplifies, beautifies, etc. the hook which is included in the next release, needed to change extension to make consistent
    • Fixed bug where I forgot to declare $wgSectionThreadingOn as a global in one subroutine - caused a php error to display
    • Need to download both the patches and the extension - they must be updated as a set.
  • 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.

Indenting Headers

If you are really serious about threading, you can indent headers by modifying the corresponding CSS file (eg. skins/monobook/main.css). To modify all headers (talk or regular article), you can add a 'padding-left: xem;' into each of the headers 3-6. Eg.:

h3 { font-size: 132%; padding-left: 1em;}
h3 .editsection { font-size: 76%; font-weight: normal; }
h4 { font-size: 116%; padding-left: 2em;}
h4 .editsection { font-size: 86%; font-weight: normal; }
h5 { font-size: 100%; padding-left: 3em;}
h5 .editsection { font-weight: normal; }
h6 { font-size: 80%; padding-left: 4em; }
h6 .editsection { font-size: 125%; font-weight: normal; }


See also