page->doPurge(); } /** * purge is slightly weird because it can be either formed or formless depending * on user permissions */ 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 ( $user->isAllowed( 'purge' ) ) { $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 alterForm( HTMLForm $form ) { $form->setSubmitTextMsg( 'confirm_purge_button' ); } protected function preText() { return $this->msg( 'confirm-purge-top' )->parse(); } 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; } }