Extension:ArticleComments

The ArticleComments Extension is a MediaWiki extension that provides a means for creating inline blog-like comment forms for regular wiki articles.

Please see the official project homepage for up-to-date installation notes, usage tips and advanced features.


 * Project Homepage: ArticleComments Extension - Jimbojw.com
 * Source Code: ArticleComments.php
 * Demo: ArticleComments Test Page (try before you buy)
 * Licensing: ArticleComments is released under The MIT License.

Installation

 * 1) Download ArticleComments, and be sure to rename the downloaded file to ArticleComments.php.
 * 2) Drop this script in $IP/extensions
 * Note: $IP is your MediaWiki install directory.
 * 1) Enable the extension by adding this line to your LocalSettings.php:

Usage
Once installed, you (or editors of your wiki) may add comment forms to any article.

To do so, simply add this text to the body of your page where you'd like the comment form to appear: &lt;comments /&gt; That's it!

Technical Details
In addition to providing a parser hook for the &lt;comments&gt; tag, the ArticleComments Extension implements a SpecialPage which acts as the recipient of the submitted comment.

Though this special page shows up in Special:Specialpages as &quot;Process Comment&quot;, it is not meant to be accessed directly - only via a comment submission form.

When a comment is submitted, if all fields are correctly filled, with no illegal values, the comment is appended to the end of the Article's Talk page. If the comment form is itself on a Talk page, then the comment is appended to the end of that same page. (Comments are always appended to Talk pages - never pages in any other namespace).

Extension Points
As of version 0.4, this extension registers its own hook called "ArticleCommentsSpamCheck" and provides a default rudimentary implementation.

This is to aid future development of more robust spam checking mechanisms without altering the extension's core code.

Caveats and Gotchas
This extension does not implement any permission checks other than whether the user or ip address is blocked from making edits. This means that if a comment form is placed on an article, any user or guest my use that form to supply a comment.

The goal of this extension is to provide comment forms that are intuitive for people who are not wiki experts, not just to make it easier to append content to an article's talk page. It is presumed that if an editor places a &lt;comments /&gt; flag in an article, then that article is designated as accepting input from any users.

A future version of this extension may be more permissions-aware however.

Related Works
For those of you brave enough to try (and extend/augment) this extension, feel free to list your works below. --Jimbojw

Comments directly on the article page
If you want to add the comments in your page, use this code: &lt;comments /&gt;

Collapsible Comments directly on the article page (using javascript)
I made a modification to this extension for it to add directly the comments on the article page. Moreover, these comments are hidden by default and are displayed using javascript when the user clicks on "Show comments".

See User:Pannini/ArticleComments to follow the modifications. This is more than a hack, it simply adds a new functionality to ArticleComment.

Forum-like CSS

 * Description: Article which shows alternate CSS for a more forum-like appearance. Also illustrates some basic configuration options.
 * Documentation: How to add comment guestbook forum to MediaWiki (LeerWiki.nl)

Logged-In Users Only
For systems where you don't want un-logged-in readers to be able to post comments - the correct solution would be to change this code so it respects $wgGroupPermissions['*']['edit'] and $wgGroupPermissions['*']['edittalk'] - but a quick and dirty hack is to alter the function which determines whether the user is blocked, from # Check whether user is blocked from editing the talk page if ($wgUser->isBlockedFrom($talkTitle)) { to # Check whether user is blocked from editing the talk page if ($wgUser->isBlockedFrom($talkTitle) || !$wgUser->isLoggedIn) { 98.216.245.28 15:42, 17 May 2009 (UTC) (sorry, no mediawiki account, and yes, I'm aware of the irony)