getRequest(); $rcId = $request->getInt( 'rcid' ); $rc = RecentChange::newFromId( $rcId ); if ( is_null( $rc ) ) { throw new ErrorPageError( 'markedaspatrollederror', 'markedaspatrollederrortext' ); } $user = $this->getUser(); if ( !$user->matchEditToken( $request->getVal( 'token' ), $rcId ) ) { throw new ErrorPageError( 'sessionfailure-title', 'sessionfailure' ); } $errors = $rc->doMarkPatrolled( $user ); if ( in_array( [ 'rcpatroldisabled' ], $errors ) ) { throw new ErrorPageError( 'rcpatroldisabled', 'rcpatroldisabledtext' ); } if ( in_array( [ 'hookaborted' ], $errors ) ) { // The hook itself has handled any output return; } # It would be nice to see where the user had actually come from, but for now just guess if ( $rc->getAttribute( 'rc_type' ) == RC_NEW ) { $returnTo = 'Newpages'; } elseif ( $rc->getAttribute( 'rc_log_type' ) == 'upload' ) { $returnTo = 'Newfiles'; } else { $returnTo = 'Recentchanges'; } $return = SpecialPage::getTitleFor( $returnTo ); if ( in_array( [ 'markedaspatrollederror-noautopatrol' ], $errors ) ) { $this->getOutput()->setPageTitle( $this->msg( 'markedaspatrollederror' ) ); $this->getOutput()->addWikiMsg( 'markedaspatrollederror-noautopatrol' ); $this->getOutput()->returnToMain( null, $return ); return; } if ( count( $errors ) ) { throw new PermissionsError( 'patrol', $errors ); } # Inform the user $this->getOutput()->setPageTitle( $this->msg( 'markedaspatrolled' ) ); $this->getOutput()->addWikiMsg( 'markedaspatrolledtext', $rc->getTitle()->getPrefixedText() ); $this->getOutput()->returnToMain( null, $return ); } public function doesWrites() { return true; } }