Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F5958437
SkinComponentCopyright.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
SkinComponentCopyright.php
View Options
<?php
namespace
MediaWiki\Skin
;
use
HtmlArmor
;
use
MediaWiki\Config\Config
;
use
MediaWiki\HookContainer\ProtectedHookAccessorTrait
;
use
MediaWiki\MainConfigNames
;
use
MediaWiki\MediaWikiServices
;
use
MediaWiki\Message\Message
;
use
MediaWiki\SpecialPage\SpecialPage
;
use
MediaWiki\Title\Title
;
use
MediaWiki\User\User
;
use
MessageLocalizer
;
class
SkinComponentCopyright
implements
SkinComponent
{
use
ProtectedHookAccessorTrait
;
/** @var Config */
private
$config
;
/** @var MessageLocalizer */
private
$localizer
;
/** @var SkinComponentRegistryContext */
private
$skinContext
;
/** @var User */
private
$user
;
/**
* @param SkinComponentRegistryContext $skinContext
*/
public
function
__construct
(
SkinComponentRegistryContext
$skinContext
)
{
$this
->
skinContext
=
$skinContext
;
$this
->
config
=
$skinContext
->
getConfig
();
$this
->
localizer
=
$skinContext
->
getMessageLocalizer
();
$this
->
user
=
$skinContext
->
getUser
();
}
/**
* @inheritDoc
*/
public
function
getTemplateData
():
array
{
return
[
'html'
=>
$this
->
getCopyrightHTML
(),
];
}
/**
* Get the copyright.
*
* @return string
*/
public
function
getCopyrightHTML
():
string
{
$out
=
$this
->
skinContext
->
getOutput
();
$title
=
$out
->
getTitle
();
$isRevisionCurrent
=
$out
->
isRevisionCurrent
();
$config
=
$this
->
config
;
$localizer
=
$this
->
localizer
;
$linkRenderer
=
MediaWikiServices
::
getInstance
()->
getLinkRenderer
();
if
(
$config
->
get
(
MainConfigNames
::
RightsPage
)
)
{
$title
=
Title
::
newFromText
(
$config
->
get
(
MainConfigNames
::
RightsPage
)
);
$link
=
$linkRenderer
->
makeKnownLink
(
$title
,
new
HtmlArmor
(
$config
->
get
(
MainConfigNames
::
RightsText
)
?:
$title
->
getText
()
)
);
}
elseif
(
$config
->
get
(
MainConfigNames
::
RightsUrl
)
)
{
$link
=
$linkRenderer
->
makeExternalLink
(
$config
->
get
(
MainConfigNames
::
RightsUrl
),
$config
->
get
(
MainConfigNames
::
RightsText
),
$title
??
SpecialPage
::
getTitleFor
(
'Badtitle'
)
);
}
elseif
(
$config
->
get
(
MainConfigNames
::
RightsText
)
)
{
$link
=
$config
->
get
(
MainConfigNames
::
RightsText
);
}
else
{
# Give up now
return
''
;
}
if
(
$config
->
get
(
MainConfigNames
::
AllowRawHtmlCopyrightMessages
)
)
{
// First check whether the old, raw HTML messages exist (if not disallowed by wiki config),
// for compatibility with on-wiki message overrides.
if
(
!
$isRevisionCurrent
&&
!
$localizer
->
msg
(
'history_copyright'
)->
isDisabled
()
)
{
$type
=
'history'
;
}
else
{
$type
=
'normal'
;
}
$msgKey
=
$type
===
'history'
?
'history_copyright'
:
'copyright'
;
// Allow for site and per-namespace customization of copyright notice.
$this
->
getHookRunner
()->
onSkinCopyrightFooter
(
$title
,
$type
,
$msgKey
,
$link
);
$msg
=
$localizer
->
msg
(
$msgKey
)->
rawParams
(
$link
);
if
(
!
$msg
->
isDisabled
()
)
{
return
$msg
->
text
();
}
}
// TODO: The hook should probably be called with $type === 'history' even if this message
// is disabled, to allow customization, but then we'd probably have to call it again with
// $type === 'normal' if it turns out it's not customized?
if
(
!
$isRevisionCurrent
&&
!
$localizer
->
msg
(
'copyright-footer-history'
)->
isDisabled
()
)
{
$type
=
'history'
;
}
else
{
$type
=
'normal'
;
}
// If it does not exist or disabled, use the new, safer wikitext message.
$msgKey
=
$type
===
'history'
?
'copyright-footer-history'
:
'copyright-footer'
;
$msgSpec
=
Message
::
newFromSpecifier
(
$msgKey
)->
rawParams
(
$link
);
// Allow for site and per-namespace customization of copyright notice.
$this
->
getHookRunner
()->
onSkinCopyrightFooterMessage
(
$title
,
$type
,
$msgSpec
);
$msg
=
$localizer
->
msg
(
$msgSpec
);
if
(
!
$msg
->
isDisabled
()
)
{
return
$msg
->
parse
();
}
return
''
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Oct 3, 05:47 (2 w, 4 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
93/99/606b56578b5e23c85549b922566f
Default Alt Text
SkinComponentCopyright.php (3 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment