| Actions: $wgActions | |
|---|---|
Array of allowed values for theaction parameter for normal pages. | |
| Introduced in version: | 1.18.0 (r86041) |
| Removed in version: | Still in use |
| Allowed values: | (array mapping strings to boolean or string) |
| Default value: | see below |
| Other settings:Alphabetical |By function | |
Array of allowed values for theaction parameter for normal pages.
Syntax is:
'foo' => 'ClassName' - Load the specified class which subclassesAction.'foo' => true - Load the classFooAction which subclassesAction.'foo' => false - The action is disabled; show an error message.| MediaWiki version: | ≥ 1.37 |
/** * Array of allowed values for the "title=foo&action=<action>" parameter. * See ActionFactory for the syntax. * Core defaults are in ActionFactory::CORE_ACTIONS, anything here overrides that. */$wgActions=[];
| MediaWiki versions: | 1.32 – 1.36 |
$wgActions=['credits'=>true,'delete'=>true,'edit'=>true,'editchangetags'=>SpecialPageAction::class,'history'=>true,'info'=>true,'markpatrolled'=>true,'mcrundo'=>McrUndoAction::class,'mcrrestore'=>McrRestoreAction::class,'protect'=>true,'purge'=>true,'raw'=>true,'render'=>true,'revert'=>true,'revisiondelete'=>SpecialPageAction::class,'rollback'=>true,'submit'=>true,'unprotect'=>true,'unwatch'=>true,'view'=>true,'watch'=>true,];
| MediaWiki version: | 1.31 |
$wgActions=['credits'=>true,'delete'=>true,'edit'=>true,'editchangetags'=>SpecialPageAction::class,'history'=>true,'info'=>true,'markpatrolled'=>true,'protect'=>true,'purge'=>true,'raw'=>true,'render'=>true,'revert'=>true,'revisiondelete'=>SpecialPageAction::class,'rollback'=>true,'submit'=>true,'unprotect'=>true,'unwatch'=>true,'view'=>true,'watch'=>true,];
| MediaWiki versions: | 1.25 – 1.30 |
$wgActions=['credits'=>true,'delete'=>true,'edit'=>true,'editchangetags'=>'SpecialPageAction','history'=>true,'info'=>true,'markpatrolled'=>true,'protect'=>true,'purge'=>true,'raw'=>true,'render'=>true,'revert'=>true,'revisiondelete'=>'SpecialPageAction','rollback'=>true,'submit'=>true,'unprotect'=>true,'unwatch'=>true,'view'=>true,'watch'=>true,];
| MediaWiki versions: | 1.19 – 1.24 |
$wgActions=array('credits'=>true,'delete'=>true,'edit'=>true,'history'=>true,'info'=>true,'markpatrolled'=>true,'protect'=>true,'purge'=>true,'raw'=>true,'render'=>true,'revert'=>true,'revisiondelete'=>true,'rollback'=>true,'submit'=>true,'unprotect'=>true,'unwatch'=>true,'view'=>true,'watch'=>true,);
| MediaWiki version: | 1.18 |
$wgActions=array('credits'=>true,'deletetrackback'=>true,'info'=>true,'markpatrolled'=>true,'purge'=>true,'revert'=>true,'revisiondelete'=>true,'rollback'=>true,'unwatch'=>true,'watch'=>true,);
There is a lot you can do with a custom action, and the best method of discovery is to browse theAction,FormAction andFormlessAction classes in the core MediaWiki code (as these are the classes you will be extending) and to look at examples of pages that provide similar function to what you require, either in the core or in stable and well-supported extensions.
The following example covers the most common use-case, namely generating a custom page for the action, possibly with some extra URL arguments.
classExampleActionextendsAction{// This action is called 'example_action'. This class will only be invoked when the specified action is requested.publicfunctiongetName(){// This should be the same name as used when registering the action in $wgActions.return'example_action';}// This is the function that is called whenever a page is being requested using this action.// You should not use globals $wgOut, $wgRequest, etc.// Instead, use the methods provided by the Action class (e.g. $this->getOutput()), instead.publicfunctionshow(){// Create local instances of the context variables we need, to simplify later code.$out=$this->getOutput();$request=$this->getRequest();// The view is the same for the main page and the talk page, so if we're on the talk page then we need to change $Title to point to the subject page instead.$title=$this->page->getTitle();if($title->isTalkPage()){$title=$title->getSubjectPage();}// Set page title.$out->setPageTitle('Example Page Title');// Get some parameters from the URL.$param=$request->getIntOrNull('example_param');// Do some internal stuff to generate the content (placed in $output).// Output the results.$out->addHTML($output);// or$out->addWikiText($output);}}
Register the new action in extension.json (seeextension.json schema):
"Actions":{"example_action":"ExampleAction"},
To disable an action just add the following e.g. for theraw action to your "LocalSettings.php" file:
$wgActions['raw']=false;