MediaWiki
1.34.0
MarkpatrolledAction.php
Go to the documentation of this file.
1
<?php
23
use
MediaWiki\MediaWikiServices
;
24
30
class
MarkpatrolledAction
extends
FormAction
{
31
32
public
function
getName
() {
33
return
'markpatrolled'
;
34
}
35
36
protected
function
getDescription
() {
37
// Disable default header "subtitle"
38
return
''
;
39
}
40
41
public
function
getRestriction
() {
42
return
'patrol'
;
43
}
44
45
protected
function
usesOOUI
() {
46
return
true
;
47
}
48
49
protected
function
getRecentChange
( $data =
null
) {
50
$rc =
null
;
51
// Note: This works both on initial GET url and after submitting the form
52
$rcId = $data ? intval( $data[
'rcid'
] ) : $this->
getRequest
()->getInt(
'rcid'
);
53
if
( $rcId ) {
54
$rc =
RecentChange::newFromId
( $rcId );
55
}
56
if
( !$rc ) {
57
throw
new
ErrorPageError
(
'markedaspatrollederror'
,
'markedaspatrollederrortext'
);
58
}
59
return
$rc;
60
}
61
62
protected
function
preText
() {
63
$rc = $this->
getRecentChange
();
64
$title
= $rc->getTitle();
65
$linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
66
67
// Based on logentry-patrol-patrol (see PatrolLogFormatter)
68
$revId = $rc->getAttribute(
'rc_this_oldid'
);
69
$query = [
70
'curid'
=> $rc->getAttribute(
'rc_cur_id'
),
71
'diff'
=> $revId,
72
'oldid'
=> $rc->getAttribute(
'rc_last_oldid'
)
73
];
74
$revlink = $linkRenderer->makeLink(
$title
, $revId, [], $query );
75
$pagelink = $linkRenderer->makeLink(
$title
,
$title
->getPrefixedText() );
76
77
return
$this->
msg
(
'confirm-markpatrolled-top'
)->params(
78
$title
->getPrefixedText(),
79
// Provide pre-rendered link as parser would render [[:$1]] as bold non-link
80
Message::rawParam( $pagelink ),
81
Message::rawParam( $revlink )
82
)->parse();
83
}
84
85
protected
function
alterForm
(
HTMLForm
$form ) {
86
$form->
addHiddenField
(
'rcid'
, $this->
getRequest
()->getInt(
'rcid'
) );
87
$form->
setTokenSalt
(
'patrol'
);
88
$form->
setSubmitTextMsg
(
'confirm-markpatrolled-button'
);
89
}
90
95
public
function
onSubmit
( $data ) {
96
$user = $this->
getUser
();
97
$rc = $this->
getRecentChange
( $data );
98
$errors = $rc->doMarkPatrolled( $user );
99
100
if
( in_array( [
'rcpatroldisabled'
], $errors ) ) {
101
throw
new
ErrorPageError
(
'rcpatroldisabled'
,
'rcpatroldisabledtext'
);
102
}
103
104
// Guess where the user came from
105
// TODO: Would be nice to see where the user actually came from
106
if
( $rc->getAttribute(
'rc_type'
) ==
RC_NEW
) {
107
$returnTo =
'Newpages'
;
108
} elseif ( $rc->getAttribute(
'rc_log_type'
) ==
'upload'
) {
109
$returnTo =
'Newfiles'
;
110
}
else
{
111
$returnTo =
'Recentchanges'
;
112
}
113
$return =
SpecialPage::getTitleFor
( $returnTo );
114
115
if
( in_array( [
'markedaspatrollederror-noautopatrol'
], $errors ) ) {
116
$this->
getOutput
()->setPageTitle( $this->
msg
(
'markedaspatrollederror'
) );
117
$this->
getOutput
()->addWikiMsg(
'markedaspatrollederror-noautopatrol'
);
118
$this->
getOutput
()->returnToMain(
null
, $return );
119
return
true
;
120
}
121
122
if
( $errors ) {
123
if
( !in_array( [
'hookaborted'
], $errors ) ) {
124
throw
new
PermissionsError
(
'patrol'
, $errors );
125
}
126
// The hook itself has handled any output
127
return
$errors;
128
}
129
130
$this->
getOutput
()->setPageTitle( $this->
msg
(
'markedaspatrolled'
) );
131
$this->
getOutput
()->addWikiMsg(
'markedaspatrolledtext'
, $rc->getTitle()->getPrefixedText() );
132
$this->
getOutput
()->returnToMain(
null
, $return );
133
return
true
;
134
}
135
136
public
function
onSuccess
() {
137
// Required by parent class. Redundant as our onSubmit handles output already.
138
}
139
140
public
function
doesWrites
() {
141
return
true
;
142
}
143
}
MediaWiki\MediaWikiServices
MediaWikiServices is the service locator for the application scope of MediaWiki.
Definition:
MediaWikiServices.php:117
Action\getRequest
getRequest()
Get the WebRequest being used for this instance.
Definition:
Action.php:198
MarkpatrolledAction\usesOOUI
usesOOUI()
Whether the form should use OOUI.
Definition:
MarkpatrolledAction.php:45
HTMLForm\setTokenSalt
setTokenSalt( $salt)
Set the salt for the edit token.
Definition:
HTMLForm.php:1032
FormAction
An action which shows a form and does something based on the input from the form.
Definition:
FormAction.php:28
MarkpatrolledAction\preText
preText()
Add pre- or post-text to the form.
Definition:
MarkpatrolledAction.php:62
MarkpatrolledAction\getDescription
getDescription()
Returns the description that goes below the <h1> tag.
Definition:
MarkpatrolledAction.php:36
SpecialPage\getTitleFor
static getTitleFor( $name, $subpage=false, $fragment='')
Get a localised Title object for a specified special page name If you don't need a full Title object,...
Definition:
SpecialPage.php:83
PermissionsError
Show an error when a user tries to do something they do not have the necessary permissions for.
Definition:
PermissionsError.php:30
MarkpatrolledAction\getName
getName()
Return the name of the action this object responds to.
Definition:
MarkpatrolledAction.php:32
MarkpatrolledAction\alterForm
alterForm(HTMLForm $form)
Play with the HTMLForm if you need to more substantially.
Definition:
MarkpatrolledAction.php:85
HTMLForm\addHiddenField
addHiddenField( $name, $value, array $attribs=[])
Add a hidden field to the output.
Definition:
HTMLForm.php:939
$title
$title
Definition:
testCompression.php:34
MarkpatrolledAction\onSuccess
onSuccess()
Do something exciting on successful processing of the form.
Definition:
MarkpatrolledAction.php:136
MarkpatrolledAction\getRestriction
getRestriction()
Get the permission required to perform this action.
Definition:
MarkpatrolledAction.php:41
RecentChange\newFromId
static newFromId( $rcid)
Obtain the recent change with a given rc_id value.
Definition:
RecentChange.php:194
Action\getUser
getUser()
Shortcut to get the User being used for this instance.
Definition:
Action.php:218
MarkpatrolledAction\onSubmit
onSubmit( $data)
Definition:
MarkpatrolledAction.php:95
RC_NEW
const RC_NEW
Definition:
Defines.php:123
HTMLForm\setSubmitTextMsg
setSubmitTextMsg( $msg)
Set the text for the submit button to a message.
Definition:
HTMLForm.php:1388
Action\msg
msg( $key,... $params)
Get a Message object with context set Parameters are the same as wfMessage()
Definition:
Action.php:259
Action\getOutput
getOutput()
Get the OutputPage being used for this instance.
Definition:
Action.php:208
ErrorPageError
An error page which can definitely be safely rendered using the OutputPage.
Definition:
ErrorPageError.php:27
MarkpatrolledAction\doesWrites
doesWrites()
Indicates whether this action may perform database writes.
Definition:
MarkpatrolledAction.php:140
MarkpatrolledAction
Mark a revision as patrolled on a page.
Definition:
MarkpatrolledAction.php:30
MarkpatrolledAction\getRecentChange
getRecentChange( $data=null)
Definition:
MarkpatrolledAction.php:49
HTMLForm
Object handling generic submission, CSRF protection, layout and other logic for UI forms in a reusabl...
Definition:
HTMLForm.php:131
includes
actions
MarkpatrolledAction.php
Generated on Thu Dec 19 2019 14:54:00 for MediaWiki by
1.8.16