Paladox has uploaded a new change for review.

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

Change subject: Add extension.json, remove php entry point
......................................................................

Add extension.json, remove php entry point

Change-Id: I1d29b0e38a258dc2c393c77aa72955aaab4e301d
---
M WikimediaIncubator.class.php
M WikimediaIncubator.php
A extension.json
3 files changed, 230 insertions(+), 174 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikimediaIncubator 
refs/changes/08/236008/1

diff --git a/WikimediaIncubator.class.php b/WikimediaIncubator.class.php
index c7290cb..38cac87 100644
--- a/WikimediaIncubator.class.php
+++ b/WikimediaIncubator.class.php
@@ -11,6 +11,22 @@
 
 class WikimediaIncubator {
 
+       public static function registerExtension() {
+               global $wgGroupPermissions;
+               /* 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;
+
+               $wgGroupPermissions['*']['viewuserlang'] = false;
+               $wgGroupPermissions['sysop']['viewuserlang'] = true;
+       }
+
        /**
         * Add default preference
         * @param $defOpt Array
diff --git a/WikimediaIncubator.php b/WikimediaIncubator.php
index df3a4d9..ee387d3 100644
--- a/WikimediaIncubator.php
+++ b/WikimediaIncubator.php
@@ -1,176 +1,16 @@
 <?php
-if ( !defined( 'MEDIAWIKI' ) ) { die( "This file is an extension to the 
MediaWiki software and cannot be used standalone.\n" ); }
-/**
- * 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'][] = array(
-       'path' => __FILE__,
-       'name' => 'Wikimedia Incubator',
-       'author' => array( '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 = array(
-       '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 = array(
-       's' => 'Wikisource',
-       'v' => 'Wikiversity',
-);
-$wmincMultilingualProjects = array(
-       'meta' => 'Meta-Wiki',
-       'commons' => 'Wikimedia Commons',
-       'species' => 'Wikispecies',
-       'mediawiki' => 'MediaWiki',
-       'wikidata' => 'Wikidata',
-);
-$wmincProjectSite = array(
-       'name' => 'Incubator',
-       'short' => 'inc',
-);
-$wmincTestWikiNamespaces = array(
-       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 = array(
-       '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['SpecialRecentChangesQuery'][] = '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 = array(
-       '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'] = array(
-       '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';
+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+' );
+}
diff --git a/extension.json b/extension.json
new file mode 100644
index 0000000..a1dae25
--- /dev/null
+++ b/extension.json
@@ -0,0 +1,200 @@
+{
+       "name": "Wikimedia Incubator",
+       "version": "5.3.0",
+       "author": [
+               "SPQRobin",
+               "Hydriz"
+       ],
+       "url": "https://www.mediawiki.org/wiki/Extension:WikimediaIncubator";,
+       "descriptionmsg": "wminc-desc",
+       "type": "other",
+       "callback": "WikimediaIncubator::registerExtension",
+       "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": {
+                       "styles": "InfoPage.css"
+               }
+       },
+       "ResourceFileModulePaths": {
+               "localBasePath": "",
+               "remoteExtPath": "WikimediaIncubator"
+       },
+       "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"
+               ],
+               "SpecialRecentChangesQuery": [
+                       "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"
+               ]
+       },
+       "config": {
+               "_prefix": "wminc",
+               "Pref": "incubatortestwiki",
+               "WmincPref": "incubatortestwiki",
+               "WmincProjects": {
+                       "p": "Wikipedia",
+                       "b": "Wikibooks",
+                       "t": "Wiktionary",
+                       "q": "Wikiquote",
+                       "n": "Wikinews",
+                       "y": "Wikivoyage"
+               },
+               "WmincSisterProjects": {
+                       "s": "Wikisource",
+                       "v": "Wikiversity"
+               },
+               "WmincMultilingualProjects": {
+                       "meta": "Meta-Wiki",
+                       "commons": "Wikimedia Commons",
+                       "species": "Wikispecies",
+                       "mediawiki": "MediaWiki",
+                       "wikidata": "Wikidata"
+               },
+               "WmincProjectSite": {
+                       "name": "Incubator",
+                       "short": "inc"
+               },
+               "WmincTestWikiNamespaces": [
+                       0,
+                       1,
+                       10,
+                       11,
+                       14,
+                       15,
+                       828,
+                       829
+               ],
+               "WmincLangCodeLength": 12,
+               "WmincPseudoCategoryNSes": [
+                       "Incubator",
+                       "Help",
+                       "Users",
+                       "Maintenance",
+                       "Files"
+               ],
+               "WmincProjectDatabases": {
+                       "p": "wiki",
+                       "b": "wikibooks",
+                       "t": "wiktionary",
+                       "q": "wikiquote",
+                       "n": "wikinews",
+                       "s": "wikisource",
+                       "v": "wikiversity",
+                       "y": "wikivoyage"
+               },
+               "WmincClosedWikis": false
+       },
+       "manifest_version": 1
+}

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1d29b0e38a258dc2c393c77aa72955aaab4e301d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikimediaIncubator
Gerrit-Branch: master
Gerrit-Owner: Paladox <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to