mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
synced 2024-11-27 17:20:40 +00:00
185e68a803
Before, secondary icons, such as linked, changes, thanks, and userSpeechBubble were loaded in mw.echo.ui.icons.less. Now, an extra icons attribute is passed when the module is loaded, allowing RLEIM to know which icons to load. If this attribute is left out, an MWException will be thrown. Bug: T159394 Change-Id: I9b36a74bcf1da0d1c698845bd067b226fb81ac96
63 lines
1.9 KiB
PHP
63 lines
1.9 KiB
PHP
<?php
|
|
/**
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*
|
|
* @file
|
|
*/
|
|
|
|
/**
|
|
* A sibling of secret special sauce.
|
|
* @see ResourceLoaderOOUIImageModule for familial resemblence
|
|
*/
|
|
class ResourceLoaderEchoImageModule extends ResourceLoaderImageModule {
|
|
protected function loadFromDefinition() {
|
|
if ( $this->definition === null ) {
|
|
return;
|
|
}
|
|
|
|
// Check to make sure icons are set
|
|
if ( !isset( $this->definition['icons'] ) ) {
|
|
throw new MWException( 'Icons must be set.' );
|
|
}
|
|
|
|
$images = [];
|
|
foreach ( $this->definition['icons'] as $iconName => $definition ) {
|
|
// FIXME: We also have a 'site' icon which is "magical"
|
|
// and uses witchcraft and should be handled specifically
|
|
$paths = '';
|
|
if ( isset( $definition[ 'path' ] ) ) {
|
|
if ( is_array( $definition[ 'path' ] ) ) {
|
|
foreach ( $definition[ 'path' ] as $dir => $p ) {
|
|
// Has both rtl and ltr definitions
|
|
$paths[ $dir ] = $p;
|
|
}
|
|
} else {
|
|
$paths = $definition[ 'path' ];
|
|
}
|
|
|
|
if ( !empty( $paths ) ) {
|
|
$images[ $iconName ][ 'file' ] = $paths;
|
|
}
|
|
}
|
|
}
|
|
|
|
$this->definition[ 'images' ] = $images;
|
|
$this->definition[ 'selector' ] = '.oo-ui-icon-{name}';
|
|
// Parent
|
|
parent::loadFromDefinition();
|
|
}
|
|
}
|