revision = Revision::newFromArchiveRow( $row, array( '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 getId() { # Convert DB timestamp to MW timestamp return $this->revision->getTimestamp(); } public function setBits( $bits ) { $dbw = wfGetDB( DB_MASTER ); $dbw->update( 'archive', array( 'ar_deleted' => $bits ), array( '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 = htmlspecialchars( $this->list->getLanguage()->userTimeAndDate( $this->revision->getTimestamp(), $this->list->getUser() ) ); if ( $this->isDeleted() && !$this->canViewContent() ) { return $date; } return Linker::link( SpecialPage::getTitleFor( 'Undelete' ), $date, array(), array( 'target' => $this->list->title->getPrefixedText(), 'timestamp' => $this->revision->getTimestamp() ) ); } protected function getDiffLink() { if ( $this->isDeleted() && !$this->canViewContent() ) { return $this->list->msg( 'diff' )->escaped(); } return Linker::link( SpecialPage::getTitleFor( 'Undelete' ), $this->list->msg( 'diff' )->escaped(), array(), array( 'target' => $this->list->title->getPrefixedText(), 'diff' => 'prev', 'timestamp' => $this->revision->getTimestamp() ) ); } }