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