X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fpage%2FPageArchive.php;h=05247cafebb09e25090cb5f0e1fcc6a8a528ccd2;hp=209551b29694ec2e72b8ee8d57a704271cd6b896;hb=7458232874986edf20fbd85f45f42295b1689524;hpb=7ff01f46c40975098590290918f98893c7f65118;ds=sidebyside diff --git a/includes/page/PageArchive.php b/includes/page/PageArchive.php index 209551b296..05247cafeb 100644 --- a/includes/page/PageArchive.php +++ b/includes/page/PageArchive.php @@ -176,44 +176,32 @@ class PageArchive { * @return ResultWrapper */ public function listRevisions() { - $dbr = wfGetDB( DB_REPLICA ); - $commentQuery = CommentStore::newKey( 'ar_comment' )->getJoin(); - - $tables = [ 'archive' ] + $commentQuery['tables']; - - $fields = [ - 'ar_minor_edit', 'ar_timestamp', 'ar_user', 'ar_user_text', - 'ar_len', 'ar_deleted', 'ar_rev_id', 'ar_sha1', - 'ar_page_id' - ] + $commentQuery['fields']; - - if ( $this->config->get( 'ContentHandlerUseDB' ) ) { - $fields[] = 'ar_content_format'; - $fields[] = 'ar_content_model'; - } - - $conds = [ 'ar_namespace' => $this->title->getNamespace(), - 'ar_title' => $this->title->getDBkey() ]; + $revisionStore = MediaWikiServices::getInstance()->getRevisionStore(); + $queryInfo = $revisionStore->getArchiveQueryInfo(); + $conds = [ + 'ar_namespace' => $this->title->getNamespace(), + 'ar_title' => $this->title->getDBkey(), + ]; $options = [ 'ORDER BY' => 'ar_timestamp DESC' ]; - $join_conds = [] + $commentQuery['joins']; - ChangeTags::modifyDisplayQuery( - $tables, - $fields, + $queryInfo['tables'], + $queryInfo['fields'], $conds, - $join_conds, + $queryInfo['joins'], $options, '' ); - return $dbr->select( $tables, - $fields, + $dbr = wfGetDB( DB_REPLICA ); + return $dbr->select( + $queryInfo['tables'], + $queryInfo['fields'], $conds, __METHOD__, $options, - $join_conds + $queryInfo['joins'] ); } @@ -542,47 +530,23 @@ class PageArchive { $oldWhere['ar_timestamp'] = array_map( [ &$dbw, 'timestamp' ], $timestamps ); } - $commentQuery = CommentStore::newKey( 'ar_comment' )->getJoin(); - - $tables = [ 'archive', 'revision' ] + $commentQuery['tables']; - - $fields = [ - 'ar_id', - 'ar_rev_id', - 'rev_id', - 'ar_text', - 'ar_user', - 'ar_user_text', - 'ar_timestamp', - 'ar_minor_edit', - 'ar_flags', - 'ar_text_id', - 'ar_deleted', - 'ar_page_id', - 'ar_len', - 'ar_sha1' - ] + $commentQuery['fields']; - - if ( $this->config->get( 'ContentHandlerUseDB' ) ) { - $fields[] = 'ar_content_format'; - $fields[] = 'ar_content_model'; - } - - $join_conds = [ - 'revision' => [ 'LEFT JOIN', 'ar_rev_id=rev_id' ], - ] + $commentQuery['joins']; + $revisionStore = MediaWikiServices::getInstance()->getRevisionStore(); + $queryInfo = $revisionStore->getArchiveQueryInfo(); + $queryInfo['tables'][] = 'revision'; + $queryInfo['fields'][] = 'rev_id'; + $queryInfo['joins']['revision'] = [ 'LEFT JOIN', 'ar_rev_id=rev_id' ]; /** * Select each archived revision... */ $result = $dbw->select( - $tables, - $fields, + $queryInfo['tables'], + $queryInfo['fields'], $oldWhere, __METHOD__, /* options */ [ 'ORDER BY' => 'ar_timestamp' ], - $join_conds + $queryInfo['joins'] ); $rev_count = $result->numRows(); @@ -764,7 +728,9 @@ class PageArchive { Hooks::run( 'ArticleUndelete', [ &$this->title, $created, $comment, $oldPageId, $restoredPages ] ); if ( $this->title->getNamespace() == NS_FILE ) { - DeferredUpdates::addUpdate( new HTMLCacheUpdate( $this->title, 'imagelinks' ) ); + DeferredUpdates::addUpdate( + new HTMLCacheUpdate( $this->title, 'imagelinks', 'file-restore' ) + ); } }