$opts->add( 'feed', '' );
$opts->add( 'tagfilter', '' );
$opts->add( 'invert', false );
+ $opts->add( 'size-mode', 'max' );
+ $opts->add( 'size', 0 );
$this->customFilters = [];
Hooks::run( 'SpecialNewPagesFilters', [ $this, &$this->customFilters ] );
$tagFilterVal = $this->opts->consumeValue( 'tagfilter' );
$nsinvert = $this->opts->consumeValue( 'invert' );
+ $size = $this->opts->consumeValue( 'size' );
+ $max = $this->opts->consumeValue( 'size-mode' ) === 'max';
+
// Check username input validity
$ut = Title::makeTitleSafe( NS_USER, $username );
$userText = $ut ? $ut->getText() : '';
'size' => 30,
'cssclass' => 'mw-autocomplete-user', // used by mediawiki.userSuggest
],
+ 'size' => [
+ 'type' => 'sizefilter',
+ 'name' => 'size',
+ 'default' => -$max * $size,
+ ],
];
$htmlForm = new HTMLForm( $form, $this->getContext() );
$rev->setTitle( $title );
$classes = [];
+ $attribs = [ 'data-mw-revid' => $result->rev_id ];
$lang = $this->getLanguage();
$dm = $lang->getDirMark();
$tagDisplay = '';
}
- $css = count( $classes ) ? ' class="' . implode( ' ', $classes ) . '"' : '';
-
# Display the old title if the namespace/title has been changed
$oldTitleText = '';
$oldTitle = Title::makeTitle( $result->rc_namespace, $result->rc_title );
+ $ret = "{$time} {$dm}{$plink} {$hist} {$dm}{$length} {$dm}{$ulink} {$comment} "
+ . "{$tagDisplay} {$oldTitleText}";
+
+ // Let extensions add data
+ Hooks::run( 'NewPagesLineEnding', [ $this, &$ret, $result, &$classes, &$attribs ] );
+ $attribs = wfArrayFilterByKey( $attribs, [ Sanitizer::class, 'isReservedDataAttribute' ] );
+
+ if ( count( $classes ) ) {
+ $attribs['class'] = implode( ' ', $classes );
+ }
if ( !$title->equals( $oldTitle ) ) {
$oldTitleText = $oldTitle->getPrefixedText();
);
}
- return "<li{$css}>{$time} {$dm}{$plink} {$hist} {$dm}{$length} "
- . "{$dm}{$ulink} {$comment} {$tagDisplay} {$oldTitleText}</li>\n";
+ return Html::rawElement( 'li', $attribs, $ret ) . "\n";
}
/**