X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fresourceloader%2FResourceLoaderContext.php;h=58152ea08327f8a327cf9e4657f51545b5e3d1d7;hb=95b9beff566104ba9375b13f6bad41b5012a1f56;hp=f11f294f9b815d94fa122e1690403b28547e24e9;hpb=b235c8be4ba75590871db5fe04c6a315d5008f9d;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/resourceloader/ResourceLoaderContext.php b/includes/resourceloader/ResourceLoaderContext.php index f11f294f9b..58152ea083 100644 --- a/includes/resourceloader/ResourceLoaderContext.php +++ b/includes/resourceloader/ResourceLoaderContext.php @@ -68,7 +68,7 @@ class ResourceLoaderContext implements MessageLocalizer { // List of modules $modules = $request->getRawVal( 'modules' ); - $this->modules = $modules ? self::expandModuleNames( $modules ) : []; + $this->modules = $modules ? ResourceLoader::expandModuleNames( $modules ) : []; // Various parameters $this->user = $request->getRawVal( 'user' ); @@ -84,47 +84,25 @@ class ResourceLoaderContext implements MessageLocalizer { $this->skin = $request->getRawVal( 'skin' ); $skinnames = Skin::getSkinNames(); - // If no skin is specified, or we don't recognize the skin, use the default skin if ( !$this->skin || !isset( $skinnames[$this->skin] ) ) { - $this->skin = $this->getConfig()->get( 'DefaultSkin' ); + // The 'skin' parameter is required. (Not yet enforced.) + // For requests without a known skin specified, + // use MediaWiki's 'fallback' skin for skin-specific decisions. + $this->skin = 'fallback'; } } /** - * Expand a string of the form `jquery.foo,bar|jquery.ui.baz,quux` to - * an array of module names like `[ 'jquery.foo', 'jquery.bar', - * 'jquery.ui.baz', 'jquery.ui.quux' ]`. - * - * This process is reversed by ResourceLoader::makePackedModulesString(). + * Reverse the process done by ResourceLoader::makePackedModulesString(). * + * @deprecated since 1.33 Use ResourceLoader::expandModuleNames instead. * @param string $modules Packed module name list * @return array Array of module names + * @codeCoverageIgnore */ public static function expandModuleNames( $modules ) { - $retval = []; - $exploded = explode( '|', $modules ); - foreach ( $exploded as $group ) { - if ( strpos( $group, ',' ) === false ) { - // This is not a set of modules in foo.bar,baz notation - // but a single module - $retval[] = $group; - } else { - // This is a set of modules in foo.bar,baz notation - $pos = strrpos( $group, '.' ); - if ( $pos === false ) { - // Prefixless modules, i.e. without dots - $retval = array_merge( $retval, explode( ',', $group ) ); - } else { - // We have a prefix and a bunch of suffixes - $prefix = substr( $group, 0, $pos ); // 'foo' - $suffixes = explode( ',', substr( $group, $pos + 1 ) ); // [ 'bar', 'baz' ] - foreach ( $suffixes as $suffix ) { - $retval[] = "$prefix.$suffix"; - } - } - } - } - return $retval; + wfDeprecated( __METHOD__, '1.33' ); + return ResourceLoader::expandModuleNames( $modules ); } /** @@ -132,7 +110,6 @@ class ResourceLoaderContext implements MessageLocalizer { * things that don't "really" need a context. * * Use cases: - * - Creating html5shiv script tag in OutputPage. * - Unit tests (deprecated, create empty instance directly or use RLTestCase). * * @return ResourceLoaderContext @@ -195,7 +172,9 @@ class ResourceLoaderContext implements MessageLocalizer { $lang = $this->getRequest()->getRawVal( 'lang', '' ); // Stricter version of RequestContext::sanitizeLangCode() if ( !Language::isValidBuiltInCode( $lang ) ) { - $lang = $this->getConfig()->get( 'LanguageCode' ); + // The 'lang' parameter is required. (Not yet enforced.) + // If omitted, localise with the dummy language code. + $lang = 'qqx'; } $this->language = $lang; }