Extension:Phalanx

From MediaWiki.org
Jump to: navigation, search
While Phalanx definitely is the best thing since sliced bread, the code is not totally usable as-is for third-party websites and contains bits and pieces specific to ShoutWiki's setup. You might also be interested in the admin tools development page. --Jack Phoenix (Contact) 20:27, 10 August 2012 (UTC)
MediaWiki extensions manual
Crystal Clear action run.png
Phalanx

Release status: stable

Phalanx MediaWiki extension UI.png
Implementation Special page
Description Integrated spam control mechanism
Author(s) Bartek Łapiński
Łukasz Garczewski
Maciej Błaszkowski
Maciej Brencz
Jack Phoenix
Latest version 1.4.0 (April 2, 2014; 5 months ago (2014-04-02))
MediaWiki 1.19+
Database changes Yes
License GNU General Public License 3.0 or later[1]
Download
Parameters

$wgPhalanxDisableContent

Added rights

phalanx, phalanxexempt, phalanxemailblock

Hooks used
GetBlockedStatus

EditFilter
AbortMove
UserCanSendEmail
AbortNewAccount

Translate the Phalanx extension if it is available at translatewiki.net

Check usage and version matrix; code metrics

Phalanx extension is an integrated special control mechanism. The integrated means that it integrates several (mostly Wikia) extensions into one, ultimate anti-spam tool: BadWords, FilterWords, regexBlock, SpamBlacklist, spamRegex, TextRegex and TitleBlacklist.

Phalanx was originally developed by and for Wikia; this page documents the fork of Phalanx that ShoutWiki uses, which was originally forked in June 2010 and is currently based on r57731 of Wikia's SVN.

Installation[edit | edit source]

Installation[edit | edit source]

  • Download and extract the file(s) in a directory called Phalanx in your extensions/ folder. If you're a developer and this extension is in a Git repository, then instead you should clone the repository using:
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Phalanx.git
  • Add the following code at the bottom of your LocalSettings.php:
require_once "$IP/extensions/Phalanx/Phalanx.php";
  • Run the update script which will automatically create the necessary database tables that this extension needs.
  • Done! Navigate to "Special:Version" on your wiki to verify that the extension is successfully installed.

Parameters[edit | edit source]

The $wgPhalanxDisableContent global can be set to true to disable the ContentBlock module (checks related to page content, edit&move summaries).

User rights[edit | edit source]

Phalanx extension adds three new user rights, phalanx, phalanxexempt and phalanxemailblock.

The phalanx user right is required to access Special:Phalanx and Special:PhalanxStats; to add, modify and remove filters and to view statistics.

Users with phalanxexempt user right are exempt from Phalanx filters.

The phalanxemailblock user right is required to view blocked e-mail addresses on Special:Phalanx and Special:PhalanxStats, to block e-mail addresses and to view the log at Special:Log/phalanxemail.

Logging[edit | edit source]

Filter additions, modifications and deletions are logged at Special:Log/phalanx, which is a private log accessible by users with the phalanx user right.

E-mail address filter additions, modifications and deletions are logged at a separate log, Special:Log/phalanxemail. Accessing this log requires the phalanxemailblock user right.

Testing filters[edit | edit source]

Users with the phalanx user right can test currently active filters by choosing the "Test Filters" tab on Special:Phalanx, entering text (such as a spam phrase, a username or something else that is or should be blocked in Phalanx) and pressing the button.
If there is a match, you'll be informed what filter the text triggers; if there isn't a match (and you know there should be), try changing the options of a block.
One of the most common problems is using the "exact" option with text, such as content or summary blocks; you should almost always use the regex option, because the "exact" option is too dumb and it can easily be fooled.

Technical notes[edit | edit source]

Phalanx keeps statistics about filter triggers on Special:PhalanxStats/block-ID-goes-here
  • See Extension:Phalanx/Writing a new module for information on how to add additional blocking options to the extension
  • Number of i18n messages: 108 (as of 9 August 2012)
  • GUI for Special:Phalanx is in extensions/Phalanx/templates/phalanx.tmpl.php
  • CSS changs:
    • wikia-tabs has been renamed to phalanx-tabs
    • accent → phalanx-accent
    • clearfix styles copied from Monaco's root.css; required for proper GUI display
  • Requires jQuery 1.4.2 or higher
  • Actual blocking classes are in blocks/ (for example, ContentBlock.class.php) and are loaded in Phalanx.php for users who do not have the phalanxexempt right
  • Hooks used by Phalanx specific to the Wikia codebase, and which are not present in MediaWiki core:
    • AutoCreateWiki::checkBadWords
    • ApiCreateMultiplePagesBeforeCreation
    • CreateDefaultQuestionPageFilter
    • CreatePageTitleCheck
    • DefaultQuestion::filterWordsTest
    • ProblemReportsContentCheck
    • SpecialMovepageBeforeMove
      • the functionality hooked into this hook has been moved to ContentBlock module (extensions/Phalanx/blocks/ContentBlock.class.php, function onAbortMove); the hook used is AbortMove

Notes[edit | edit source]

  1. Extension licensing info on Wikia's SVN repository