* @param int|bool $month The month to start from. Default: false
* @param string $tagFilter Tag
* @param string $action Specific action (subtype) requested
+ * @param int $logId Log entry ID, to limit to a single log entry.
*/
public function __construct( $list, $types = [], $performer = '', $title = '',
$pattern = '', $conds = [], $year = false, $month = false, $tagFilter = '',
- $action = ''
+ $action = '', $logId = false
) {
parent::__construct( $list->getContext() );
$this->mConds = $conds;
$this->limitAction( $action );
$this->getDateCond( $year, $month );
$this->mTagFilter = $tagFilter;
+ $this->limitLogId( $logId );
$this->mDb = wfGetDB( DB_REPLICA, 'logpager' );
}
$name = $usertitle->getText();
// Assume no joins required for log_user
- // Don't query by user ID here, it might be able to use the
- // log_user_text_time or log_user_text_type_time index.
$this->mConds[] = ActorMigration::newMigration()->getWhere(
- wfGetDB( DB_REPLICA ), 'log_user', User::newFromName( $name, false ), false
+ wfGetDB( DB_REPLICA ), 'log_user', User::newFromName( $name, false )
)['conds'];
$this->enforcePerformerRestrictions();
}
}
+ /**
+ * Limit to the (single) specified log ID.
+ * @param int $logId The log entry ID.
+ */
+ protected function limitLogId( $logId ) {
+ if ( !$logId ) {
+ return;
+ }
+ $this->mConds['log_id'] = $logId;
+ }
+
/**
* Constructs the most part of the query. Extra conditions are sprinkled in
* all over this class.