* @return string
*/
public function recentChangesLine( &$rc, $watched = false, $linenumber = null ) {
-
$date = $this->getLanguage()->userDate(
$rc->mAttribs['rc_timestamp'],
$this->getUser()
);
+ if ( $this->lastdate === '' ) {
+ $this->lastdate = $date;
+ }
$ret = '';
- # If it's a new day, add the headline and flush the cache
- if ( $date != $this->lastdate ) {
- # Process current cache
+ # If it's a new day, flush the cache and update $this->lastdate
+ if ( $date !== $this->lastdate ) {
+ # Process current cache (uses $this->lastdate to generate a heading)
$ret = $this->recentChangesBlock();
$this->rc_cache = [];
- $ret .= Xml::element( 'h4', null, $date ) . "\n";
$this->lastdate = $date;
}
$text = $userlink;
$text .= $this->getLanguage()->getDirMark();
if ( $count > 1 ) {
- // @todo FIXME: Hardcoded '×'. Should be a message.
- $formattedCount = $this->getLanguage()->formatNum( $count ) . '×';
+ $formattedCount = $this->msg( 'ntimes' )->numParams( $count )->escaped();
$text .= ' ' . $this->msg( 'parentheses' )->rawParams( $formattedCount )->escaped();
}
array_push( $users, $text );
}
$attribs = $data['attribs'];
unset( $data['attribs'] );
- $attribs = wfArrayFilterByKey( $attribs, [ Sanitizer::class, 'isReservedDataAttribute' ] );
+ $attribs = wfArrayFilterByKey( $attribs, function ( $key ) {
+ return $key === 'class' || Sanitizer::isReservedDataAttribute( $key );
+ } );
$line = Html::openElement( 'table', $attribs ) . Html::openElement( 'tr' );
$line .= '<td class="mw-enhanced-rc"><span class="mw-enhancedchanges-arrow-space"></span>';
}
}
- return '<div>' . $blockOut . '</div>';
+ if ( $blockOut === '' ) {
+ return '';
+ }
+ // $this->lastdate is kept up to date by recentChangesLine()
+ return Xml::element( 'h4', null, $this->lastdate ) . "\n<div>" . $blockOut . '</div>';
}
/**