MediaWiki REL1_37
ResourceLoaderOOUIFileModule Class Reference

Module which magically loads the right skinScripts and skinStyles for every skin, using the specified OOUI theme for each. More...

Inheritance diagram for ResourceLoaderOOUIFileModule:
Collaboration diagram for ResourceLoaderOOUIFileModule:

Public Member Functions

 __construct (array $options=[])
 
 setSkinStylesOverride (array $moduleSkinStyles)
 Provide overrides for skinStyles to modules that support that.
 
- Public Member Functions inherited from ResourceLoaderFileModule
 __construct (array $options=[], $localBasePath=null, $remoteBasePath=null)
 Constructs a new module from an options array.
 
 enableModuleContentVersion ()
 Disable module content versioning.
 
 getAllStyleFiles ()
 Returns all style files and all skin style files used by this module.
 
 getDefinitionSummary (ResourceLoaderContext $context)
 Get the definition summary for this module.
 
 getDependencies (ResourceLoaderContext $context=null)
 Gets list of names of modules this module depends on.
 
 getFlip (ResourceLoaderContext $context)
 Get whether CSS for this module should be flipped.
 
 getGroup ()
 Gets the name of the group this module should be loaded in.
 
 getMessages ()
 Gets list of message keys used by this module.
 
 getPackageFiles (ResourceLoaderContext $context)
 Resolves the package files definition and generates the content of each package file.
 
 getScript (ResourceLoaderContext $context)
 Gets all scripts for a given context concatenated together.
 
 getScriptURLsForDebug (ResourceLoaderContext $context)
 
 getSkipFunction ()
 
 getStyleFiles (ResourceLoaderContext $context)
 Get a list of file paths for all styles in this module, in order of proper inclusion.
 
 getStyles (ResourceLoaderContext $context)
 Get all styles for a given context.
 
 getStyleSheetLang ( $path)
 Infer the stylesheet language from a stylesheet file path.
 
 getStyleURLsForDebug (ResourceLoaderContext $context)
 
 getTargets ()
 Get target(s) for the module, eg ['desktop'] or ['desktop', 'mobile'].
 
 getTemplates ()
 Takes named templates by the module and returns an array mapping.
 
 getType ()
 Get the module's load type.
 
 readStyleFiles (array $styles, ResourceLoaderContext $context)
 Get the contents of a list of CSS files.
 
 requiresES6 ()
 Whether the module requires ES6 support in the client.
 
 supportsURLLoading ()
 
- Public Member Functions inherited from ResourceLoaderModule
 getConfig ()
 
 getDeprecationInformation (ResourceLoaderContext $context)
 Get JS representing deprecation information for the current module if available.
 
 getHeaders (ResourceLoaderContext $context)
 Get headers to send as part of a module web response.
 
 getModuleContent (ResourceLoaderContext $context)
 Get an array of this module's resources.
 
 getName ()
 Get this module's name.
 
 getOrigin ()
 Get this module's origin.
 
 getSource ()
 Get the source of this module.
 
 getVersionHash (ResourceLoaderContext $context)
 Get a string identifying the current version of this module in a given context.
 
 isKnownEmpty (ResourceLoaderContext $context)
 Check whether this module is known to be empty.
 
 setConfig (Config $config)
 
 setDependencyAccessCallbacks (callable $loadCallback, callable $saveCallback)
 Inject the functions that load/save the indirect file path dependency list from storage.
 
 setFileDependencies (ResourceLoaderContext $context, array $paths)
 Set the indirect dependencies for this module persuant to the skin/language context.
 
 setHookContainer (HookContainer $hookContainer)
 
 setLogger (LoggerInterface $logger)
 
 setMessageBlob ( $blob, $lang)
 Set in-object cache for message blobs.
 
 setName ( $name)
 Set this module's name.
 
 shouldEmbedModule (ResourceLoaderContext $context)
 Check whether this module should be embeded rather than linked.
 

Private Member Functions

 extendSkinSpecific (array $skinSpecific, array $themeSpecific)
 Prepend theme-specific resources on behalf of the skin.
 
 getSkinSpecific ( $module, $which)
 Helper function to generate values for 'skinStyles' and 'skinScripts'.
 

Private Attributes

array< string, string|ResourceLoaderFilePath$themeStyles = []
 

Additional Inherited Members

- Static Public Member Functions inherited from ResourceLoaderFileModule
static extractBasePaths (array $options=[], $localBasePath=null, $remoteBasePath=null)
 Extract a pair of local and remote base paths from module definition information.
 
static getPackageFileType ( $path)
 Infer the file type from a package file path.
 
- Static Public Member Functions inherited from ResourceLoaderModule
static expandRelativePaths (array $filePaths)
 Expand directories relative to $IP.
 
static getRelativePaths (array $filePaths)
 Make file paths relative to MediaWiki directory.
 
static getVary (ResourceLoaderContext $context)
 Get vary string.
 
- Protected Member Functions inherited from ResourceLoaderFileModule
 compileLessFile ( $fileName, ResourceLoaderContext $context)
 
 compileLessString ( $style, $stylePath, ResourceLoaderContext $context)
 Compile a LESS string into CSS.
 
 getAllSkinStyleFiles ()
 Gets a list of file paths for all skin style files in the module, for all available skins.
 
 getLocalPath ( $path)
 
 getPath ( $path)
 
 getRemotePath ( $path)
 
 getSkinStyleFiles ( $skinName)
 Gets a list of file paths for all skin styles in the module used by the skin.
 
 getVueComponentParser ()
 
 processStyle ( $style, $styleLang, $path, ResourceLoaderContext $context)
 Process a CSS/LESS string.
 
 readStyleFile ( $path, ResourceLoaderContext $context)
 Read and process a style file.
 
 stripBom ( $input)
 Takes an input string and removes the UTF-8 BOM character if present.
 
- Protected Member Functions inherited from ResourceLoaderModule
 buildContent (ResourceLoaderContext $context)
 Bundle all resources attached to this module into an array.
 
 getFileDependencies (ResourceLoaderContext $context)
 Get the indirect dependencies for this module persuant to the skin/language context.
 
 getHookRunner ()
 Get a HookRunner for running core hooks.
 
 getLessVars (ResourceLoaderContext $context)
 Get module-specific LESS variables, if any.
 
 getLogger ()
 
 getMessageBlob (ResourceLoaderContext $context)
 Get the hash of the message blob.
 
 getPreloadLinks (ResourceLoaderContext $context)
 Get a list of resources that web browsers may preload.
 
 saveFileDependencies (ResourceLoaderContext $context, array $curFileRefs)
 Save the indirect dependencies for this module persuant to the skin/language context.
 
 validateScriptFile ( $fileName, $contents)
 Validate a user-provided JavaScript blob.
 
- Static Protected Member Functions inherited from ResourceLoaderFileModule
static collateFilePathListByOption (array $list, $option, $default)
 Collates file paths by option (where provided).
 
static tryForKey (array $list, $key, $fallback=null)
 Get a list of element that match a key, optionally using a fallback key.
 
- Static Protected Member Functions inherited from ResourceLoaderModule
static safeFileHash ( $filePath)
 Compute a non-cryptographic string hash of a file's contents.
 
- Protected Attributes inherited from ResourceLoaderFileModule
bool $debugRaw = true
 Link to raw files in debug mode.
 
array $debugScripts = []
 List of paths to JavaScript files to include in debug mode.
 
array $dependencies = []
 List of modules this module depends on.
 
bool $es6 = false
 Whether this module requires the client to support ES6.
 
string $group
 Name of group to load this module in.
 
bool $hasGeneratedStyles = false
 Whether getStyleURLsForDebug should return raw file paths, or return load.php urls.
 
array $languageScripts = []
 List of JavaScript files to include when using a specific language.
 
string $localBasePath = ''
 Local base path, see __construct()
 
array $localFileRefs = []
 Place where readStyleFile() tracks file dependencies.
 
array $messages = []
 List of message keys used by this module.
 
array $missingLocalFileRefs = []
 Place where readStyleFile() tracks file dependencies for non-existent files.
 
bool $noflip = false
 Whether CSSJanus flipping should be skipped for this module.
 
array $packageFiles = null
 List of packaged files to make available through require()
 
string $remoteBasePath = ''
 Remote base path, see __construct()
 
array $scripts = []
 List of paths to JavaScript files to always include.
 
array $skinScripts = []
 List of JavaScript files to include when using a specific skin.
 
array $skinStyles = []
 List of paths to CSS files to include when using specific skins.
 
string $skipFunction = null
 File name containing the body of the skip function.
 
array $styles = []
 List of paths to CSS files to always include.
 
string[] $targets = [ 'desktop' ]
 
array $templates = []
 Saves a list of the templates named by the modules.
 
VueComponentParser null $vueComponentParser = null
 Lazy-created by getVueComponentParser()
 
- Protected Attributes inherited from ResourceLoaderModule
Config $config
 
array $contents = []
 Map of (context hash => cached module content)
 
string bool $deprecated = false
 Deprecation string or true if deprecated; false otherwise.
 
array $fileDeps = []
 Map of (variant => indirect file dependencies)
 
LoggerInterface $logger
 
array $msgBlobs = []
 Map of (language => in-object cache for message blob)
 
string null $name = null
 Module name.
 
int $origin = self::ORIGIN_CORE_SITEWIDE
 Script and style modules form a hierarchy of trustworthiness, with core modules like skins and jQuery as most trustworthy, and user scripts as least trustworthy.
 
string[] $targets = [ 'desktop' ]
 What client platforms the module targets (e.g.
 
array $versionHash = []
 Map of (context hash => cached module version hash)
 

Detailed Description

Module which magically loads the right skinScripts and skinStyles for every skin, using the specified OOUI theme for each.

Access: internal

Definition at line 28 of file ResourceLoaderOOUIFileModule.php.

Constructor & Destructor Documentation

◆ __construct()

ResourceLoaderOOUIFileModule::__construct ( array  $options = [])

Member Function Documentation

◆ extendSkinSpecific()

ResourceLoaderOOUIFileModule::extendSkinSpecific ( array  $skinSpecific,
array  $themeSpecific 
)
private

Prepend theme-specific resources on behalf of the skin.

The expected order of styles and scripts in the output is:

  1. Theme-specific resources for a given skin.
  2. Module-defined resources for a specific skin, falling back to module-defined "default" skin resources.
  3. Skin-defined resources for a specific module, which can either append to or replace the "default" (via ResourceModuleSkinStyles in skin.json) Note that skins can only define resources for a module if that module does not already explicitly provide resources for that skin.
Parameters
array$skinSpecificModule-defined 'skinScripts' or 'skinStyles'.
array$themeSpecific
Returns
array Modified $skinSpecific

Definition at line 94 of file ResourceLoaderOOUIFileModule.php.

Referenced by __construct().

◆ getSkinSpecific()

ResourceLoaderOOUIFileModule::getSkinSpecific (   $module,
  $which 
)
private

Helper function to generate values for 'skinStyles' and 'skinScripts'.

Parameters
string$moduleModule to generate skinStyles/skinScripts for: 'core', 'widgets', 'toolbars', 'windows'
string$which'scripts' or 'styles'
Returns
array<string,string|ResourceLoaderFilePath>

Definition at line 60 of file ResourceLoaderOOUIFileModule.php.

References getThemeScriptsPath(), and getThemeStylesPath().

Referenced by __construct().

◆ setSkinStylesOverride()

ResourceLoaderOOUIFileModule::setSkinStylesOverride ( array  $moduleSkinStyles)

Provide overrides for skinStyles to modules that support that.

This MUST be called after self::setName().

Since
1.37
See also
$wgResourceModuleSkinStyles
Parameters
array$moduleSkinStyles

Reimplemented from ResourceLoaderFileModule.

Definition at line 46 of file ResourceLoaderOOUIFileModule.php.

Member Data Documentation

◆ $themeStyles

array<string,string|ResourceLoaderFilePath> ResourceLoaderOOUIFileModule::$themeStyles = []
private

Definition at line 32 of file ResourceLoaderOOUIFileModule.php.


The documentation for this class was generated from the following file: