From 5baf437b3c749c73814ba188a9846c21086ddced Mon Sep 17 00:00:00 2001 From: Abijeet Date: Thu, 13 May 2021 19:07:50 +0530 Subject: [PATCH] Remove MW 1.34 backward compatible code Move hooks and scripts to extensions.json Bug: T282783 Change-Id: Id63d17d04789bb36fff35e0512e7878dc8bfe12c --- extension.json | 45 ++++++++- includes/UniversalLanguageSelectorHooks.php | 103 +------------------- 2 files changed, 45 insertions(+), 103 deletions(-) diff --git a/extension.json b/extension.json index daee60d6..47e65e9f 100644 --- a/extension.json +++ b/extension.json @@ -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", diff --git a/includes/UniversalLanguageSelectorHooks.php b/includes/UniversalLanguageSelectorHooks.php index 62f6855a..be247071 100644 --- a/includes/UniversalLanguageSelectorHooks.php +++ b/includes/UniversalLanguageSelectorHooks.php @@ -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