$opts->add( 'hideliu', false );
$opts->add( 'hidepatrolled', false );
$opts->add( 'hidemyself', false );
+ $opts->add( 'hidebyothers', false );
if ( $config->get( 'RCWatchCategoryMembership' ) ) {
$opts->add( 'hidecategorization', false );
}
+ $opts->add( 'hidepageedits', false );
+ $opts->add( 'hidenewpages', false );
+ $opts->add( 'hidelog', false );
$opts->add( 'namespace', '', FormOptions::INTNULL );
$opts->add( 'invert', false );
$conds[] = 'rc_user != 0';
}
}
+
if ( $opts['hidemyself'] ) {
if ( $user->getId() ) {
$conds[] = 'rc_user != ' . $dbr->addQuotes( $user->getId() );
$conds[] = 'rc_user_text != ' . $dbr->addQuotes( $user->getName() );
}
}
+ if ( $opts['hidebyothers'] ) {
+ if ( $user->getId() ) {
+ $conds[] = 'rc_user = ' . $dbr->addQuotes( $user->getId() );
+ } else {
+ $conds[] = 'rc_user_text = ' . $dbr->addQuotes( $user->getName() );
+ }
+ }
+
if ( $this->getConfig()->get( 'RCWatchCategoryMembership' )
&& $opts['hidecategorization'] === true
) {
$conds[] = 'rc_type != ' . $dbr->addQuotes( RC_CATEGORIZE );
}
+ if ( $opts['hidepageedits'] ) {
+ $conds[] = 'rc_type != ' . $dbr->addQuotes( RC_EDIT );
+ }
+ if ( $opts['hidenewpages'] ) {
+ $conds[] = 'rc_type != ' . $dbr->addQuotes( RC_NEW );
+ }
+ if ( $opts['hidelog'] ) {
+ $conds[] = 'rc_type != ' . $dbr->addQuotes( RC_LOG );
+ }
// Namespace filtering
if ( $opts['namespace'] !== '' ) {
* @return IDatabase
*/
protected function getDB() {
- return wfGetDB( DB_SLAVE );
+ return wfGetDB( DB_REPLICA );
}
/**
protected function getGroupName() {
return 'changes';
}
+
+ /**
+ * Get filters that can be rendered.
+ *
+ * Filters with 'msg' => false can be used to filter data but won't
+ * be presented as show/hide toggles in the UI. They are not returned
+ * by this function.
+ *
+ * @param array $allFilters Map of filter URL param names to properties (msg/default)
+ * @return array Map of filter URL param names to properties (msg/default)
+ */
+ protected function getRenderableCustomFilters( $allFilters ) {
+ return array_filter(
+ $allFilters,
+ function( $filter ) {
+ return isset( $filter['msg'] ) && ( $filter['msg'] !== false );
+ }
+ );
+ }
}