MediaWiki REL1_35
SpecialPageAction.php
Go to the documentation of this file.
1<?php
22
34 'revisiondelete' => 'Revisiondelete',
35 'editchangetags' => 'EditTags',
36 ];
37
41 public function getName() {
42 $request = $this->getRequest();
43 $actionName = $request->getVal( 'action', 'view' );
44 // TODO: Shouldn't need to copy-paste this code from Action::getActionName!
45 if ( $actionName === 'historysubmit' ) {
46 if ( $request->getBool( 'revisiondelete' ) ) {
47 $actionName = 'revisiondelete';
48 } elseif ( $request->getBool( 'editchangetags' ) ) {
49 $actionName = 'editchangetags';
50 }
51 }
52
53 if ( isset( self::$actionToSpecialPageMapping[$actionName] ) ) {
54 return $actionName;
55 }
56
57 return 'nosuchaction';
58 }
59
60 public function requiresUnblock() {
61 return false;
62 }
63
64 public function getDescription() {
65 return '';
66 }
67
68 public function onView() {
69 return '';
70 }
71
72 public function show() {
73 $special = $this->getSpecialPage();
74 if ( !$special ) {
75 throw new ErrorPageError(
76 $this->msg( 'nosuchaction' ), $this->msg( 'nosuchactiontext' ) );
77 }
78
79 $special->setContext( $this->getContext() );
80 $special->getContext()->setTitle( $special->getPageTitle() );
81 $special->run( '' );
82 }
83
84 public function doesWrites() {
85 $special = $this->getSpecialPage();
86
87 return $special ? $special->doesWrites() : false;
88 }
89
93 protected function getSpecialPage() {
94 $action = $this->getName();
95 if ( $action === 'nosuchaction' ) {
96 return null;
97 }
98
99 // map actions to (whitelisted) special pages
100 return MediaWikiServices::getInstance()->getSpecialPageFactory()->
101 getPage( self::$actionToSpecialPageMapping[$action] );
102 }
103}
getContext()
Get the IContextSource in use here.
Definition Action.php:215
msg( $key,... $params)
Get a Message object with context set Parameters are the same as wfMessage()
Definition Action.php:311
getRequest()
Get the WebRequest being used for this instance.
Definition Action.php:229
An error page which can definitely be safely rendered using the OutputPage.
An action which just does something, without showing a form first.
MediaWikiServices is the service locator for the application scope of MediaWiki.
An action that just passes the request to the relevant special page.
onView()
Show something on GET request.
show()
Stable to override.
static array $actionToSpecialPageMapping
A mapping of action names to special page names.
doesWrites()
Indicates whether this action may perform database writes.
getName()
Return the name of the action this object responds to.1.17string Lowercase name
getDescription()
Returns the description that goes below the <h1> tag.
requiresUnblock()
Whether this action can still be executed by a blocked user.