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 - list
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
Last version 1.3 (r57731)
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

Check usage and version matrix

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.

Contents

Installation [edit]

  1. Dump the files into $IP/extensions/Phalanx
  2. Create the two new database tables via something like php $IP/maintenance/sql.php $IP/extensions/Phalanx/schema.sql
  3. Add require_once("$IP/extensions/Phalanx/Phalanx.php"); into the wiki's LocalSettings.php
  4. Installation can now be verified through the wiki's Special:Version

Parameters [edit]

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

User rights [edit]

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]

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]

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]

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]

  1. Extension licensing info on Wikia's SVN repository