}
public function execute() {
+ global $wgActorTableSchemaMigrationStage;
+
$params = $this->extractRequestParams();
$activeUserDays = $this->getConfig()->get( 'ActiveUserDays' );
$db = $this->getDB();
- $commentStore = new CommentStore( 'ipb_reason' );
+ $commentStore = CommentStore::getStore();
$prop = $params['prop'];
if ( !is_null( $prop ) ) {
] ] );
// Actually count the actions using a subquery (T66505 and T66507)
+ $tables = [ 'recentchanges' ];
+ $joins = [];
+ if ( $wgActorTableSchemaMigrationStage & SCHEMA_COMPAT_READ_OLD ) {
+ $userCond = 'rc_user_text = user_name';
+ } else {
+ $tables[] = 'actor';
+ $joins['actor'] = [ 'JOIN', 'rc_actor = actor_id' ];
+ $userCond = 'actor_user = user_id';
+ }
$timestamp = $db->timestamp( wfTimestamp( TS_UNIX ) - $activeUserSeconds );
$this->addFields( [
'recentactions' => '(' . $db->selectSQLText(
- 'recentchanges',
+ $tables,
'COUNT(*)',
[
- 'rc_user_text = user_name',
+ $userCond,
'rc_type != ' . $db->addQuotes( RC_EXTERNAL ), // no wikidata
'rc_log_type IS NULL OR rc_log_type != ' . $db->addQuotes( 'newusers' ),
'rc_timestamp >= ' . $db->addQuotes( $timestamp ),
- ]
+ ],
+ __METHOD__,
+ [],
+ $joins
) . ')'
] );
}
$data['blockedby'] = $row->ipb_by_text;
$data['blockedbyid'] = (int)$row->ipb_by;
$data['blockedtimestamp'] = wfTimestamp( TS_ISO_8601, $row->ipb_timestamp );
- $data['blockreason'] = $commentStore->getComment( $row )->text;
+ $data['blockreason'] = $commentStore->getComment( 'ipb_reason', $row )->text;
$data['blockexpiry'] = $row->ipb_expiry;
}
if ( $row->ipb_deleted ) {