jenkins-bot has submitted this change and it was merged.

Change subject: Convert to extension registration
......................................................................


Convert to extension registration

Change-Id: Iad2595f76b365df6322f9ed074581ec30f213d14
---
M WikimediaIncubator.class.php
M WikimediaIncubator.php
A extension.json
3 files changed, 193 insertions(+), 176 deletions(-)

Approvals:
  Legoktm: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/WikimediaIncubator.class.php b/WikimediaIncubator.class.php
index 0bd0e62..3a8f3c0 100644
--- a/WikimediaIncubator.class.php
+++ b/WikimediaIncubator.class.php
@@ -12,6 +12,17 @@
 class WikimediaIncubator {
 
        /**
+        * Callback for extension registration
+        */
+       public static function onRegistration() {
+               global $wmincExistingWikis, $wgLocalDatabases;
+
+               if ( $wmincExistingWikis === null ) {
+                       $wmincExistingWikis = $wgLocalDatabases;
+               }
+       }
+
+       /**
         * Add default preference
         * @param $defOpt Array
         * @return true
diff --git a/WikimediaIncubator.php b/WikimediaIncubator.php
index 5a44294..2b74fcf 100644
--- a/WikimediaIncubator.php
+++ b/WikimediaIncubator.php
@@ -1,178 +1,17 @@
 <?php
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( "This file is an extension to the MediaWiki software and cannot be 
used standalone.\n" );
+
+if ( function_exists( 'wfLoadExtension' ) ) {
+       wfLoadExtension( 'WikimediaIncubator' );
+       // Keep i18n globals so mergeMessageFileList.php doesn't break
+       $wgMessagesDirs['WikimediaIncubator'] = __DIR__ . '/i18n';
+       $wgExtensionMessagesFiles['WikimediaIncubatorAlias'] = __DIR__ . 
'/WikimediaIncubator.alias.php';
+       $wgExtensionMessagesFiles['WikimediaIncubatorMagic'] = __DIR__ . 
'/WikimediaIncubator.i18n.magic.php';
+       /* wfWarn(
+               'Deprecated PHP entry point used for WikimediaIncubator 
extension. ' .
+               'Please use wfLoadExtension instead, ' .
+               'see https://www.mediawiki.org/wiki/Extension_registration for 
more details.'
+       ); */
+       return;
+} else {
+       die( 'This version of the WikimediaIncubator extension requires 
MediaWiki 1.25+' );
 }
-/**
- * An extension that adds features (such as a preference, recent changes, ...)
- * for a test wiki system (i.e. incubated wikis inside one actual wiki)
- * mainly intended for the Wikimedia Incubator
- *
- * The development of this extension is closely tied to MediaWiki trunk.
- * It may not work with previous MediaWiki versions.
- *
- * @file
- * @ingroup Extensions
- * @author Robin Pepermans (SPQRobin)
- */
-
-$wgExtensionCredits['other'][] = [
-       'path' => __FILE__,
-       'name' => 'Wikimedia Incubator',
-       'author' => [ 'SPQRobin', 'Hydriz' ],
-       'version' => '5.3.0',
-       'url' => 'https://www.mediawiki.org/wiki/Extension:WikimediaIncubator',
-       'descriptionmsg' => 'wminc-desc',
-];
-
-/* General (globals and/or configuration) */
-$wmincPref = 'incubatortestwiki'; // Name of the preference
-
-# only one-letter codes can be used for projects
-$wmincProjects = [
-       'p' => 'Wikipedia',
-       'b' => 'Wikibooks',
-       't' => 'Wiktionary',
-       'q' => 'Wikiquote',
-       'n' => 'Wikinews',
-       'y' => 'Wikivoyage',
-];
-# Sister projects is here defined as projects that are not on Incubator
-$wmincSisterProjects = [
-       's' => 'Wikisource',
-       'v' => 'Wikiversity',
-];
-$wmincMultilingualProjects = [
-       'meta' => 'Meta-Wiki',
-       'commons' => 'Wikimedia Commons',
-       'species' => 'Wikispecies',
-       'mediawiki' => 'MediaWiki',
-       'wikidata' => 'Wikidata',
-];
-$wmincProjectSite = [
-       'name' => 'Incubator',
-       'short' => 'inc',
-];
-$wmincTestWikiNamespaces = [
-       NS_MAIN, NS_TALK,
-       NS_TEMPLATE, NS_TEMPLATE_TALK,
-       NS_CATEGORY, NS_CATEGORY_TALK,
-       828, 829, // NS_MODULE, NS_MODULE_TALK,
-];
-$wmincLangCodeLength = 12; // can be changed if needed (depends on policy)
-// Pseudo category namespaces like "Category:Maintenance:Delete", for easy 
whitelisting and structure
-$wmincPseudoCategoryNSes = [
-       'Incubator', 'Help', 'Users', 'Maintenance', 'Files',
-];
-
-/* Test wiki admin user group */
-$wgGroupPermissions['test-sysop']['delete'] = true;
-$wgGroupPermissions['test-sysop']['undelete'] = true;
-$wgGroupPermissions['test-sysop']['deletedhistory'] = true;
-$wgGroupPermissions['test-sysop']['block'] = true;
-$wgGroupPermissions['test-sysop']['blockemail'] = true;
-$wgGroupPermissions['test-sysop']['rollback'] = true;
-$wgGroupPermissions['test-sysop']['suppressredirect'] = true;
-$wgGroupPermissions['test-sysop']['autopatrol'] = true;
-$wgAddGroups['bureaucrat'][] = 'test-sysop';
-$wgRemoveGroups['bureaucrat'][] = 'test-sysop';
-
-$wgMessagesDirs['WikimediaIncubator'] = __DIR__ . '/i18n';
-$wgExtensionMessagesFiles['WikimediaIncubatorAlias'] = __DIR__ . 
'/WikimediaIncubator.alias.php';
-$wgExtensionMessagesFiles['WikimediaIncubatorMagic'] = __DIR__ . 
'/WikimediaIncubator.i18n.magic.php';
-
-/* Special:ViewUserLang */
-$wgAutoloadClasses['SpecialViewUserLang'] = __DIR__ . 
'/SpecialViewUserLang.php';
-$wgSpecialPages['ViewUserLang'] = 'SpecialViewUserLang';
-$wgAvailableRights[] = 'viewuserlang';
-$wgHooks['ContributionsToolLinks'][] = 
'WikimediaIncubator::efLoadViewUserLangLink';
-$wgGroupPermissions['*']['viewuserlang'] = false;
-$wgGroupPermissions['sysop']['viewuserlang'] = true;
-
-/* TestWiki preference */
-$wgAutoloadClasses['WikimediaIncubator'] = __DIR__ . 
'/WikimediaIncubator.class.php';
-$wgHooks['GetPreferences'][] = 'WikimediaIncubator::onGetPreferences';
-$wgHooks['UserGetDefaultOptions'][] = 
'WikimediaIncubator::onUserGetDefaultOptions';
-$wgHooks['MagicWordwgVariableIDs'][] = 'WikimediaIncubator::magicWordVariable';
-$wgHooks['ParserGetVariableValueSwitch'][] = 
'WikimediaIncubator::magicWordValue';
-
-/* Special:MyMainPage (depending on your test wiki preference) */
-$wgAutoloadClasses['SpecialMyMainPage'] = __DIR__ . '/SpecialMyMainPage.php';
-$wgSpecialPages['MyMainPage'] = 'SpecialMyMainPage';
-
-/* Create/move page permissions */
-$wgHooks['getUserPermissionsErrors'][] = 
'WikimediaIncubator::onGetUserPermissionsErrors';
-$wgHooks['MovePageIsValidMove'][] = 
'WikimediaIncubator::onMovePageIsValidMove';
-$wgHooks['AbortMove'][] = 'WikimediaIncubator::checkPrefixMovePermissions';
-
-/* Recent Changes */
-$wgAutoloadClasses['TestWikiRC'] = __DIR__ . '/TestWikiRC.php';
-$wgHooks['ChangesListSpecialPageQuery'][] = 'TestWikiRC::onRcQuery';
-$wgHooks['SpecialRecentChangesPanel'][] = 'TestWikiRC::onRcForm';
-
-/* Automatic pref on account creation */
-$wgAutoloadClasses['AutoTestWiki'] = __DIR__ . '/CreateAccountTestWiki.php';
-$wgHooks['UserCreateForm'][] = 'AutoTestWiki::onUserCreateForm';
-$wgHooks['AddNewAccount'][] = 'AutoTestWiki::onAddNewAccount';
-
-/* Random page by test */
-$wgAutoloadClasses['SpecialRandomByTest'] = __DIR__ . 
'/SpecialRandomByTest.php';
-$wgSpecialPages['RandomByTest'] = 'SpecialRandomByTest';
-
-/* support for automatic checking in a list of databases if a wiki exists */
-$wmincExistingWikis = $wgLocalDatabases;
-/* Stupid "wiki" referring to "wikipedia" in WMF config */
-$wmincProjectDatabases = [
-       'p' => 'wiki',
-       'b' => 'wikibooks',
-       't' => 'wiktionary',
-       'q' => 'wikiquote',
-       'n' => 'wikinews',
-       's' => 'wikisource',
-       'v' => 'wikiversity',
-       'y' => 'wikivoyage',
-];
-# set this to an array or file of closed wikis (like SiteMatrix 
$wgSiteMatrixClosedSites)
-$wmincClosedWikis = false;
-
-/* Wx/xx[x] info page */
-$wgAutoloadClasses['InfoPage'] = __DIR__ . '/InfoPage.php';
-$wgHooks['ShowMissingArticle'][] = 'WikimediaIncubator::onShowMissingArticle';
-$wgHooks['EditFormPreloadText'][] = 
'WikimediaIncubator::onEditFormPreloadText';
-$wgHooks['MediaWikiPerformAction'][] = 
'WikimediaIncubator::onMediaWikiPerformAction';
-$wgHooks['TitleIsAlwaysKnown'][] = 'WikimediaIncubator::onTitleIsAlwaysKnown';
-$wgHooks['ParserFirstCallInit'][] = 
'WikimediaIncubator::onParserFirstCallInit';
-
-$wgResourceModules['WikimediaIncubator.InfoPage'] = [
-       'position' => 'top',
-       'styles' => 'InfoPage.css',
-       'localBasePath' => __DIR__,
-       'remoteExtPath' => 'WikimediaIncubator',
-];
-
-/* Possibility to set a logo per test wiki */
-$wgHooks['BeforePageDisplay'][] = 'WikimediaIncubator::fnTestWikiLogo';
-
-/* Set page content language depending on the prefix */
-$wgHooks['PageContentLanguage'][] = 
'WikimediaIncubator::onPageContentLanguage';
-
-/* List of users */
-$wgAutoloadClasses['ListUsersTestWiki'] = __DIR__ . '/ListUsersTestWiki.php';
-$wgHooks['SpecialListusersHeaderForm'][] = 
'ListUsersTestWiki::onSpecialListusersHeaderForm';
-$wgHooks['SpecialListusersQueryInfo'][] = 
'ListUsersTestWiki::onSpecialListusersQueryInfo';
-$wgHooks['SpecialListusersHeader'][] = 
'ListUsersTestWiki::onSpecialListusersHeader';
-
-/* Search in test wiki */
-$wgHooks['SpecialSearchCreateLink'][] = 
'WikimediaIncubator::onSpecialSearchCreateLink';
-$wgHooks['SpecialSearchPowerBox'][] = 
'WikimediaIncubator::onSpecialSearchPowerBox';
-$wgHooks['SpecialSearchSetupEngine'][] = 
'WikimediaIncubator::onSpecialSearchSetupEngine';
-
-/* Search for a wiki in a language */
-$wgAutoloadClasses['SpecialSearchWiki'] = __DIR__ . '/SpecialSearchWiki.php';
-$wgSpecialPages['SearchWiki'] = 'SpecialSearchWiki';
-
-/* IncubatorFirstSteps */
-$wgAutoloadClasses['SpecialIncubatorFirstSteps'] = __DIR__ . 
'/SpecialIncubatorFirstSteps.php';
-$wgSpecialPages['IncubatorFirstSteps'] = 'SpecialIncubatorFirstSteps';
-
-/* Tests */
-$wgHooks['UnitTestsList'][] = 'WikimediaIncubator::onUnitTestsList';
diff --git a/extension.json b/extension.json
new file mode 100644
index 0000000..9a3e690
--- /dev/null
+++ b/extension.json
@@ -0,0 +1,167 @@
+{
+       "name": "Wikimedia Incubator",
+       "version": "5.3.0",
+       "author": [
+               "SPQRobin",
+               "Hydriz"
+       ],
+       "url": "https://www.mediawiki.org/wiki/Extension:WikimediaIncubator";,
+       "descriptionmsg": "wminc-desc",
+       "type": "other",
+       "config": {
+               "_prefix": "wminc",
+               "Pref": "incubatortestwiki",
+               "Projects": {
+                       "p": "Wikipedia",
+                       "b": "Wikibooks",
+                       "t": "Wiktionary",
+                       "q": "Wikiquote",
+                       "n": "Wikinews",
+                       "y": "Wikivoyage"
+               },
+               "SisterProjects": {
+                       "s": "Wikisource",
+                       "v": "Wikiversity"
+               },
+               "MultilingualProjects": {
+                       "meta": "Meta-Wiki",
+                       "commons": "Wikimedia Commons",
+                       "species": "Wikispecies",
+                       "mediawiki": "MediaWiki",
+                       "wikidata": "Wikidata"
+               },
+               "ProjectSite": {
+                       "name": "Incubator",
+                       "short": "inc"
+               },
+               "TestWikiNamespaces": [
+                       0,
+                       1,
+                       10,
+                       11,
+                       14,
+                       15,
+                       828,
+                       829
+               ],
+               "LangCodeLength": 12,
+               "PseudoCategoryNSes": [
+                       "Incubator",
+                       "Help",
+                       "Users",
+                       "Maintenance",
+                       "Files"
+               ],
+               "ExistingWikis": null,
+               "ProjectDatabases": {
+                       "p": "wiki",
+                       "b": "wikibooks",
+                       "t": "wiktionary",
+                       "q": "wikiquote",
+                       "n": "wikinews",
+                       "s": "wikisource",
+                       "v": "wikiversity",
+                       "y": "wikivoyage"
+               },
+               "ClosedWikis": false
+       },
+       "GroupPermissions": {
+               "test-sysop": {
+                       "delete": true,
+                       "undelete": true,
+                       "deletedhistory": true,
+                       "block": true,
+                       "blockemail": true,
+                       "rollback": true,
+                       "suppressredirect": true,
+                       "autopatrol": true
+               },
+               "*": {
+                       "viewuserlang": false
+               },
+               "sysop": {
+                       "viewuserlang": true
+               }
+       },
+       "AddGroups": {
+               "bureaucrat": [
+                       "test-sysop"
+               ]
+       },
+       "RemoveGroups": {
+               "bureaucrat": [
+                       "test-sysop"
+               ]
+       },
+       "AvailableRights": [
+               "viewuserlang"
+       ],
+       "SpecialPages": {
+               "ViewUserLang": "SpecialViewUserLang",
+               "MyMainPage": "SpecialMyMainPage",
+               "RandomByTest": "SpecialRandomByTest",
+               "SearchWiki": "SpecialSearchWiki",
+               "IncubatorFirstSteps": "SpecialIncubatorFirstSteps"
+       },
+       "MessagesDirs": {
+               "WikimediaIncubator": [
+                       "i18n"
+               ]
+       },
+       "ExtensionMessagesFiles": {
+               "WikimediaIncubatorAlias": "WikimediaIncubator.alias.php",
+               "WikimediaIncubatorMagic": "WikimediaIncubator.i18n.magic.php"
+       },
+       "AutoloadClasses": {
+               "SpecialViewUserLang": "SpecialViewUserLang.php",
+               "WikimediaIncubator": "WikimediaIncubator.class.php",
+               "SpecialMyMainPage": "SpecialMyMainPage.php",
+               "TestWikiRC": "TestWikiRC.php",
+               "AutoTestWiki": "CreateAccountTestWiki.php",
+               "SpecialRandomByTest": "SpecialRandomByTest.php",
+               "InfoPage": "InfoPage.php",
+               "ListUsersTestWiki": "ListUsersTestWiki.php",
+               "SpecialSearchWiki": "SpecialSearchWiki.php",
+               "SpecialIncubatorFirstSteps": "SpecialIncubatorFirstSteps.php"
+       },
+       "ResourceModules": {
+               "WikimediaIncubator.InfoPage": {
+                       "position": "top",
+                       "styles": "InfoPage.css"
+               }
+       },
+       "ResourceFileModulePaths": {
+               "localBasePath": "",
+               "remoteExtPath": "WikimediaIncubator"
+       },
+       "callback": "WikimediaIncubator::onRegistration",
+       "Hooks": {
+               "ContributionsToolLinks": 
"WikimediaIncubator::efLoadViewUserLangLink",
+               "GetPreferences": "WikimediaIncubator::onGetPreferences",
+               "UserGetDefaultOptions": 
"WikimediaIncubator::onUserGetDefaultOptions",
+               "MagicWordwgVariableIDs": 
"WikimediaIncubator::magicWordVariable",
+               "ParserGetVariableValueSwitch": 
"WikimediaIncubator::magicWordValue",
+               "getUserPermissionsErrors": 
"WikimediaIncubator::onGetUserPermissionsErrors",
+               "MovePageIsValidMove": 
"WikimediaIncubator::onMovePageIsValidMove",
+               "AbortMove": "WikimediaIncubator::checkPrefixMovePermissions",
+               "ChangesListSpecialPageQuery": "TestWikiRC::onRcQuery",
+               "SpecialRecentChangesPanel": "TestWikiRC::onRcForm",
+               "UserCreateForm": "AutoTestWiki::onUserCreateForm",
+               "AddNewAccount": "AutoTestWiki::onAddNewAccount",
+               "ShowMissingArticle": 
"WikimediaIncubator::onShowMissingArticle",
+               "EditFormPreloadText": 
"WikimediaIncubator::onEditFormPreloadText",
+               "MediaWikiPerformAction": 
"WikimediaIncubator::onMediaWikiPerformAction",
+               "TitleIsAlwaysKnown": 
"WikimediaIncubator::onTitleIsAlwaysKnown",
+               "ParserFirstCallInit": 
"WikimediaIncubator::onParserFirstCallInit",
+               "BeforePageDisplay": "WikimediaIncubator::fnTestWikiLogo",
+               "PageContentLanguage": 
"WikimediaIncubator::onPageContentLanguage",
+               "SpecialListusersHeaderForm": 
"ListUsersTestWiki::onSpecialListusersHeaderForm",
+               "SpecialListusersQueryInfo": 
"ListUsersTestWiki::onSpecialListusersQueryInfo",
+               "SpecialListusersHeader": 
"ListUsersTestWiki::onSpecialListusersHeader",
+               "SpecialSearchCreateLink": 
"WikimediaIncubator::onSpecialSearchCreateLink",
+               "SpecialSearchPowerBox": 
"WikimediaIncubator::onSpecialSearchPowerBox",
+               "SpecialSearchSetupEngine": 
"WikimediaIncubator::onSpecialSearchSetupEngine",
+               "UnitTestsList": "WikimediaIncubator::onUnitTestsList"
+       },
+       "manifest_version": 1
+}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Iad2595f76b365df6322f9ed074581ec30f213d14
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikimediaIncubator
Gerrit-Branch: master
Gerrit-Owner: Anomie <bjor...@wikimedia.org>
Gerrit-Reviewer: Gergő Tisza <gti...@wikimedia.org>
Gerrit-Reviewer: Legoktm <legoktm.wikipe...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to