select( 'logging', 'log_type', [ 'log_id' => $ids ], __METHOD__, [ 'DISTINCT' ] ); if ( $result->numRows() == 1 ) { // If there's only one type, the target can be set to include it. return SpecialPage::getTitleFor( 'Log', $result->current()->log_type ); } return SpecialPage::getTitleFor( 'Log' ); } /** * @param IDatabase $db * @return mixed */ public function doQuery( $db ) { $ids = array_map( 'intval', $this->ids ); $commentQuery = CommentStore::getStore()->getJoin( 'log_comment' ); $actorQuery = ActorMigration::newMigration()->getJoin( 'log_user' ); return $db->select( [ 'logging' ] + $commentQuery['tables'] + $actorQuery['tables'], [ 'log_id', 'log_type', 'log_action', 'log_timestamp', 'log_namespace', 'log_title', 'log_page', 'log_params', 'log_deleted' ] + $commentQuery['fields'] + $actorQuery['fields'], [ 'log_id' => $ids ], __METHOD__, [ 'ORDER BY' => 'log_id DESC' ], $commentQuery['joins'] + $actorQuery['joins'] ); } public function newItem( $row ) { return new RevDelLogItem( $this, $row ); } public function getSuppressBit() { return Revision::DELETED_RESTRICTED; } public function getLogAction() { return 'event'; } public function getLogParams( $params ) { return [ '4::ids' => $params['ids'], '5::ofield' => $params['oldBits'], '6::nfield' => $params['newBits'], ]; } }