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 <[email protected]>
Gerrit-Reviewer: Gergő Tisza <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits