Paladox has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/212318

Change subject: Add extensions.json, empty PHP entry point, remove i18n shim
......................................................................

Add extensions.json, empty PHP entry point, remove i18n shim

Bug: T88059
Change-Id: I730a2012609f7dfac3d49012ae14038e6bcac3ae
(cherry picked from commit 5d882775f6323e9c23bed3abba9a4b8293c7b840)
---
D SpamBlacklist.i18n.php
M SpamBlacklist.php
M SpamBlacklistHooks.php
A extension.json
4 files changed, 104 insertions(+), 110 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/SpamBlacklist 
refs/changes/18/212318/1

diff --git a/SpamBlacklist.i18n.php b/SpamBlacklist.i18n.php
deleted file mode 100644
index 7f463b0..0000000
--- a/SpamBlacklist.i18n.php
+++ /dev/null
@@ -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';
-}
diff --git a/SpamBlacklist.php b/SpamBlacklist.php
index b627e00..a1e4960 100644
--- a/SpamBlacklist.php
+++ b/SpamBlacklist.php
@@ -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';
diff --git a/SpamBlacklistHooks.php b/SpamBlacklistHooks.php
index 0ceb4fa..c8a322b 100644
--- a/SpamBlacklistHooks.php
+++ b/SpamBlacklistHooks.php
@@ -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
         *
diff --git a/extension.json b/extension.json
new file mode 100644
index 0000000..7aec2bc
--- /dev/null
+++ b/extension.json
@@ -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
+       }
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/212318
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I730a2012609f7dfac3d49012ae14038e6bcac3ae
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/SpamBlacklist
Gerrit-Branch: REL1_25
Gerrit-Owner: Paladox <thomasmulhall...@yahoo.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to