3 namespace MediaWiki\Skin
;
5 use MediaWiki\Language\Language
;
6 use MediaWiki\MediaWikiServices
;
7 use MediaWiki\User\User
;
10 class SkinComponentLastModified
implements SkinComponent
{
13 /** @var MessageLocalizer */
15 /** @var string|null|false */
16 private $revisionTimestamp;
21 * @param SkinComponentRegistryContext $skinContext
22 * @param string|null|false $revisionTimestamp
24 public function __construct( SkinComponentRegistryContext
$skinContext, $revisionTimestamp = null ) {
25 $this->revisionTimestamp
= $revisionTimestamp;
26 $this->localizer
= $skinContext->getMessageLocalizer();
27 $this->user
= $skinContext->getUser();
28 $this->language
= $skinContext->getLanguage();
32 * Get the timestamp of the latest revision, formatted in user language
36 public function getTemplateData(): array {
37 $localizer = $this->localizer
;
39 $language = $this->language
;
40 $timestamp = $this->revisionTimestamp
;
43 $d = $language->userDate( $timestamp, $user );
44 $t = $language->userTime( $timestamp, $user );
45 $s = ' ' . $localizer->msg( 'lastmodifiedat', $d, $t )->parse();
52 $isLagged = MediaWikiServices
::getInstance()->getDBLoadBalancerFactory()->laggedReplicaUsed();
55 $localizer->msg( 'laggedreplicamode' )->parse() .
60 'is-replica' => $isLagged,
64 'timestamp' => $timestamp,