class ContribsPager extends RangeChronologicalPager {
- public $mDefaultDirection = IndexPager::DIR_DESCENDING;
- public $messages;
- public $target;
- public $namespace = '';
- public $mDb;
- public $preventClickjacking = false;
+ /**
+ * @var string[] Local cache for escaped messages
+ */
+ private $messages;
+
+ /**
+ * @var string User name, or a string describing an IP address range
+ */
+ private $target;
+
+ /**
+ * @var string Set to "newbie" to list contributions from the most recent 1% registered users.
+ * $this->target is ignored then. Defaults to "users".
+ */
+ private $contribs;
+
+ /**
+ * @var string|int A single namespace number, or an empty string for all namespaces
+ */
+ private $namespace = '';
+
+ /**
+ * @var string|false Name of tag to filter, or false to ignore tags
+ */
+ private $tagFilter;
+
+ /**
+ * @var bool Set to true to invert the namespace selection
+ */
+ private $nsInvert;
+
+ /**
+ * @var bool Set to true to show both the subject and talk namespace, no matter which got
+ * selected
+ */
+ private $associated;
+
+ /**
+ * @var bool Set to true to show only deleted revisions
+ */
+ private $deletedOnly;
+
+ /**
+ * @var bool Set to true to show only latest (a.k.a. current) revisions
+ */
+ private $topOnly;
+
+ /**
+ * @var bool Set to true to show only new pages
+ */
+ private $newOnly;
+
+ /**
+ * @var bool Set to true to hide edits marked as minor by the user
+ */
+ private $hideMinor;
+
+ private $preventClickjacking = false;
/** @var IDatabase */
- public $mDbSecondary;
+ private $mDbSecondary;
/**
* @var array
*/
- protected $mParentLens;
+ private $mParentLens;
/**
* @var TemplateParser
*/
- protected $templateParser;
+ private $templateParser;
- function __construct( IContextSource $context, array $options ) {
+ public function __construct( IContextSource $context, array $options ) {
parent::__construct( $context );
$msgs = [
return $query;
}
+ /**
+ * Wrap the navigation bar in a p element with identifying class.
+ * In future we may want to change the `p` tag to a `div` and upstream
+ * this to the parent class.
+ *
+ * @return string HTML
+ */
+ function getNavigationBar() {
+ return Html::rawElement( 'p', [ 'class' => 'mw-pager-navigation-bar' ],
+ parent::getNavigationBar()
+ );
+ }
+
/**
* This method basically executes the exact same code as the parent class, though with
* a hook added, to allow extensions to add additional queries.
*
* @param string $offset Index offset, inclusive
* @param int $limit Exact query limit
- * @param bool $descending Query direction, false for ascending, true for descending
+ * @param bool $order IndexPager::QUERY_ASCENDING or IndexPager::QUERY_DESCENDING
* @return IResultWrapper
*/
- function reallyDoQuery( $offset, $limit, $descending ) {
+ function reallyDoQuery( $offset, $limit, $order ) {
list( $tables, $fields, $conds, $fname, $options, $join_conds ) = $this->buildQueryInfo(
$offset,
$limit,
- $descending
+ $order
);
/*
) ];
Hooks::run(
'ContribsPager::reallyDoQuery',
- [ &$data, $this, $offset, $limit, $descending ]
+ [ &$data, $this, $offset, $limit, $order ]
);
$result = [];
}
// sort results
- if ( $descending ) {
+ if ( $order === self::QUERY_ASCENDING ) {
ksort( $result );
} else {
krsort( $result );
return 'rev_timestamp';
}
+ /**
+ * @return false|string
+ */
+ public function getTagFilter() {
+ return $this->tagFilter;
+ }
+
+ /**
+ * @return string
+ */
+ public function getContribs() {
+ return $this->contribs;
+ }
+
+ /**
+ * @return string
+ */
+ public function getTarget() {
+ return $this->target;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isNewOnly() {
+ return $this->newOnly;
+ }
+
+ /**
+ * @return int|string
+ */
+ public function getNamespace() {
+ return $this->namespace;
+ }
+
/**
* @return string[]
*/
return [ 'rev_id' ];
}
- function doBatchLookups() {
+ protected function doBatchLookups() {
# Do a link batch query
$this->mResult->seek( 0 );
$parentRevIds = [];
/**
* @return string
*/
- function getStartBody() {
+ protected function getStartBody() {
return "<ul class=\"mw-contributions-list\">\n";
}
/**
* @return string
*/
- function getEndBody() {
+ protected function getEndBody() {
return "</ul>\n";
}