mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/SpamBlacklist
synced 2024-11-23 22:54:57 +00:00
Add extensions.json, empty PHP entry point, remove i18n shim
Bug: T88059 Change-Id: I730a2012609f7dfac3d49012ae14038e6bcac3ae
This commit is contained in:
parent
217c0132c7
commit
5d882775f6
|
@ -1,35 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* This is a backwards-compatibility shim, generated by:
|
||||
* https://git.wikimedia.org/blob/mediawiki%2Fcore.git/HEAD/maintenance%2FgenerateJsonI18n.php
|
||||
*
|
||||
* Beginning with MediaWiki 1.23, translation strings are stored in json files,
|
||||
* and the EXTENSION.i18n.php file only exists to provide compatibility with
|
||||
* older releases of MediaWiki. For more information about this migration, see:
|
||||
* https://www.mediawiki.org/wiki/Requests_for_comment/Localisation_format
|
||||
*
|
||||
* This shim maintains compatibility back to MediaWiki 1.17.
|
||||
*/
|
||||
$messages = array();
|
||||
if ( !function_exists( 'wfJsonI18nShime2760ddac42b5b1c' ) ) {
|
||||
function wfJsonI18nShime2760ddac42b5b1c( $cache, $code, &$cachedData ) {
|
||||
$codeSequence = array_merge( array( $code ), $cachedData['fallbackSequence'] );
|
||||
foreach ( $codeSequence as $csCode ) {
|
||||
$fileName = dirname( __FILE__ ) . "/i18n/$csCode.json";
|
||||
if ( is_readable( $fileName ) ) {
|
||||
$data = FormatJson::decode( file_get_contents( $fileName ), true );
|
||||
foreach ( array_keys( $data ) as $key ) {
|
||||
if ( $key === '' || $key[0] === '@' ) {
|
||||
unset( $data[$key] );
|
||||
}
|
||||
}
|
||||
$cachedData['messages'] = array_merge( $data, $cachedData['messages'] );
|
||||
}
|
||||
|
||||
$cachedData['deps'][] = new FileDependency( $fileName );
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
$GLOBALS['wgHooks']['LocalisationCacheRecache'][] = 'wfJsonI18nShime2760ddac42b5b1c';
|
||||
}
|
|
@ -1,77 +1,13 @@
|
|||
<?php
|
||||
|
||||
# Loader for spam blacklist feature
|
||||
# Include this from LocalSettings.php
|
||||
|
||||
if ( !defined( 'MEDIAWIKI' ) ) {
|
||||
exit;
|
||||
if ( function_exists( 'wfLoadExtension' ) ) {
|
||||
wfLoadExtension( 'SpamBlacklist' );
|
||||
// Keep i18n globals so mergeMessageFileList.php doesn't break
|
||||
$wgMessagesDirs['SpamBlackList'] = __DIR__ . '/i18n';
|
||||
/* wfWarn(
|
||||
'Deprecated PHP entry point used for SpamBlacklist extension. Please use wfLoadExtension instead, ' .
|
||||
'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
|
||||
); */
|
||||
return;
|
||||
} else {
|
||||
die( 'This version of the SpamBlacklist extension requires MediaWiki 1.25+' );
|
||||
}
|
||||
|
||||
$wgExtensionCredits['antispam'][] = array(
|
||||
'path' => __FILE__,
|
||||
'name' => 'SpamBlacklist',
|
||||
'author' => array( 'Tim Starling', 'John Du Hart', 'Daniel Kinzler' ),
|
||||
'url' => 'https://www.mediawiki.org/wiki/Extension:SpamBlacklist',
|
||||
'descriptionmsg' => 'spam-blacklist-desc',
|
||||
);
|
||||
|
||||
$dir = __DIR__ . '/';
|
||||
$wgMessagesDirs['SpamBlackList'] = __DIR__ . '/i18n';
|
||||
$wgExtensionMessagesFiles['SpamBlackList'] = $dir . 'SpamBlacklist.i18n.php';
|
||||
|
||||
// Register the API method
|
||||
$wgAutoloadClasses['ApiSpamBlacklist'] = "$dir/api/ApiSpamBlacklist.php";
|
||||
$wgAPIModules['spamblacklist'] = 'ApiSpamBlacklist';
|
||||
|
||||
/**
|
||||
* Array of settings for blacklist classes
|
||||
*/
|
||||
$wgBlacklistSettings = array(
|
||||
'spam' => array(
|
||||
'files' => array( "https://meta.wikimedia.org/w/index.php?title=Spam_blacklist&action=raw&sb_ver=1" )
|
||||
)
|
||||
);
|
||||
|
||||
/**
|
||||
* Log blacklist hits to Special:Log
|
||||
*/
|
||||
$wgLogSpamBlacklistHits = false;
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
$wgSpamBlacklistFiles =& $wgBlacklistSettings['spam']['files'];
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
$wgSpamBlacklistSettings =& $wgBlacklistSettings['spam'];
|
||||
|
||||
if ( !defined( 'MW_SUPPORTS_CONTENTHANDLER' ) ) {
|
||||
die( "This version of SpamBlacklist requires a version of MediaWiki that supports the ContentHandler facility (supported since MW 1.21)." );
|
||||
}
|
||||
|
||||
// filter pages on save
|
||||
$wgHooks['EditFilterMergedContent'][] = 'SpamBlacklistHooks::filterMergedContent';
|
||||
$wgHooks['APIEditBeforeSave'][] = 'SpamBlacklistHooks::filterAPIEditBeforeSave';
|
||||
|
||||
// editing filter rules
|
||||
$wgHooks['EditFilter'][] = 'SpamBlacklistHooks::validate';
|
||||
$wgHooks['PageContentSaveComplete'][] = 'SpamBlacklistHooks::pageSaveContent';
|
||||
|
||||
// email filters
|
||||
$wgHooks['UserCanSendEmail'][] = 'SpamBlacklistHooks::userCanSendEmail';
|
||||
$wgHooks['AbortNewAccount'][] = 'SpamBlacklistHooks::abortNewAccount';
|
||||
|
||||
$wgAutoloadClasses['BaseBlacklist'] = $dir . 'BaseBlacklist.php';
|
||||
$wgAutoloadClasses['EmailBlacklist'] = $dir . 'EmailBlacklist.php';
|
||||
$wgAutoloadClasses['SpamBlacklistHooks'] = $dir . 'SpamBlacklistHooks.php';
|
||||
$wgAutoloadClasses['SpamBlacklist'] = $dir . 'SpamBlacklist_body.php';
|
||||
$wgAutoloadClasses['SpamRegexBatch'] = $dir . 'SpamRegexBatch.php';
|
||||
|
||||
$wgLogTypes[] = 'spamblacklist';
|
||||
$wgLogActionsHandlers['spamblacklist/*'] = 'LogFormatter';
|
||||
$wgLogRestrictions['spamblacklist'] = 'spamblacklistlog';
|
||||
$wgGroupPermissions['sysop']['spamblacklistlog'] = true;
|
||||
|
||||
$wgAvailableRights[] = 'spamblacklistlog';
|
||||
|
|
|
@ -4,6 +4,30 @@
|
|||
* Hooks for the spam blacklist extension
|
||||
*/
|
||||
class SpamBlacklistHooks {
|
||||
|
||||
/**
|
||||
* T99257: Extension registration does not properly support 2d arrays so set it as a global for now
|
||||
*/
|
||||
public static function registerExtension() {
|
||||
global $wgSpamBlacklistFiles, $wgBlacklistSettings, $wgSpamBlacklistSettings;
|
||||
|
||||
$wgBlacklistSettings = array(
|
||||
'spam' => array(
|
||||
'files' => array( "https://meta.wikimedia.org/w/index.php?title=Spam_blacklist&action=raw&sb_ver=1" )
|
||||
)
|
||||
);
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
$wgSpamBlacklistFiles =& $wgBlacklistSettings['spam']['files'];
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
$wgSpamBlacklistSettings =& $wgBlacklistSettings['spam'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook function for EditFilterMergedContent
|
||||
*
|
||||
|
|
69
extension.json
Normal file
69
extension.json
Normal file
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
"name": "SpamBlacklist",
|
||||
"author": [
|
||||
"Tim Starling",
|
||||
"John Du Hart",
|
||||
"Daniel Kinzler"
|
||||
],
|
||||
"url": "https://www.mediawiki.org/wiki/Extension:SpamBlacklist",
|
||||
"descriptionmsg": "spam-blacklist-desc",
|
||||
"type": "antispam",
|
||||
"callback": "SpamBlacklistHooks::registerExtension",
|
||||
"GroupPermissions": {
|
||||
"sysop": {
|
||||
"spamblacklistlog": true
|
||||
}
|
||||
},
|
||||
"AvailableRights": [
|
||||
"spamblacklistlog"
|
||||
],
|
||||
"LogTypes": [
|
||||
"spamblacklist"
|
||||
],
|
||||
"LogRestrictions": {
|
||||
"spamblacklist": "spamblacklistlog"
|
||||
},
|
||||
"LogActionsHandlers": {
|
||||
"spamblacklist/*": "LogFormatter"
|
||||
},
|
||||
"APIModules": {
|
||||
"spamblacklist": "ApiSpamBlacklist"
|
||||
},
|
||||
"MessagesDirs": {
|
||||
"SpamBlackList": [
|
||||
"i18n"
|
||||
]
|
||||
},
|
||||
"AutoloadClasses": {
|
||||
"ApiSpamBlacklist": "api/ApiSpamBlacklist.php",
|
||||
"BaseBlacklist": "BaseBlacklist.php",
|
||||
"EmailBlacklist": "EmailBlacklist.php",
|
||||
"SpamBlacklistHooks": "SpamBlacklistHooks.php",
|
||||
"SpamBlacklist": "SpamBlacklist_body.php",
|
||||
"SpamRegexBatch": "SpamRegexBatch.php"
|
||||
},
|
||||
"Hooks": {
|
||||
"EditFilterMergedContent": [
|
||||
"SpamBlacklistHooks::filterMergedContent"
|
||||
],
|
||||
"APIEditBeforeSave": [
|
||||
"SpamBlacklistHooks::filterAPIEditBeforeSave"
|
||||
],
|
||||
"EditFilter": [
|
||||
"SpamBlacklistHooks::validate"
|
||||
],
|
||||
"PageContentSaveComplete": [
|
||||
"SpamBlacklistHooks::pageSaveContent"
|
||||
],
|
||||
"UserCanSendEmail": [
|
||||
"SpamBlacklistHooks::userCanSendEmail"
|
||||
],
|
||||
"AbortNewAccount": [
|
||||
"SpamBlacklistHooks::abortNewAccount"
|
||||
]
|
||||
},
|
||||
"config": {
|
||||
"@doc": "BlacklistSettings are set in SpamBlacklistHooks.php",
|
||||
"LogSpamBlacklistHits": false
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue