Remove MW 1.34 backward compatible code

Move hooks and scripts to extensions.json

Bug: T282783
Change-Id: Id63d17d04789bb36fff35e0512e7878dc8bfe12c
This commit is contained in:
Abijeet
2021-05-13 19:07:50 +05:30
committed by jenkins-bot
parent 1786fce2c6
commit 5baf437b3c
2 changed files with 45 additions and 103 deletions

View File

@@ -17,7 +17,7 @@
"descriptionmsg": "uls-desc",
"license-name": "GPL-2.0-or-later OR MIT",
"requires": {
"MediaWiki": ">= 1.34.0"
"MediaWiki": ">= 1.35.0"
},
"Hooks": {
"BeforePageDisplay": "UniversalLanguageSelectorHooks::addModules",
@@ -27,7 +27,7 @@
"MakeGlobalVariablesScript": "UniversalLanguageSelectorHooks::addVariables",
"PersonalUrls": "UniversalLanguageSelectorHooks::addPersonalBarTrigger",
"ResourceLoaderGetConfigVars": "UniversalLanguageSelectorHooks::addConfig",
"ResourceLoaderRegisterModules": "UniversalLanguageSelectorHooks::onResourceLoaderRegisterModules",
"SkinAfterPortlet": "UniversalLanguageSelectorHooks::onSkinAfterPortlet",
"UserGetLanguageObject": "UniversalLanguageSelectorHooks::getLanguage"
},
"APIModules": {
@@ -171,6 +171,21 @@
"localBasePath": "resources",
"remoteExtPath": "UniversalLanguageSelector/resources"
},
"ext.uls.ime": {
"localBasePath": "resources",
"scripts": "js/ext.uls.ime.js",
"dependencies": [
"ext.uls.common",
"ext.uls.preferences",
"ext.uls.mediawiki",
"ext.uls.messages",
"jquery.ime"
],
"messages": [
"uls-ime-helppage"
],
"remoteExtPath": "UniversalLanguageSelector/resources"
},
"ext.uls.displaysettings": {
"scripts": [
"js/ext.uls.inputsettings.js",
@@ -311,6 +326,32 @@
},
"remoteExtPath": "UniversalLanguageSelector/resources"
},
"ext.uls.setlang": {
"localBasePath": "resources",
"styles": [
"css/ext.uls.dialog.less",
"css/ext.uls.setlang.less"
],
"scripts": [
"js/ext.uls.dialog.js",
"js/ext.uls.setlang.js"
],
"dependencies": [
"mediawiki.api",
"mediawiki.ui.button",
"mediawiki.Uri"
],
"messages": [
"ext-uls-setlang-error",
"ext-uls-setlang-unknown-error",
"ext-uls-setlang-heading",
"ext-uls-setlang-message",
"ext-uls-setlang-accept",
"ext-uls-setlang-cancel",
"ext-uls-setlang-loading"
],
"remoteExtPath": "UniversalLanguageSelector/resources"
},
"ext.uls.webfonts": {
"targets": [ "desktop", "mobile" ],
"scripts": "js/ext.uls.webfonts.js",

View File

@@ -26,15 +26,7 @@ class UniversalLanguageSelectorHooks {
* Used when extension registration in use which skips the main php file
*/
public static function setVersionConstant() {
global $wgHooks;
define( 'ULS_VERSION', '2020-07-20' );
// The SkinAfterPortlet hook was introduced in version >= 1.35.
// It is the same as BaseTemplateAfterPortlet with the exception of its parameters.
if ( interface_exists( MediaWiki\Skins\Hook\SkinAfterPortletHook::class ) ) {
$wgHooks['SkinAfterPortlet'][] = "UniversalLanguageSelectorHooks::onSkinAfterPortlet";
} else {
$wgHooks['BaseTemplateAfterPortlet'][] = "UniversalLanguageSelectorHooks::onBaseTemplateAfterPortlet";
}
}
/**
@@ -85,14 +77,8 @@ class UniversalLanguageSelectorHooks {
if ( $wgULSCompactLanguageLinksBetaFeature === false ) {
// Compact language links is a default feature in this wiki.
// Check user preference
$services = MediaWikiServices::getInstance();
if ( method_exists( $services, 'getUserOptionsLookup' ) ) {
// MW 1.35 +
return $services->getUserOptionsLookup()
->getBoolOption( $user, 'compact-language-links' );
} else {
return $user->getBoolOption( 'compact-language-links' );
}
return MediaWikiServices::getInstance()->getUserOptionsLookup()
->getBoolOption( $user, 'compact-language-links' );
}
return false;
@@ -178,63 +164,6 @@ class UniversalLanguageSelectorHooks {
$out->addModules( 'ext.uls.setlang' );
}
/**
* @param ResourceLoader $resourceLoader
*/
public static function onResourceLoaderRegisterModules( ResourceLoader $resourceLoader ) {
global $wgVersion;
// Support: MediaWiki 1.34
$hasOldNotify = version_compare( $wgVersion, '1.35', '<' );
$tpl = [
'localBasePath' => dirname( __DIR__ ) . '/resources',
'remoteExtPath' => 'UniversalLanguageSelector/resources',
];
$modules = [
"ext.uls.ime" => $tpl + [
"scripts" => "js/ext.uls.ime.js",
"dependencies" => array_merge( [
"ext.uls.common",
"ext.uls.preferences",
"ext.uls.mediawiki",
"ext.uls.messages",
"jquery.ime",
], $hasOldNotify ? [ 'mediawiki.notify' ] : [] ),
"messages" => [
"uls-ime-helppage"
],
],
"ext.uls.setlang" => $tpl + [
"styles" => [
"css/ext.uls.dialog.less",
"css/ext.uls.setlang.less"
],
"scripts" => [
"js/ext.uls.dialog.js",
"js/ext.uls.setlang.js"
],
"dependencies" => array_merge( [
"mediawiki.api",
"mediawiki.ui.button",
"mediawiki.Uri"
], $hasOldNotify ? [ 'mediawiki.notify' ] : [] ),
"messages" => [
"ext-uls-setlang-error",
"ext-uls-setlang-unknown-error",
"ext-uls-setlang-heading",
"ext-uls-setlang-message",
"ext-uls-setlang-accept",
"ext-uls-setlang-cancel",
"ext-uls-setlang-loading"
],
],
];
$resourceLoader->register( $modules );
}
/**
* Add some tabs for navigation for users who do not use Ajax interface.
* Hook: PersonalUrls
@@ -494,34 +423,6 @@ class UniversalLanguageSelectorHooks {
}
}
/**
* Kept for backward compatability with MW < 1.35, and older versions of skins
* such as Vector and Timeless
* @param QuickTemplate $template
* @param string $name
* @param string &$content
*/
public static function onBaseTemplateAfterPortlet(
QuickTemplate $template,
string $name,
string &$content
) {
global $wgULSPosition;
if ( $wgULSPosition !== 'interlanguage' ) {
return;
}
if ( !self::isToolbarEnabled( $template->getSkin()->getUser() ) ) {
return;
}
// Set to an empty array, just to make sure that the section appears
if ( $template->get( 'language_urls' ) === false ) {
$template->set( 'language_urls', [] );
}
}
/**
* @param Skin $skin
* @param string $name