page->doPurge(); } public function show() { $this->setHeaders(); // This will throw exceptions if there's a problem $this->checkCanExecute( $this->getUser() ); $user = $this->getUser(); if ( $user->pingLimiter( 'purge' ) ) { // TODO: Display actionthrottledtext return; } if ( $this->getRequest()->wasPosted() ) { $this->redirectParams = wfArrayToCgi( array_diff_key( $this->getRequest()->getQueryValues(), [ 'title' => null, 'action' => null ] ) ); if ( $this->onSubmit( [] ) ) { $this->onSuccess(); } } else { $this->redirectParams = $this->getRequest()->getVal( 'redirectparams', '' ); $form = $this->getForm(); if ( $form->show() ) { $this->onSuccess(); } } } protected function usesOOUI() { return true; } protected function getFormFields() { return [ 'intro' => [ 'type' => 'info', 'vertical-label' => true, 'raw' => true, 'default' => $this->msg( 'confirm-purge-top' )->parse() ] ]; } protected function alterForm( HTMLForm $form ) { $form->setWrapperLegendMsg( 'confirm-purge-title' ); $form->setSubmitTextMsg( 'confirm_purge_button' ); } protected function postText() { return $this->msg( 'confirm-purge-bottom' )->parse(); } public function onSuccess() { $this->getOutput()->redirect( $this->getTitle()->getFullURL( $this->redirectParams ) ); } public function doesWrites() { return true; } }