Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F5992160
EchoIcon.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
EchoIcon.php
View Options
<?php
namespace
MediaWiki\Extension\Notifications\Formatters
;
use
InvalidArgumentException
;
use
UnexpectedValueException
;
class
EchoIcon
{
/**
* @param string $icon Name of icon as registered in BeforeCreateEchoEvent hook
* @param string $dir either 'ltr' or 'rtl'
* @return string
*/
public
static
function
getUrl
(
$icon
,
$dir
)
{
global
$wgEchoNotificationIcons
,
$wgExtensionAssetsPath
;
if
(
!
isset
(
$wgEchoNotificationIcons
[
$icon
]
)
)
{
throw
new
InvalidArgumentException
(
"The $icon icon is not registered"
);
}
$iconInfo
=
$wgEchoNotificationIcons
[
$icon
];
$needsPrefixing
=
true
;
// Now we need to check it has a valid url/path
if
(
isset
(
$iconInfo
[
'url'
]
)
&&
$iconInfo
[
'url'
]
)
{
$iconUrl
=
$iconInfo
[
'url'
];
$needsPrefixing
=
false
;
}
elseif
(
isset
(
$iconInfo
[
'path'
]
)
&&
$iconInfo
[
'path'
]
)
{
$iconUrl
=
$iconInfo
[
'path'
];
}
else
{
// Fallback to hardcoded 'placeholder'. This is used if someone
// doesn't configure the 'site' icon for example.
$icon
=
'placeholder'
;
$iconUrl
=
$wgEchoNotificationIcons
[
'placeholder'
][
'path'
];
}
// Might be an array with different icons for ltr/rtl
if
(
is_array
(
$iconUrl
)
)
{
if
(
!
isset
(
$iconUrl
[
$dir
]
)
)
{
throw
new
UnexpectedValueException
(
"Icon type $icon doesn't have an icon for $dir directionality"
);
}
$iconUrl
=
$iconUrl
[
$dir
];
}
// And if it was a 'path', stick the assets path in front
if
(
$needsPrefixing
)
{
$iconUrl
=
"$wgExtensionAssetsPath/$iconUrl"
;
}
return
$iconUrl
;
}
/**
* Get a link to a rasterized version of the icon
*
* @param string $icon Icon name
* @param string $lang
* @return string URL to the rasterized version of the icon
*/
public
static
function
getRasterizedUrl
(
$icon
,
$lang
)
{
global
$wgEchoNotificationIcons
;
if
(
!
isset
(
$wgEchoNotificationIcons
[
$icon
]
)
)
{
throw
new
InvalidArgumentException
(
"The $icon icon is not registered"
);
}
$url
=
$wgEchoNotificationIcons
[
$icon
][
'url'
]
??
null
;
// If the defined URL is explicitly false, use placeholder
if
(
$url
===
false
)
{
$icon
=
'placeholder'
;
}
// If the URL is null or false call the resource loader
// rasterizing module
if
(
$url
===
false
||
$url
===
null
)
{
$iconUrl
=
wfScript
(
'load'
)
.
'?'
.
wfArrayToCgi
(
[
'modules'
=>
'ext.echo.emailicons'
,
'image'
=>
$icon
,
'lang'
=>
$lang
,
'format'
=>
'rasterized'
]
);
}
else
{
// For icons that are defined by URL
$iconUrl
=
$wgEchoNotificationIcons
[
$icon
][
'url'
];
}
return
$iconUrl
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Oct 4 2026, 02:11 (4 w, 4 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
84/b5/910bef96c70a3c13744aaa0c8f2b
Default Alt Text
EchoIcon.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment