For this add an user parameter to Language::translateBlockExpiry.
This allows the function to display the absolute block expiry in the
user's time zone. Use this when formatting block log entries.
This also avoids the use of $wgUser
Bug: T131241
Change-Id: If0a1d3c88bb4242a016eb9b2df115413de786149
// is shown on the correct side of the tooltip text.
$durationTooltip = '‎' . htmlspecialchars( $params[4] );
$params[4] = Message::rawParam( "<span class='blockExpiry' title='$durationTooltip'>" .
- $this->context->getLanguage()->translateBlockExpiry( $params[4] ) . '</span>' );
+ $this->context->getLanguage()->translateBlockExpiry( $params[4],
+ $this->context->getUser() ) . '</span>' );
$params[5] = isset( $params[5] ) ?
self::formatBlockFlags( $params[5], $this->context->getLanguage() ) : '';
}
* match up with it.
*
* @param string $str The validated block duration in English
+ * @param User $user User object to use timezone from or null for $wgUser
* @return string Somehow translated block duration
* @see LanguageFi.php for example implementation
*/
- function translateBlockExpiry( $str ) {
+ function translateBlockExpiry( $str, User $user = null ) {
$duration = SpecialBlock::getSuggestedDurations( $this );
foreach ( $duration as $show => $value ) {
if ( strcmp( $str, $value ) == 0 ) {
} else { // It's an absolute timestamp.
if ( $time === 0 ) {
// wfTimestamp() handles 0 as current time instead of epoch.
- return $this->timeanddate( '19700101000000' );
- } else {
- return $this->timeanddate( $time );
+ $time = '19700101000000';
+ }
+ if ( $user ) {
+ return $this->userTimeAndDate( $time, $user );
}
+ return $this->timeanddate( $time );
}
}
/**
* @param string $str
- * @param bool $forContent
+ * @param User $user User object to use timezone from or null for $wgUser
* @return string
*/
- function translateBlockExpiry( $str, $forContent = false ) {
+ function translateBlockExpiry( $str, User $user = null ) {
/*
'ago', 'now', 'today', 'this', 'next',
'first', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth',