revision = Revision::newFromArchiveRow( $row, [ 'page' => $this->list->title->getArticleID() ] ); } public function getIdField() { return 'ar_timestamp'; } public function getTimestampField() { return 'ar_timestamp'; } public function getAuthorIdField() { return 'ar_user'; } public function getAuthorNameField() { return 'ar_user_text'; } public function getAuthorActorField() { return 'ar_actor'; } public function getId() { # Convert DB timestamp to MW timestamp return $this->revision->getTimestamp(); } public function setBits( $bits ) { $dbw = wfGetDB( DB_MASTER ); $dbw->update( 'archive', [ 'ar_deleted' => $bits ], [ 'ar_namespace' => $this->list->title->getNamespace(), 'ar_title' => $this->list->title->getDBkey(), // use timestamp for index 'ar_timestamp' => $this->row->ar_timestamp, 'ar_rev_id' => $this->row->ar_rev_id, 'ar_deleted' => $this->getBits() ], __METHOD__ ); return (bool)$dbw->affectedRows(); } protected function getRevisionLink() { $date = $this->list->getLanguage()->userTimeAndDate( $this->revision->getTimestamp(), $this->list->getUser() ); if ( $this->isDeleted() && !$this->canViewContent() ) { return htmlspecialchars( $date ); } return $this->getLinkRenderer()->makeLink( SpecialPage::getTitleFor( 'Undelete' ), $date, [], [ 'target' => $this->list->title->getPrefixedText(), 'timestamp' => $this->revision->getTimestamp() ] ); } protected function getDiffLink() { if ( $this->isDeleted() && !$this->canViewContent() ) { return $this->list->msg( 'diff' )->escaped(); } return $this->getLinkRenderer()->makeLink( SpecialPage::getTitleFor( 'Undelete' ), $this->list->msg( 'diff' )->text(), [], [ 'target' => $this->list->title->getPrefixedText(), 'diff' => 'prev', 'timestamp' => $this->revision->getTimestamp() ] ); } }