MediaWiki  master
PurgeAction.php
Go to the documentation of this file.
1 <?php
28 class PurgeAction extends FormAction {
29 
30  private $redirectParams;
31 
32  public function getName() {
33  return 'purge';
34  }
35 
36  public function requiresUnblock() {
37  return false;
38  }
39 
40  public function getDescription() {
41  return '';
42  }
43 
44  public function onSubmit( $data ) {
45  return $this->page->doPurge();
46  }
47 
48  public function show() {
49  $this->setHeaders();
50 
51  // This will throw exceptions if there's a problem
52  $this->checkCanExecute( $this->getUser() );
53 
54  $user = $this->getUser();
55 
56  if ( $user->pingLimiter( 'purge' ) ) {
57  // TODO: Display actionthrottledtext
58  return;
59  }
60 
61  if ( $this->getRequest()->wasPosted() ) {
62  $this->redirectParams = wfArrayToCgi( array_diff_key(
63  $this->getRequest()->getQueryValues(),
64  [ 'title' => null, 'action' => null ]
65  ) );
66  if ( $this->onSubmit( [] ) ) {
67  $this->onSuccess();
68  }
69  } else {
70  $this->redirectParams = $this->getRequest()->getVal( 'redirectparams', '' );
71  $form = $this->getForm();
72  if ( $form->show() ) {
73  $this->onSuccess();
74  }
75  }
76  }
77 
78  protected function usesOOUI() {
79  return true;
80  }
81 
82  protected function getFormFields() {
83  return [
84  'intro' => [
85  'type' => 'info',
86  'vertical-label' => true,
87  'raw' => true,
88  'default' => $this->msg( 'confirm-purge-top' )->parse()
89  ]
90  ];
91  }
92 
93  protected function alterForm( HTMLForm $form ) {
94  $form->setWrapperLegendMsg( 'confirm-purge-title' );
95  $form->setSubmitTextMsg( 'confirm_purge_button' );
96  }
97 
98  protected function postText() {
99  return $this->msg( 'confirm-purge-bottom' )->parse();
100  }
101 
102  public function onSuccess() {
103  $this->getOutput()->redirect( $this->getTitle()->getFullURL( $this->redirectParams ) );
104  }
105 
106  public function doesWrites() {
107  return true;
108  }
109 }
getForm()
Get the HTMLForm to control behavior.
Definition: FormAction.php:73
getOutput()
Get the OutputPage being used for this instance.
Definition: Action.php:208
getTitle()
Shortcut to get the Title object from the page.
Definition: Action.php:247
getUser()
Shortcut to get the User being used for this instance.
Definition: Action.php:218
wfArrayToCgi( $array1, $array2=null, $prefix='')
This function takes one or two arrays as input, and returns a CGI-style string, e.g.
msg( $key,... $params)
Get a Message object with context set Parameters are the same as wfMessage()
Definition: Action.php:259
An action which shows a form and does something based on the input from the form. ...
Definition: FormAction.php:28
setHeaders()
Set output headers for noindexing etc.
Definition: Action.php:365
checkCanExecute(User $user)
Checks if the given user (identified by an object) can perform this action.
Definition: Action.php:308
User-requested page cache purging.
Definition: PurgeAction.php:28
onSubmit( $data)
Definition: PurgeAction.php:44
setSubmitTextMsg( $msg)
Set the text for the submit button to a message.
Definition: HTMLForm.php:1392
setWrapperLegendMsg( $msg)
Prompt the whole form to be wrapped in a "<fieldset>", with this message as its "<legend>" element...
Definition: HTMLForm.php:1579
alterForm(HTMLForm $form)
Definition: PurgeAction.php:93
getRequest()
Get the WebRequest being used for this instance.
Definition: Action.php:198