MediaWiki REL1_34
ResourceLoaderImageModule Class Reference

Module for generated and embedded images. More...

Inheritance diagram for ResourceLoaderImageModule:
Collaboration diagram for ResourceLoaderImageModule:

Public Member Functions

 __construct ( $options=[], $localBasePath=null)
 Constructs a new module from an options array.
 
 getDefinitionSummary (ResourceLoaderContext $context)
 Get the definition summary for this module.
 
 getGlobalVariants (ResourceLoaderContext $context)
 Get list of variants in this module that are 'global', i.e., available for every image regardless of image options.
 
 getImage ( $name, ResourceLoaderContext $context)
 Get a ResourceLoaderImage object for given image.
 
 getImages (ResourceLoaderContext $context)
 Get ResourceLoaderImage objects for all images.
 
 getPrefix ()
 Get CSS class prefix used by this module.
 
 getSelectors ()
 Get CSS selector templates used by this module.
 
 getStyles (ResourceLoaderContext $context)
 
 getType ()
 
 supportsURLLoading ()
 
- Public Member Functions inherited from ResourceLoaderModule
 enableModuleContentVersion ()
 Whether to generate version hash based on module content.
 
 getConfig ()
 
 getDependencies (ResourceLoaderContext $context=null)
 Get a list of modules this module depends on.
 
 getDeprecationInformation (ResourceLoaderContext $context=null)
 Get JS representing deprecation information for the current module if available.
 
 getFlip (ResourceLoaderContext $context)
 
 getGroup ()
 Get the group this module is in.
 
 getHeaders (ResourceLoaderContext $context)
 Get headers to send as part of a module web response.
 
 getMessages ()
 Get the messages needed for this module.
 
 getModuleContent (ResourceLoaderContext $context)
 Get an array of this module's resources.
 
 getName ()
 Get this module's name.
 
 getOrigin ()
 Get this module's origin.
 
 getScript (ResourceLoaderContext $context)
 Get all JS for this module for a given language and skin.
 
 getScriptURLsForDebug (ResourceLoaderContext $context)
 Get the URL or URLs to load for this module's JS in debug mode.
 
 getSkipFunction ()
 Get the skip function.
 
 getSource ()
 Get the source of this module.
 
 getStyleURLsForDebug (ResourceLoaderContext $context)
 Get the URL or URLs to load for this module's CSS in debug mode.
 
 getTargets ()
 Get target(s) for the module, eg ['desktop'] or ['desktop', 'mobile'].
 
 getTemplates ()
 Takes named templates by the module and returns an array mapping.
 
 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)
 
 setFileDependencies (ResourceLoaderContext $context, $files)
 Set in-object cache for file dependencies.
 
 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.
 

Static Public Member Functions

static extractLocalBasePath ( $options, $localBasePath=null)
 Extract a local base path from module definition information.
 
- 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

 getCssDeclarations ( $primary, $fallback)
 SVG support using a transparent gradient to guarantee cross-browser compatibility (browsers able to understand gradient syntax support also SVG).
 
 getLocalPath ( $path)
 
 loadFromDefinition ()
 Parse definition and external JSON data, if referenced.
 
- Protected Member Functions inherited from ResourceLoaderModule
 buildContent (ResourceLoaderContext $context)
 Bundle all resources attached to this module into an array.
 
 getFileDependencies (ResourceLoaderContext $context)
 Get the files this module depends on indirectly for a given skin.
 
 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, $localFileRefs)
 Set the files this module depends on indirectly for a given skin.
 
 validateScriptFile ( $fileName, $contents)
 Validate a given script file; if valid returns the original source.
 

Protected Attributes

string null $defaultColor = null
 
array null $definition = null
 
array null $globalVariants = null
 
ResourceLoaderImage[][] null $imageObjects = null
 
array $images = []
 
string $localBasePath = ''
 Local base path, see __construct()
 
 $origin = self::ORIGIN_CORE_SITEWIDE
 
string null $prefix = null
 
 $selectorWithoutVariant = '.{prefix}-{name}'
 
 $selectorWithVariant = '.{prefix}-{name}-{variant}'
 
 $targets = [ 'desktop', 'mobile' ]
 
 $useDataURI = true
 
array $variants = []
 
- 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)
 

Private Member Functions

 getFileHashes (ResourceLoaderContext $context)
 Helper method for getDefinitionSummary.
 
 getStyleDeclarations (ResourceLoaderContext $context, ResourceLoaderImage $image, $script, $variant=null)
 This method must not be used by getDefinitionSummary as doing so would cause an infinite loop (we use ResourceLoaderImage::getUrl below which calls Module:getVersionHash, which calls Module::getDefinitionSummary).
 

Additional Inherited Members

- Static Protected Member Functions inherited from ResourceLoaderModule
static javaScriptParser ()
 
static safeFileHash ( $filePath)
 Compute a non-cryptographic string hash of a file's contents.
 
static safeFilemtime ( $filePath)
 Safe version of filemtime(), which doesn't throw a PHP warning if the file doesn't exist.
 

Detailed Description

Module for generated and embedded images.

Since
1.25

Definition at line 28 of file ResourceLoaderImageModule.php.

Constructor & Destructor Documentation

◆ __construct()

ResourceLoaderImageModule::__construct (   $options = [],
  $localBasePath = null 
)

Constructs a new module from an options array.

Parameters
array$optionsList of options; if not given or empty, an empty module will be constructed
string | null$localBasePathBase path to prepend to all local paths in $options. Defaults to $IP

Below is a description for the $options array:

Construction options:
[
// Base path to prepend to all local paths in $options. Defaults to $IP
'localBasePath' => [base path],
// Path to JSON file that contains any of the settings below
'data' => [file path string]
// CSS class prefix to use in all style rules
'prefix' => [CSS class prefix],
// Alternatively: Format of CSS selector to use in all style rules
'selector' => [CSS selector template, variables: {prefix} {name} {variant}],
// Alternatively: When using variants
'selectorWithoutVariant' => [CSS selector template, variables: {prefix} {name}],
'selectorWithVariant' => [CSS selector template, variables: {prefix} {name} {variant}],
// List of variants that may be used for the image files
'variants' => [
// This level of nesting can be omitted if you use the same images for every skin
[skin name (or 'default')] => [
[variant name] => [
'color' => [color string, e.g. '#ffff00'],
'global' => [boolean, if true, this variant is available
for all images of this type],
],
...
],
...
],
// List of image files and their options
'images' => [
// This level of nesting can be omitted if you use the same images for every skin
[skin name (or 'default')] => [
[icon name] => [
'file' => [file path string or array whose values are file path strings
and whose keys are 'default', 'ltr', 'rtl', a single
language code like 'en', or a list of language codes like
'en,de,ar'],
'variants' => [array of variant name strings, variants
available for this image],
],
...
],
...
],
]
Exceptions
InvalidArgumentException

Reimplemented in ResourceLoaderOOUIIconPackModule.

Definition at line 114 of file ResourceLoaderImageModule.php.

References $localBasePath.

Member Function Documentation

◆ extractLocalBasePath()

static ResourceLoaderImageModule::extractLocalBasePath (   $options,
  $localBasePath = null 
)
static

Extract a local base path from module definition information.

Parameters
array$optionsModule definition
string | null$localBasePathPath to use if not provided in module definition. Defaults to $IP
Returns
string Local base path

Reimplemented in ResourceLoaderOOUIIconPackModule.

Definition at line 478 of file ResourceLoaderImageModule.php.

References $IP, and $localBasePath.

◆ getCssDeclarations()

ResourceLoaderImageModule::getCssDeclarations (   $primary,
  $fallback 
)
protected

SVG support using a transparent gradient to guarantee cross-browser compatibility (browsers able to understand gradient syntax support also SVG).

http://pauginer.tumblr.com/post/36614680636/invisible-gradient-technique

Keep synchronized with the .background-image-svg LESS mixin in /resources/src/mediawiki.less/mediawiki.mixins.less.

Parameters
string$primaryPrimary URI
string$fallbackFallback URI
Returns
string[] CSS declarations to use given URIs as background-image

Definition at line 398 of file ResourceLoaderImageModule.php.

References $fallback, and CSSMin\buildUrlValue().

Referenced by getStyleDeclarations().

◆ getDefinitionSummary()

ResourceLoaderImageModule::getDefinitionSummary ( ResourceLoaderContext  $context)

Get the definition summary for this module.

Parameters
ResourceLoaderContext$context
Returns
array

Reimplemented from ResourceLoaderModule.

Definition at line 420 of file ResourceLoaderImageModule.php.

References $context, getFileHashes(), and loadFromDefinition().

◆ getFileHashes()

ResourceLoaderImageModule::getFileHashes ( ResourceLoaderContext  $context)
private

Helper method for getDefinitionSummary.

Parameters
ResourceLoaderContext$context
Returns
array

Definition at line 448 of file ResourceLoaderImageModule.php.

References $context, ResourceLoaderModule\$name, getImages(), and loadFromDefinition().

Referenced by getDefinitionSummary().

◆ getGlobalVariants()

ResourceLoaderImageModule::getGlobalVariants ( ResourceLoaderContext  $context)

Get list of variants in this module that are 'global', i.e., available for every image regardless of image options.

Parameters
ResourceLoaderContext$context
Returns
string[]

Definition at line 297 of file ResourceLoaderImageModule.php.

References ResourceLoaderModule\$config, $context, ResourceLoaderModule\$name, and loadFromDefinition().

Referenced by getImages().

◆ getImage()

ResourceLoaderImageModule::getImage (   $name,
ResourceLoaderContext  $context 
)

Get a ResourceLoaderImage object for given image.

Parameters
string$nameImage name
ResourceLoaderContext$context
Returns
ResourceLoaderImage|null

Definition at line 238 of file ResourceLoaderImageModule.php.

References $images, ResourceLoaderModule\$name, getImages(), and loadFromDefinition().

◆ getImages()

ResourceLoaderImageModule::getImages ( ResourceLoaderContext  $context)

Get ResourceLoaderImage objects for all images.

Parameters
ResourceLoaderContext$context
Returns
ResourceLoaderImage[] Array keyed by image name

Definition at line 249 of file ResourceLoaderImageModule.php.

References $context, ResourceLoaderModule\$name, getGlobalVariants(), ResourceLoaderModule\getName(), and loadFromDefinition().

Referenced by getFileHashes(), getImage(), and getStyles().

◆ getLocalPath()

ResourceLoaderImageModule::getLocalPath (   $path)
protected
Parameters
string | ResourceLoaderFilePath$path
Returns
string

Definition at line 462 of file ResourceLoaderImageModule.php.

References $path.

Referenced by loadFromDefinition(), and ResourceLoaderOOUIImageModule\readJSONFile().

◆ getPrefix()

ResourceLoaderImageModule::getPrefix ( )

Get CSS class prefix used by this module.

Returns
string

Definition at line 215 of file ResourceLoaderImageModule.php.

References $prefix, and loadFromDefinition().

Referenced by getStyles().

◆ getSelectors()

ResourceLoaderImageModule::getSelectors ( )

Get CSS selector templates used by this module.

Returns
string[]

Definition at line 224 of file ResourceLoaderImageModule.php.

References $selectorWithoutVariant, $selectorWithVariant, and loadFromDefinition().

Referenced by getStyles().

◆ getStyleDeclarations()

ResourceLoaderImageModule::getStyleDeclarations ( ResourceLoaderContext  $context,
ResourceLoaderImage  $image,
  $script,
  $variant = null 
)
private

This method must not be used by getDefinitionSummary as doing so would cause an infinite loop (we use ResourceLoaderImage::getUrl below which calls Module:getVersionHash, which calls Module::getDefinitionSummary).

Parameters
ResourceLoaderContext$context
ResourceLoaderImage$imageImage to get the style for
string$scriptURL to load.php
string | null$variantVariant to get the style for
Returns
string

Definition at line 371 of file ResourceLoaderImageModule.php.

References $context, getCssDeclarations(), ResourceLoaderImage\getDataUri(), and ResourceLoaderImage\getUrl().

Referenced by getStyles().

◆ getStyles()

ResourceLoaderImageModule::getStyles ( ResourceLoaderContext  $context)

◆ getType()

ResourceLoaderImageModule::getType ( )
Returns
string

Reimplemented from ResourceLoaderModule.

Definition at line 495 of file ResourceLoaderImageModule.php.

◆ loadFromDefinition()

ResourceLoaderImageModule::loadFromDefinition ( )
protected

◆ supportsURLLoading()

ResourceLoaderImageModule::supportsURLLoading ( )
Returns
bool

Reimplemented from ResourceLoaderModule.

Definition at line 410 of file ResourceLoaderImageModule.php.

Member Data Documentation

◆ $defaultColor

string null ResourceLoaderImageModule::$defaultColor = null
protected

Definition at line 46 of file ResourceLoaderImageModule.php.

◆ $definition

array null ResourceLoaderImageModule::$definition = null
protected

◆ $globalVariants

array null ResourceLoaderImageModule::$globalVariants = null
protected

Definition at line 49 of file ResourceLoaderImageModule.php.

◆ $imageObjects

ResourceLoaderImage [][] null ResourceLoaderImageModule::$imageObjects = null
protected

Definition at line 42 of file ResourceLoaderImageModule.php.

◆ $images

array ResourceLoaderImageModule::$images = []
protected

Definition at line 44 of file ResourceLoaderImageModule.php.

Referenced by getImage().

◆ $localBasePath

string ResourceLoaderImageModule::$localBasePath = ''
protected

◆ $origin

ResourceLoaderImageModule::$origin = self::ORIGIN_CORE_SITEWIDE
protected

Definition at line 39 of file ResourceLoaderImageModule.php.

◆ $prefix

string null ResourceLoaderImageModule::$prefix = null
protected

Definition at line 53 of file ResourceLoaderImageModule.php.

Referenced by getPrefix(), and loadFromDefinition().

◆ $selectorWithoutVariant

ResourceLoaderImageModule::$selectorWithoutVariant = '.{prefix}-{name}'
protected

Definition at line 54 of file ResourceLoaderImageModule.php.

Referenced by getSelectors(), and loadFromDefinition().

◆ $selectorWithVariant

ResourceLoaderImageModule::$selectorWithVariant = '.{prefix}-{name}-{variant}'
protected

Definition at line 55 of file ResourceLoaderImageModule.php.

Referenced by getSelectors(), and loadFromDefinition().

◆ $targets

ResourceLoaderImageModule::$targets = [ 'desktop', 'mobile' ]
protected

Definition at line 56 of file ResourceLoaderImageModule.php.

◆ $useDataURI

ResourceLoaderImageModule::$useDataURI = true
protected

Definition at line 47 of file ResourceLoaderImageModule.php.

◆ $variants

array ResourceLoaderImageModule::$variants = []
protected

Definition at line 51 of file ResourceLoaderImageModule.php.


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