This is a list of known events and parameters; please add to it if you're going
to add events to the MediaWiki code.
+'AbortAutoAccount': Return false to cancel automated local account creation, where normally authentication against an external auth plugin would be creating a local account.
+$user: the User object about to be created (read-only, incomplete)
+$message: out parameter: error message to be displayed to user
+
'AbortAutoblock': Return false to cancel an autoblock.
$autoblockip: The IP going to be autoblocked.
$block: The block from which the autoblock is coming.
&$retval: a LoginForm class constant to return from authenticateUserData();
default is LoginForm::ABORTED. Note that the client may be using
a machine API rather than the HTML user interface.
+&$msg: the message identifier for abort reason (new in 1.18, not available before 1.18)
'AbortMove': allows to abort moving an article (title)
$old: old title
$err: error message
$reason: the reason for the move (added in 1.13)
-'AbortNewAccount': Return false to cancel account creation.
+'AbortNewAccount': Return false to cancel explicit account creation.
$user: the User object about to be created (read-only, incomplete)
$message: out parameter: error message to display on abort
$tokenFunctions array and return true (returning false makes no sense)
$tokenFunctions: array(action => callback)
+'APIQuerySiteInfoGeneralInfo': use this hook to add extra information to
+the sites general information.
+$module: the current ApiQuerySiteInfo module
+&$results: array of results, add things here
+
'APIQueryUsersTokens': use this hook to add custom token to list=users.
Every token has an action, which will be used in the ustoken parameter
and in the output (actiontoken="..."), and a callback function which
$article: article (object) that data will be loaded
$fields: fileds (array) to load from the database
+'ArticlePrepareTextForEdit': called when preparing text to be saved
+$article: the article being saved
+$popts: parser options to be used for pre-save transformation
+
'ArticleProtect': before an article is protected
$article: the article being protected
$user: the user doing the protection
&$sectionanchor: The section anchor link (e.g. "#overview" )
&$extraq: Extra query parameters which can be added via hooked functions
+'ArticleViewFooter': After showing the footer section of an ordinary page view
+$article: Article object
+
'ArticleViewHeader': Before the parser cache is about to be tried for article
viewing.
&$article: the article
Change $bad and return false to override. If an image is "bad", it is not
rendered inline in wiki pages or galleries in category pages.
-'BeforeGalleryFindFile': before an image is fetched for a gallery
-&$gallery,: the gallery object
-&$nt: the image title
-&$time: image timestamp
-
'BeforeInitialize': before anything is initialized in performRequestForTitle()
&$title: Title being used for request
&$article: The associated Article object
&$out: OutputPage object
&$skin: Skin object
+'BeforeParserFetchFileAndTitle': before an image is rendered by Parser
+$parser: Parser object
+$nt: the image title
+&$time: the image timestamp (use '0' to force a broken thumbnail)
+&$sha1: image base 36 sha1 (used to specify the file, $nt will be ignored if this is set)
+&$descQuery: query string to add to thumbnail URL
+
'BeforeParserFetchTemplateAndtitle': before a template is fetched by Parser
-&$parser: Parser object
-&$title: title of the template
+$parser: Parser object
+$title: title of the template
&$skip: skip this template and link it?
&$id: the id of the revision being parsed
-'BeforeParserMakeImageLinkObj': before an image is rendered by Parser
-&$parser: Parser object
-&$nt: the image title
-&$skip: skip this image and link it?
-&$time: the image timestamp
-
'BeforeParserrenderImageGallery': before an image gallery is rendered by Parser
&$parser: Parser object
&$ig: ImageGallery object
+'BeforeWelcomeCreation': before the welcomecreation message is displayed to a newly created user
+&$welcome_creation_msg: MediaWiki message name to display on the welcome screen to a newly created user account
+&$injected_html: Any HTML to inject after the "logged in" message of a newly created user account
+
+'BitmapHandlerTransform': before a file is transformed, gives extension the
+possibility to transform it themselves
+$handler: BitmapHandler
+$image: File
+&$scalerParams: Array with scaler parameters
+&$mto: null, set to a MediaTransformOutput
+
'BlockIp': before an IP address or user is blocked
$block: the Block object about to be saved
$user: the user _doing_ the block (not the one being blocked)
'FetchChangesList': When fetching the ChangesList derivative for
a particular user
-&$user: User the list is being fetched for
+$user: User the list is being fetched for
&$skin: Skin object to be used with the list
&$list: List object (defaults to NULL, change it to an object
instance and return false override the list derivative used)
$url: string value as output (out parameter, can modify)
$query: query options passed to Title::getLocalURL()
+'GetMetadataVersion': modify the image metadata version currently in use. This is
+ used when requesting image metadata from a ForiegnApiRepo. Media handlers
+ that need to have versioned metadata should add an element to the end of
+ the version array of the form 'handler_name=version'. Most media handlers
+ won't need to do this unless they broke backwards compatibility with a
+ previous version of the media handler metadata output.
+&$version: Array of version strings
+
'GetPreferences': modify user preferences
$user: User whose preferences are being modified.
&$preferences: Preferences description array, to be fed to an HTMLForm object
$target: Title/string of redirect target
$article: Article object
+'InterwikiLoadPrefix': When resolving if a given prefix is an interwiki or not.
+Return true without providing an interwiki to continue interwiki search.
+$prefix: interwiki prefix we are looking for.
+&$iwData: output array describing the interwiki with keys iw_url, iw_local,
+ iw_trans and optionally iw_api and iw_wikiid.
+
'InternalParseBeforeLinks': during Parser's internalParse method before links
but after noinclude/includeonly/onlyinclude and other processing.
&$parser: Parser object
&$revert: string that is displayed in the UI, similar to $comment.
$time: timestamp of the log entry (added in 1.12)
-'LogPageValidTypes': action being logged.
-DEPRECATED: Use $wgLogTypes
-&$type: array of strings
-
-'LogPageLogName': name of the logging page(s).
-DEPRECATED: Use $wgLogNames
-&$typeText: array of strings
-
-'LogPageLogHeader': strings used by wfMsg as a header.
-DEPRECATED: Use $wgLogHeaders
-&$headerText: array of strings
-
-'LogPageActionText': strings used by wfMsg as a header.
-DEPRECATED: Use $wgLogActions
-&$actionText: array of strings
-
'MagicWordMagicWords': When defining new magic word.
DEPRECATED: use $magicWords in a file listed in
$wgExtensionMessagesFiles instead.
'MakeGlobalVariablesScript': called right before Skin::makeVariablesScript
is executed. Ideally, this hook should only be used to add variables that
depend on the current page/request; static configuration should be added
-through ResourceLoaderConfigVars instead.
+through ResourceLoaderGetConfigVars instead.
&$vars: variable (or multiple variables) to be added into the output
of Skin::makeVariablesScript
loader request or generating HTML output.
&$resourceLoader: ResourceLoader object
+'ResourceLoaderGetStartupModules': Run once the startup module is being generated. This allows you
+to add modules to the startup module. This hook should be used sparingly since any module added here
+will be loaded on all pages. This hook is useful if you want to make code available to module loader
+scripts.
+
'RawPageViewBeforeOutput': Right before the text is blown out in action=raw
&$obj: RawPage object
&$text: The text that's going to be the output
'RecentChange_save': called at the end of RecentChange::save()
$recentChange: RecentChange object
-'ResourceLoaderConfigVars': called at the end of
+'ResourceLoaderGetConfigVars': called at the end of
ResourceLoaderStartUpModule::getConfig(). Use this to export static
configuration variables to JavaScript. Things that depend on the current
page/request state must be added through MakeGlobalVariablesScript instead.
'SiteNoticeBefore': Before the sitenotice/anonnotice is composed
&$siteNotice: HTML returned as the sitenotice
+$skin: Skin object
Return true to allow the normal method of notice selection/rendering to work,
or change the value of $siteNotice and return false to alter it.
'SiteNoticeAfter': After the sitenotice/anonnotice is composed
&$siteNotice: HTML sitenotice
+$skin: Skin object
Alter the contents of $siteNotice to add to/alter the sitenotice/anonnotice.
'SkinAfterBottomScripts': At the end of Skin::bottomScripts()
'SkinSubPageSubtitle': At the beginning of Skin::subPageSubtitle()
&$subpages: Subpage links HTML
$skin: Skin object
+$out: OutputPage object
If false is returned $subpages will be used instead of the HTML
subPageSubtitle() generates.
If true is returned, $subpages will be ignored and the rest of
'SkinTemplateToolboxEnd': Called by SkinTemplate skins after toolbox links have
been rendered (useful for adding more)
-$tools: array of tools
+$sk: The QuickTemplate based skin template running the hook.
'SoftwareInfo': Called by Special:Version for returning information about
the software
'SpecialSearchProfiles': allows modification of search profiles
&$profiles: profiles, which can be modified.
+'SpecialSearchProfileForm': allows modification of search profile forms
+$search: special page object
+&$form: String: form html
+$profile: String: current search profile
+$term: String: search term
+$opts: Array: key => value of hidden options for inclusion in custom forms
+
+'SpecialSearchSetupEngine': allows passing custom data to search engine
+$search: special page object
+$profile: String: current search profile
+$engine: the search engine
+
'SpecialSearchResults': called before search result display when there
are matches
$term: string of search term
$ip: IP of the user who sent the message out
$u: the account whose new password will be set
+'UserAddGroup': called when adding a group; return false to override
+stock group addition.
+$user: the user object that is to have a group added
+&$group: the group to add, can be modified
+
'UserArrayFromResult': called when creating an UserArray object from a
database result
&$userArray: set this to an object to override the default object returned
'UserGetImplicitGroups': Called in User::getImplicitGroups()
&$groups: List of implicit (automatically-assigned) groups
+'UserGetLanguageObject': Called when getting user's interface language object
+$user: User object
+&$code: Langauge code that will be used to create the object
+
'UserGetReservedNames': allows to modify $wgReservedUsernames at run time
&$reservedUsernames: $wgReservedUsernames
$inject_html: Any HTML to inject after the "logged out" message.
$oldName: name of the user before logout (string)
+'UserRemoveGroup': called when removing a group; return false to override
+stock group removal.
+$user: the user object that is to have a group removed
+&$group: the group to be removed, can be modified
+
'UserRights': After a user's group memberships are changed
$user : User object that was changed
$add : Array of strings corresponding to groups added
$row: The database row for the revision.
$text: The revision text.
+'XMPGetInfo': Called when obtaining the list of XMP tags to extract. Can be used to add
+ additional tags to extract.
+&$items: Array containing information on which items to extract. See XMPInfo for details on the format.
+
+'XMPGetResults': Called just before returning the results array of parsing xmp data. Can be
+ used to post-process the results.
+&$data: Array of metadata sections (such as $data['xmp-general']) each section is an array of
+ metadata tags returned (each tag is either a value, or an array of values).
+
More hooks might be available but undocumented, you can execute
./maintenance/findhooks.php to find hidden one.