Thanks link and other links should be styled consistently with other links
[mediawiki.git] / includes / skins / components / SkinComponentLastModified.php
blob97b39642623153add3e256067330864280cbc46b
1 <?php
3 namespace MediaWiki\Skin;
5 use MediaWiki\Language\Language;
6 use MediaWiki\MediaWikiServices;
7 use MediaWiki\User\User;
8 use MessageLocalizer;
10 class SkinComponentLastModified implements SkinComponent {
11 /** @var Language */
12 private $language;
13 /** @var MessageLocalizer */
14 private $localizer;
15 /** @var string|null|false */
16 private $revisionTimestamp;
17 /** @var User */
18 private $user;
20 /**
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();
31 /**
32 * Get the timestamp of the latest revision, formatted in user language
34 * @inheritDoc
36 public function getTemplateData(): array {
37 $localizer = $this->localizer;
38 $user = $this->user;
39 $language = $this->language;
40 $timestamp = $this->revisionTimestamp;
42 if ( $timestamp ) {
43 $d = $language->userDate( $timestamp, $user );
44 $t = $language->userTime( $timestamp, $user );
45 $s = ' ' . $localizer->msg( 'lastmodifiedat', $d, $t )->parse();
46 } else {
47 $s = '';
48 $d = null;
49 $t = null;
52 $isLagged = MediaWikiServices::getInstance()->getDBLoadBalancerFactory()->laggedReplicaUsed();
53 if ( $isLagged ) {
54 $s .= ' <strong>' .
55 $localizer->msg( 'laggedreplicamode' )->parse() .
56 '</strong>';
59 return [
60 'is-replica' => $isLagged,
61 'text' => $s,
62 'date' => $d,
63 'time' => $t,
64 'timestamp' => $timestamp,