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 getDescription() {
37  return '';
38  }
39 
40  public function onSubmit( $data ) {
41  return $this->getWikiPage()->doPurge();
42  }
43 
44  public function show() {
45  $this->setHeaders();
46 
47  // This will throw exceptions if there's a problem
48  $this->checkCanExecute( $this->getUser() );
49 
50  $user = $this->getUser();
51 
52  if ( $user->pingLimiter( 'purge' ) ) {
53  // TODO: Display actionthrottledtext
54  return;
55  }
56 
57  if ( $this->getRequest()->wasPosted() ) {
58  $this->redirectParams = wfArrayToCgi( array_diff_key(
59  $this->getRequest()->getQueryValues(),
60  [ 'title' => null, 'action' => null ]
61  ) );
62  if ( $this->onSubmit( [] ) ) {
63  $this->onSuccess();
64  }
65  } else {
66  $this->redirectParams = $this->getRequest()->getVal( 'redirectparams', '' );
67  $form = $this->getForm();
68  if ( $form->show() ) {
69  $this->onSuccess();
70  }
71  }
72  }
73 
74  protected function usesOOUI() {
75  return true;
76  }
77 
78  protected function getFormFields() {
79  return [
80  'intro' => [
81  'type' => 'info',
82  'raw' => true,
83  'default' => $this->msg( 'confirm-purge-top' )->parse()
84  ]
85  ];
86  }
87 
88  protected function alterForm( HTMLForm $form ) {
89  $form->setWrapperLegendMsg( 'confirm-purge-title' );
90  $form->setSubmitTextMsg( 'confirm_purge_button' );
91  }
92 
93  protected function postText() {
94  return $this->msg( 'confirm-purge-bottom' )->parse();
95  }
96 
97  public function onSuccess() {
98  $this->getOutput()->redirect( $this->getTitle()->getFullURL( $this->redirectParams ) );
99  }
100 
101  public function doesWrites() {
102  return true;
103  }
104 }
wfArrayToCgi( $array1, $array2=null, $prefix='')
This function takes one or two arrays as input, and returns a CGI-style string, e....
getWikiPage()
Get a WikiPage object.
Definition: Action.php:188
checkCanExecute(User $user)
Checks if the given user (identified by an object) can perform this action.
Definition: Action.php:321
getTitle()
Shortcut to get the Title object from the page.
Definition: Action.php:209
getOutput()
Get the OutputPage being used for this instance.
Definition: Action.php:139
getUser()
Shortcut to get the User being used for this instance.
Definition: Action.php:149
setHeaders()
Set output headers for noindexing etc.
Definition: Action.php:395
msg( $key,... $params)
Get a Message object with context set Parameters are the same as wfMessage()
Definition: Action.php:221
getRequest()
Get the WebRequest being used for this instance.
Definition: Action.php:129
An action which shows a form and does something based on the input from the form.
Definition: FormAction.php:32
getForm()
Get the HTMLForm to control behavior.
Definition: FormAction.php:83
Object handling generic submission, CSRF protection, layout and other logic for UI forms in a reusabl...
Definition: HTMLForm.php:158
setSubmitTextMsg( $msg)
Set the text for the submit button to a message.
Definition: HTMLForm.php:1625
setWrapperLegendMsg( $msg)
Prompt the whole form to be wrapped in a "<fieldset>", with this message as its "<legend>" element.
Definition: HTMLForm.php:1834
User-requested page cache purging.
Definition: PurgeAction.php:28
usesOOUI()
Whether the form should use OOUI.
Definition: PurgeAction.php:74
show()
The basic pattern for actions is to display some sort of HTMLForm UI, maybe with some stuff underneat...
Definition: PurgeAction.php:44
getDescription()
Returns the description that goes below the <h1> element.
Definition: PurgeAction.php:36
onSubmit( $data)
Process the form on POST submission.
Definition: PurgeAction.php:40
getFormFields()
Get an HTMLForm descriptor array.
Definition: PurgeAction.php:78
alterForm(HTMLForm $form)
Play with the HTMLForm if you need to more substantially.
Definition: PurgeAction.php:88
onSuccess()
Do something exciting on successful processing of the form.
Definition: PurgeAction.php:97
getName()
Return the name of the action this object responds to.
Definition: PurgeAction.php:32