Manual:Hooks
![]() |
Development | Tag extensions | Parser functions | Hooks | Special pages | Skins | Magic words | API |
Contents
Hooks allow custom code to be executed when some defined event (such as saving a page or a user logging in) occurs.
For example, the following code snippet will trigger a call to the function MyExtensionHooks::pageContentSaveComplete
whenever the PageContentSaveComplete
hook runs, passing it function arguments specific to PageContentSaveComplete:
$wgHooks['PageContentSaveComplete'][] = 'MyExtensionHooks::pageContentSaveComplete';
MediaWiki provides many hooks like this to extend the functionality of the MediaWiki software. Assigning a function (known as an event handler) to a hook will cause that function to be called at the appropriate point in the main MediaWiki code, to perform whatever additional task(s) the developer thinks would be useful at that point. Each hook can have multiple handlers assigned to it, in which case it will call the functions in the order that they are assigned, with any modifications made by one function passed on to subsequent functions in the chain.
Assign functions to hooks at the end of LocalSettings.php or in your own extension file at the file scope (not in a $wgExtensionFunctions function or the ParserFirstCallInit hook). For extensions, if the hook function's behavior is conditioned on a setting in LocalSettings.php, the hook should be assigned and the function should terminate early if the condition was not met.
You can also create new hooks in your own extension; if you do so, add them to the Extension hook registry.
Background[edit]
A hook is triggered by a call to the function Hooks::run (described in file hooks.txt, and defined in GlobalFunctions.php. The first argument to Hooks::run is the name of the hook, the second is the array of arguments for that hook. It will find the event handlers to run in the array $wgHooks. It calls the PHP function call_user_func_array with arguments being the function to be called and its arguments.
See also the hook specification in core.
In this example from the doEditContent
function in WikiPage.php, doEditContent calls Hooks::run to run the PageContentSaveComplete hook, passing $hook_args
as argument:
Hooks::run( 'PageContentSaveComplete', $hook_args );
The core calls many hooks, but extensions can also call hooks.
Writing an event handler[edit]
An event handler is a function you assign to a hook, which will be run whenever the event represented by that hook occurs. It consists of:
- a function with some optional accompanying data, or
- an object with a method and some optional accompanying data.
Register the event handler by adding it to the global $wgHooks
array for a given event. Hooks can be added from any point in the execution before the hook is called, but are most commonly added in LocalSettings.php, its included files, or, for extensions, in the file extension.json. All the following are valid ways to define a hook function for the event EventName that is passed two parameters, showing the code that will be executed when EventName happens:
Format | Syntax | Resulting function call. |
---|---|---|
Static function | $wgHooks['EventName'][] = 'MyExtensionHooks::onEventName';
|
MyExtensionHooks::onEventName( $param1, $param2 );
|
Function, no data | $wgHooks['EventName'][] = 'someFunction';
|
someFunction( $param1, $param2 );
|
Function with data | $wgHooks['EventName'][] = array( 'someFunction', $someData );
|
someFunction( $someData, $param1, $param2 );
|
Function, no data (weird syntax, but OK) |
$wgHooks['EventName'][] = array( 'someFunction' );
|
someFunction( $param1, $param2 );
|
inline anonymous function | $wgHooks['EventName'][] = function( $param1, $param2 ) {
|
(the anonymous function is called with the hook's parameters) |
Object only | $wgHooks['EventName'][] = $object;
|
$object->onEventName( $param1, $param2 );
|
Object with method | $wgHooks['EventName'][] = array( $object, 'someMethod' );
|
$object->someMethod( $param1, $param2 );
|
Object with method and data | $wgHooks['EventName'][] = array( $object, 'someMethod', $someData );
|
$object->someMethod( $someData, $param1, $param2 );
|
Object only (weird syntax, but OK) |
$wgHooks['EventName'][] = array( $object );
|
$object->onEventName( $param1, $param2 );
|
For extensions, the syntax is similar in the file extension.json
(corresponding to the first and second case above):
{
"Hooks": {
"EventName": [
"MyExtensionHooks::onEventName",
"someFunction"
]
}
}
When an event occurs, the function (or object method) that you registered will be called the event's parameters along with any optional data you provided at registration. Note that when an object is the hook and you didn't specify a method, the method called is 'onEventName'. For other events this would be 'onArticleSave', 'onUserLogin', etc.
The optional data is useful if you want to use the same function or object for different purposes. For example:
$wgHooks['PageContentSaveComplete'][] = array( 'ircNotify', 'TimStarling' );
$wgHooks['PageContentSaveComplete'][] = array( 'ircNotify', 'brion' );
This code would result in ircNotify being run twice when a page is saved: once for 'TimStarling', and once for 'brion'.
Event handlers can return one of three possible values:
- no return value (or null): the hook handler has operated successfully. (Before MediaWiki 1.23, returning true was required.)
- "some string": an error occurred; processing should stop and the error should be shown to the user
- false: the hook handler has done all the work necessary, or replaced normal handling. This will prevent further handlers from being run, and in some cases tells the calling function to skip normal processing.
The last result would be for cases where the hook function replaces the main functionality. For example, if you wanted to authenticate users to a custom system (LDAP, another PHP program, whatever), you could do:
$wgHooks['UserLogin'][] = array( 'ldapLogin', $ldapServer );
$ldap['server'] = "ldaps://ldap.company.com/";
$ldap['port'] = 636;
$ldap['base'] = ",ou=Staff,dc=company,dc=com";
function ldapLogin( $username, $password ) {
global $ldap;
$auth_user = "uid=" . $username . $ldap[ 'base' ];
wfSupressWarnings();
if ( $connect = ldap_connect( $ldap[ 'server' ], $ldap[ 'port' ] ) ){
if ( $bind = ldap_bind( $connect, $auth_user, $password ) ){
ldap_close( $connect );
return true;
} else { // if bound to ldap
echo 'Error on ldap_bind';
}
} else { // if connected to ldap
echo 'Error on ldap_connect';
}
ldap_close( $connect );
wfRestoreWarnings();
return false;
}
Returning false makes less sense for events where the action is complete, and will normally be ignored by the caller.
Documentation[edit]
Currently, hooks in MediaWiki core have to be documented both in docs/hooks.txt (in the source code repository) and here on MediaWiki.org. In some cases, one of these steps may not yet have been completed, so if a hook appears undocumented, check both.
To document a hook on-wiki, use {{MediaWikiHook}}.
Available hooks[edit]
This page contains a list of hooks that are made available by the MediaWiki software, and is known to be complete to version 1.8.2. There is a lot of detail missing for the more recent hooks in particular, as their purpose/usage has not yet been documented by the developers. If you have any further information on any of these then please add it in the appropriate place.
In the tables, the first column gives the MediaWiki version that the hook was introduced in; use the link in the second column to find out more information about the hook and how to use it.
Hooks grouped by function[edit]
Some of these hooks can be grouped into multiple functions.
- Sections: Article Management - Edit Page - Page Rendering - User Interface - Special Pages - User Management - Logging - Skinning Templates - API - Import/Export - Miscellaneous
Function | Version | Hook | Description |
---|---|---|---|
Article Management | 1.4.0 | ArticleDelete | Occurs whenever the software receives a request to delete an article |
1.4.0 | ArticleDeleteComplete | Occurs after the delete article request has been processed | |
1.9.1 | ArticleUndelete | When one or more revisions of an article are restored | |
1.12.0 | ArticleRevisionUndeleted | Occurs after an article revision is restored | |
1.8.0 | ArticleFromTitle | Called to determine the class to handle the article rendering, based on title | |
1.4.0 | ArticleProtect | Occurs whenever the software receives a request to protect an article | |
1.4.0 | ArticleProtectComplete | Occurs after the protect article request has been processed | |
1.6.0 | ArticleInsertComplete | Occurs after a new article has been created | |
1.11.0 | RevisionInsertComplete | Called after a revision is inserted into the DB | |
1.4.0 | ArticleSave | (Deprecated; use PageContentSave) Occurs whenever the software receives a request to save an article | |
1.21.0 | PageContentSave | Occurs whenever the software receives a request to save an article | |
1.4.0 | ArticleSaveComplete | (deprecated; use PageContentSaveComplete) Occurs after the save article request has been processed | |
1.21.0 | ConvertContent | Called when a conversion to another content model is requested. | |
1.21.0 | PageContentSaveComplete | Occurs after the save article request has been processed | |
1.11.0 | ArticleUpdateBeforeRedirect | Occurs after a page is updated (usually on save), before the user is redirected back to the page | |
1.5.7 | ArticleEditUpdateNewTalk | Allows an extension to prevent user notification when a new message is added to their talk page. | |
1.14.0 | ArticleEditUpdates | Called when edit updates (mainly link tracking) are made when an article has been changed. | |
1.6.0 | ArticleEditUpdatesDeleteFromRecentchanges | Occurs before saving to the database. If returning false old entries are not deleted from the recentchangeslist. | |
1.8.0 | RecentChange_save | Called after a "Recent Change" is committed to the DB | |
1.6.0 | SpecialMovepageAfterMove | Called after a page is moved. | |
1.22.0 | TitleMove | Occurs before a requested pagemove is performed | |
1.4.0 | TitleMoveComplete | Occurs whenever a request to move an article is completed | |
1.12.0 | AbortMove | Allows to abort moving page from one title to another | |
1.12.0 | ArticleRollbackComplete | Occurs after an article rollback is completed | |
1.12.0 | ArticleMergeComplete | after merging to article using Special:Mergehistory | |
1.6.0 | ArticlePurge | Allows an extension to cancel a purge. | |
1.13.0 | ArticleRevisionVisibilitySet | called when changing visibility of one or more revisions of an article | |
1.21.0 | ContentHandlerDefaultModelFor | called when deciding the default content model for a given title. | |
1.21.0 | ContentHandlerForModelID | called when a ContentHandler is requested for a given content model name, but no entry for that model exists in $wgContentHandlers. | |
1.23.0 | Article::MissingArticleConditions | called when showing a page. | |
1.20.0 | TitleIsAlwaysKnown | Allows overriding default behaviour for determining if a page exists. | |
Edit Page | 1.6.0 | AlternateEdit | Used to replace the entire edit page, altogether. |
1.21.0 | AlternateEditPreview | Allows replacement of the edit preview | |
1.6.0 | EditFilter | Perform checks on an edit | |
1.12.0 | EditFilterMerged | Perform checks on an edit | |
1.7.0 | EditFormPreloadText | Called when edit page for a new article is shown. This lets you fill the text-box of a new page with initial wikitext. | |
1.8.3 | EditPage::attemptSave | Called before an article is saved, that is before insertNewArticle() is called | |
1.6.0 | EditPage::showEditForm:fields | Allows injection of form field into edit form. | |
1.6.0 | EditPage::showEditForm:initial | Allows injection of HTML into edit form | |
1.21.0 | EditPage::showStandardInputs:options | Allows injection of form fields into the editOptions area | |
1.13.0 | EditPageBeforeConflictDiff | Allows modifying the EditPage object and output when there's an edit conflict. | |
1.12.0 | EditPageBeforeEditButtons | Used to modify the edit buttons on the edit form | |
1.14.0 | EditPageBeforeEditChecks | Allows modifying the edit checks below the textarea in the edit form | |
Page Rendering | 1.27.0 | AfterBuildFeedLinks | Executed after all feed links are created. |
1.6.0 | ArticlePageDataBefore | Executes before data is loaded for the article requested. | |
1.6.0 | ArticlePageDataAfter | Executes after loading the data of an article from the database. | |
1.6.0 | ArticleViewHeader | Called after an articleheader is shown. | |
1.6.0 | PageRenderingHash | Alter the parser cache option hash key. | |
1.6.0 | ArticleAfterFetchContent | Used to process raw wiki code after most of the other parser processing is complete. | |
1.22.0 | GalleryGetModes | Allows extensions to add classes that can render different modes of a gallery. | |
1.6.0 | ParserClearState | Called at the end of Parser::clearState() | |
1.21.0 | ParserCloned | Called when the Parser object is cloned. | |
1.5.0 | ParserBeforeStrip | Used to process the raw wiki code before any internal processing is applied. | |
1.5.0 | ParserAfterStrip | (deprecated) Before version 1.14.0, used to process raw wiki code after text surrounded by <nowiki> tags have been protected but before any other wiki text has been processed. In version 1.14.0 and later, runs immediately after ParserBeforeStrip.
| |
1.6.0 | ParserBeforeInternalParse | Replaces the normal processing of stripped wiki text with custom processing. Used primarily to support alternatives (rather than additions) to the core MediaWiki markup syntax. | |
1.6.0 | ParserGetVariableValueVarCache | Use this to change the value of the variable cache or return false to not use it. | |
1.6.0 | ParserGetVariableValueTs | Use this to change the value of the time for the {{LOCAL...}} magic word. | |
1.6.0 | ParserGetVariableValueSwitch | Assigns a value to a user defined variable. | |
1.10.0 | InternalParseBeforeLinks | Used to process the expanded wiki code after <nowiki>, HTML-comments, and templates have been treated. Suitable for syntax extensions that want to customize the treatment of internal link syntax, i.e. [[....]] .
| |
1.13.0 | LinkerMakeExternalLink | Called before the HTML for external links is returned. Used for modifying external link HTML. | |
1.13.0 | LinkerMakeExternalImage | Called before external image HTML is returned. Used for modifying external image HTML. | |
1.23.0 | LinkerMakeMediaLinkFile | Called before the HTML for media links is returned. Used for modifying media link HTML. | |
1.11.0 | EditSectionLink | (deprecated) Override the return value of Linker::editSectionLink(). Called after creating [edit] link in header in Linker::editSectionLink but before HTML is displayed. | |
1.11.0 | EditSectionLinkForOther | (deprecated) Override the return value of Linker::editSectionLinkForOther(). Called after creating [edit] link in header in Linker::editSectionLinkForOther but before HTML is displayed. | |
1.5.0 | ParserBeforeTidy | Used to process the nearly-rendered html code for the page (but before any html tidying occurs). | |
1.5.0 | ParserAfterTidy | Used to add some final processing to the fully-rendered page output. | |
1.24.0 | ContentGetParserOutput | Customize parser output for a given content object, called by AbstractContent::getParserOutput. May be used to override the normal model-specific rendering of page content. | |
1.8.0 | OutputPageParserOutput | Called after parse, before the HTML is added to the output. | |
1.6.0 | OutputPageBeforeHTML | Called every time wikitext is added to the OutputPage, after it is parsed but before it is added. Called after the page has been rendered, but before the HTML is displayed. | |
1.4.3 | CategoryPageView | Called before viewing a categorypage in CategoryPage::view | |
1.5.1 | ArticleViewRedirect | Allows an extension to prevent the display of a "Redirected From" link on a redirect page. | |
1.10.0 | IsFileCacheable | Allow an extension to disable file caching on pages. | |
1.10.1 | BeforeParserFetchTemplateAndtitle | Allows an extension to specify a version of a page to get for inclusion in a template. | |
1.18.0 | BeforeParserFetchFileAndTitle | Allows an extension to select a different version of an image to link to. | |
1.10.1 | BeforeParserrenderImageGallery | Allows an extension to modify an image gallery before it is rendered. | |
1.17.0 | ResourceLoaderRegisterModules | Allows registering modules with ResourceLoader | |
1.24.0 | SidebarBeforeOutput | Directly before the sidebar is output | |
User Interface | 1.5.4 | AutoAuthenticate | Called to authenticate users on external/environmental means |
1.4.0 | UserLoginComplete | Occurs after a user has successfully logged in | |
1.18.0 | BeforeWelcomeCreation | Allows an extension to change the message displayed upon a successful login. | |
1.4.0 | UserLogout | Occurs when the software receives a request to log out | |
1.4.0 | UserLogoutComplete | Occurs after a user has successfully logged out | |
1.6.0 | userCan | To interrupt/advise the "user can do X to Y article" check | |
1.4.0 | WatchArticle | Occurs whenever the software receives a request to watch an article | |
1.4.0 | WatchArticleComplete | Occurs after the watch article request has been processed | |
1.4.0 | UnwatchArticle | Occurs whenever the software receives a request to unwatch an article | |
1.4.0 | UnwatchArticleComplete | Occurs after the unwatch article request has been processed | |
1.6.0 | MarkPatrolled | Called before an edit is marked patrolled | |
1.6.0 | MarkPatrolledComplete | Called after an edit is marked patrolled | |
1.4.0 | EmailUser | Occurs whenever the software receives a request to send an email from one user to another | |
1.4.0 | EmailUserComplete | Occurs after an email has been sent from one user to another | |
1.6.0 | SpecialMovepageAfterMove | Called after a page is moved. | |
1.19.0 | SpecialSearchCreateLink | Called when making the message to create a page or go to an existing page | |
1.17.0 | SpecialSearchGo | ||
1.6.0 | SpecialSearchNogomatch | ||
1.19.0 | SpecialSearchPowerBox | the equivalent of SpecialSearchProfileForm for the advanced form | |
1.5.7 | ArticleEditUpdateNewTalk | ||
1.5.7 | UserRetrieveNewTalks | ||
1.5.7 | UserClearNewTalkNotification | ||
1.6.0 | ArticlePurge | ||
File Upload | 1.6.0 | UploadVerification | (Deprecated; use UploadVerifyFile) Called when a file is uploaded, to allow extra file verification to take place |
1.17 | UploadVerifyFile | Called when a file is uploaded, to allow extra file verification to take place (preferred) | |
1.28 | UploadVerifyUpload | Called when a file is uploaded, to allow extra file verification to take place (preferred) | |
1.6.4 | UploadComplete | Called when a file upload has completed. | |
Special pages | 1.6.0 | SpecialPageGetRedirect | |
1.24.0 | SpecialBlockModifyFormFields | Add or modify block fields of Special:Block | |
1.28.0 | SpecialContributions::formatRow::flags | Called before rendering a Special:Contributions row. | |
1.13.0 | SpecialListusersDefaultQuery | Called right before the end of UsersPager::getDefaultQuery() | |
1.13.0 | SpecialListusersFormatRow | Called right before the end of UsersPager::formatRow() | |
1.13.0 | SpecialListusersHeader | Called before closing the <fieldset> in UsersPager::getPageHeader() | |
1.13.0 | SpecialListusersHeaderForm | Called before adding the submit button in UsersPager::getPageHeader() | |
1.13.0 | SpecialListusersQueryInfo | Called right before the end of UsersPager::getQueryInfo() | |
1.6.0 | SpecialPageExecuteBeforeHeader | ||
1.6.0 | SpecialPageExecuteBeforePage | ||
1.6.0 | SpecialPageExecuteAfterPage | ||
1.6.0 | SpecialVersionExtensionTypes | ||
SpecialPage_initList | Called after the Special Page list is populated | ||
1.9.0 | UploadForm:initial | Called just before the upload form is generated | |
1.9.0 | UploadForm:BeforeProcessing | Called just before the file data (for example description) are processed, so extensions have a chance to manipulate them. | |
1.14.0 | UserrightsChangeableGroups | Called after the list of groups that can be manipulated via Special:UserRights is populated, but before it is returned. | |
1.24.0 | WhatLinksHereProps | Allows extensions to annotate WhatLinksHere entries. | |
User Management | 1.5.0 | AddNewAccount | Called after a user account is created(deprecated) |
1.26.0 | LocalUserCreated | Called immediately after a local user has been created and saved to the database. | |
1.27.0 | SessionMetadata | Add metadata to a session being saved | |
1.27.0 | SessionCheckInfo | Validate session info as it's being loaded from storage | |
1.27.0 | SecuritySensitiveOperationStatus | Affect the return value from AuthManager::securitySensitiveOperationStatus() | |
1.27.0 | UserLoggedIn | Called after a user is logged in | |
1.4.0 | BlockIp | Occurs whenever the software receives a request to block (or change the block settings of) an IP address or user | |
1.4.0 | BlockIpComplete | Occurs after the request to block (or change block settings of) an IP or user has been processed | |
1.29.0 | UnblockUser | Occurs whenever the software receives a request to unblock an IP address or user | |
1.29.0 | UnblockUserComplete | Occurs after the request to unblock an IP or user has been processed | |
1.29.0 | ChangeUserGroups | Called before a user's group memberships are changed | |
1.6.0 | UserRights | Called after a user's group memberships are changed | |
1.6.0 | GetBlockedStatus | Fired after the user's getBlockStatus is set | |
Logging | 1.6.0 | LogPageActionText | |
1.5.0 | LogPageLogHeader | ||
1.5.0 | LogPageLogName | ||
1.5.0 | LogPageValidTypes | ||
1.26.0 | LogException | ||
Skinning / Templates | 1.7.0 | BeforePageDisplay | Allows last minute changes to the output page, e.g. adding of CSS or Javascript by extensions. |
1.6.0 | MonoBookTemplateToolboxEnd | Called by Monobook skin after toolbox links have been rendered (useful for adding more) | |
1.7.0 | PersonalUrls | (SkinTemplate.php) Called after the list of personal URLs (links at the top in Monobook) has been populated. | |
1.24.0 | PostLoginRedirect | (SpecialUserlogin.php) Modify the post login redirect behavior. | |
1.23.0 | BaseTemplateAfterPortlet | (SkinTemplate.php) After rendering of portlets. | |
1.11.0 | SkinAfterBottomScripts | (Skin.php) At the end of Skin::bottomScripts() | |
1.12.0 | SkinSubPageSubtitle | (Skin.php) Called before the list of subpage links on top of a subpage is generated | |
1.5.0 | SkinTemplateContentActions | Called after the default tab list is populated (list is context dependent i.e. "normal" article or "special page"). | |
1.16.0 | SkinTemplateNavigation | Called on content pages only after tabs have been added, but before variants have been added. See the other two SkinTemplateNavigation hooks for other points tabs can be modified at. | |
1.18.0 | SkinTemplateNavigation::Universal | Called on both content and special pages after variants have been added | |
1.18.0 | SkinTemplateNavigation::SpecialPage | Called on special pages after the special tab is added but before variants have been added | |
1.6.0 | SkinTemplatePreventOtherActiveTabs | Called to enable/disable the inclusion of additional tabs to the skin. | |
1.6.0 | SkinTemplateSetupPageCss | ||
1.6.0 | SkinTemplateBuildContentActionUrlsAfterSpecialPage | ||
1.6.0 | SkinTemplateBuildNavUrlsNav_urlsAfterPermalink | Called after the permalink has been entered in navigation URL array. | |
1.23.0 | SkinTemplateGetLanguageLink | Called after building the data for a language link from which the actual html is constructed. | |
1.27.0 | AuthChangeFormFields | Allows modification of AuthManager-based forms | |
1.25.0 | LoginFormValidErrorMessages | Allows to add additional error messages (SpecialUserLogin.php). | |
1.25.0 | MinervaDiscoveryTools | Allow other extensions to add or override discovery tools (SkinMinerva.php). | |
API | 1.23.0 | ApiBeforeMain | Called before ApiMain is executed |
1.13.0 | APIEditBeforeSave | Called right before saving an edit submitted through api.php?action=edit | |
1.13.0 | APIQueryInfoTokens | Use this hook to add custom tokens to prop=info | |
1.13.0 | APIQueryRevisionsTokens | Use this hook to add custom tokens to prop=revisions | |
1.14.0 | APIQueryRecentChangesTokens | Use this hook to add custom tokens to list=recentchanges | |
1.14.0 | APIGetAllowedParams | Use this hook to modify a module's parameters | |
1.14.0 | APIGetParamDescription | Use this hook to modify a module's parameter descriptions | |
1.14.0 | APIAfterExecute | Use this hook to extend core API modules | |
1.14.0 | APIQueryAfterExecute | Use this hook to extend core API query modules | |
1.14.0 | APIQueryGeneratorAfterExecute | Use this hook to extend core API query modules | |
1.23.0 | GetExtendedMetadata | Allows including additional file metadata information in the imageinfo API. | |
1.23.0 | AddNewAccountApiForm | Allows modifying the internal login form when creating an account via the API. | |
1.23.0 | AddNewAccountApiResult | Modifies the API output when an account is created via the API. | |
1.25.0 | ApiOpenSearchSuggest | Called when constructing the OpenSearch results. Hooks can alter or append to the array. | |
Import/Export | 1.17.0 | AfterImportPage | When a page import is completed |
1.17.0 | ImportHandleLogItemXMLTag | When parsing a XML tag in a log item | |
1.17.0 | ImportHandlePageXMLTag | When parsing a XML tag in a page | |
1.17.0 | ImportHandleRevisionXMLTag | When parsing a XML tag in a page revision | |
1.17.0 | ImportHandleToplevelXMLTag | When parsing a top level XML tag | |
1.17.0 | ImportHandleUploadXMLTag | When parsing a XML tag in a file upload | |
1.16.0 | ModifyExportQuery | Modify the query used by the exporter. | |
1.15.0 | WikiExporter::dumpStableQuery | Get the SELECT query for "stable" revisions dumps | |
1.16.0 | XmlDumpWriterOpenPage | Called at the end of XmlDumpWriter::openPage, to allow extra metadata to be added. | |
1.16.0 | XmlDumpWriterWriteRevision | Called at the end of a revision in an XML dump, to add extra metadata. | |
Miscellaneous | 1.19.0 | AlternateUserMailer | Called before mail is sent so that mail could be logged (or something else) instead of using PEAR or PHP's mail(). |
1.6.0 | ArticleEditUpdatesDeleteFromRecentchanges | ||
1.21.0 | CategoryAfterPageAdded | Called after a page is added to a category | |
1.21.0 | CategoryAfterPageRemoved | Called after a page is removed from a category | |
1.19.0 | Collation::factory | Allows extensions to register new collation names, to be used with $wgCategoryCollation | |
1.8.0 | DisplayOldSubtitle | ||
1.18.0 | GetDefaultSortkey | Allows to override what the default sortkey is, which is used to order pages in a category. | |
1.25.0 | GetDifferenceEngine | Allows custom difference engine extensions such as Special:MyLanguage/Extension:WikEdDiff. | |
1.21.0 | GetDoubleUnderscoreIDs | hook for modifying the list of magic words | |
1.6.0 | GetInternalURL | Used to modify fully-qualified URLs (useful for squid cache purging) | |
1.6.0 | GetLocalURL | Used to modify local URLs as output into page links | |
1.6.0 | GetFullURL | Used to modify fully-qualified URLs used in redirects/export/offsite data | |
1.16.0 | ImgAuthBeforeStream | Executed before file is streamed to user, but only when using img_auth | |
1.22.0 | LanguageLinks | Manipulate a page's language links. | |
1.14.0 | LinkBegin | Used when generating internal and interwiki links in Linker::link() | |
1.14.0 | LinkEnd | Used when generating internal and interwiki links in Linker::link(), just before the function returns a value. | |
1.8.0 | LoadAllMessages | ||
1.6.0 | MagicWordMagicWords | ||
1.6.0 | MagicWordwgVariableIDs | ||
1.12.0 | MediaWikiPerformAction | Override MediaWiki::performAction() | |
1.5.7 | MessagesPreLoad | Occurs when loading a message from the database | |
1.6.0 | ParserTestParser | ||
1.8.0 | RecentChange_save | Called after a "Recent Change" is committed to the DB | |
1.5.0 | SpecialContributionsBeforeMainOutput | ||
1.22.0 | TitleSquidURLs | To modify/provide alternate URLs to send HTTP PURGE requests. | |
1.17.0 | UnitTestsList | Add tests that should be run as part of the unit test suite. | |
1.30.0 | UnitTestsAfterDatabaseSetup | Called right after MediaWiki's test infrastructure has finished creating/duplicating core tables for unit tests. | |
1.30.0 | UnitTestsBeforeDatabaseTeardown | Called right before MediaWiki's test infrastructure begins tearing down tables for unit tests. | |
1.4.0 | UnknownAction | (deprecated) Before MediaWiki 1.19, used to add new query-string actions. | |
1.24.0 | UserMailerChangeReturnPath | Called to generate a VERP return address when UserMailer sends an email, with a bounce handling extension. | |
1.8.0 | UserToggles | (Deprecated) Called before returning user preference names. Use the GetPreferences hook instead. | |
1.6.0 | wgQueryPages |
Alphabetical list of hooks[edit]
Version | Hook | Called From | Description |
---|---|---|---|
1.18.0 | AbortAutoAccount | SpecialUserlogin.php | Allow to cancel automated local account creation, where normally authentication against an external auth plugin would be creating a local account. |
1.13.0 | AbortAutoblock | Block.php | Allow extension to cancel an autoblock |
1.14.0 | AbortDiffCache | DifferenceEngine.php | Can be used to cancel the caching of a diff |
1.20.0 | AbortEmailNotification | RecentChange.php | Can be used to cancel email notifications for an edit |
1.12.0 | AbortMove | Title.php, SpecialMovepage.php | Can be used to cancel page movement |
1.18.0 | ActionBeforeFormDisplay | Action.php | Before executing the HTMLForm object |
1.18.0 | ActionModifyFormFields | Action.php | Before creating an HTMLForm object for a page action |
1.5.0 | AddNewAccount | SpecialUserlogin.php | Called after a user account is created |
1.27.0 | AfterBuildFeedLinks | OutputPage.php | Executed after all feed links are created. |
1.20.0 | AfterFinalPageOutput | OutputPage.php | Nearly at the end of OutputPage::output(). |
1.17.0 | AfterImportPage | Import.php | When a page import is completed |
1.17.0 | AfterUserMessage | User.php | After a user message has been left |
1.9.1 | AjaxAddScript | OutputPage.php | Called in output page just before the initialisation |
1.6.0 | AlternateEdit | EditPage.php | Occurs whenever action=edit is called |
1.21.0 | AlternateEditPreview | EditPage.php | Allows replacement of the edit preview |
1.19.0 | AlternateUserMailer | UserMailer.php | Called before mail is sent so that mail could be logged (or something else) instead of using PEAR or PHP's mail(). |
1.14.0 | APIAfterExecute | ApiMain.php | Use this hook to extend core API modules |
1.23.0 | ApiBeforeMain | api.php | Called before ApiMain is executed |
1.20.0 | ApiCheckCanExecute | ApiMain.php | Called during ApiMain::checkCanExecute() .
|
1.13.0 | APIEditBeforeSave | ApiEditPage.php | Called right before saving an edit submitted through api.php?action=edit |
1.14.0 | APIGetAllowedParams | ApiBase.php | Use this hook to modify a module's parameters |
1.19.0 | APIGetDescription | ApiBase.php | Use this hook to modify a module's descriptions |
1.14.0 | APIGetParamDescription | ApiBase.php | Use this hook to modify a module's parameter descriptions |
1.20.0 | APIGetResultProperties | ApiBase.php | Use this hook to modify the properties in a module's result. |
1.20.0 | ApiMain::onException | ApiMain.php | Called by ApiMain::executeActionWithErrorHandling() when an exception is thrown during API action execution.
|
1.25.0 | ApiOpenSearchSuggest | ApiOpenSearch.php | Called when constructing the OpenSearch results. |
1.20.0 | ApiTokensGetTokenTypes | ApiTokens.php | Use this hook to extend action=tokens with new token types |
1.14.0 | APIQueryAfterExecute | ApiQuery.php | Use this hook to extend core API query modules |
1.14.0 | APIQueryGeneratorAfterExecute | ApiQuery.php | Use this hook to extend core API query modules |
1.13.0 | APIQueryInfoTokens | ApiQueryInfo.php | Use this hook to add custom tokens to prop=info. |
1.14.0 | APIQueryRecentChangesTokens | ApiQueryRecentChanges.php | Use this hook to add custom tokens to list=recentchanges. |
1.13.0 | APIQueryRevisionsTokens | ApiQueryRevisions.php | Use this hook to add custom tokens to prop=revisions. |
1.15.0 | APIQueryUsersTokens | ApiQueryUsers.php | Use this hook to add custom tokens to list=users. |
1.17.0 | ApiRsdServiceApis | ApiRsd.php | Add or remove APIs from the RSD services list. |
1.23.0 | Article::MissingArticleConditions | Article.php | Called when an article is shown. |
1.6.0 | ArticleAfterFetchContent | Article.php | Used to process raw wiki code after most of the other parser processing is complete. |
1.16.0 | ArticleConfirmDelete | Article.php | Occurs before writing the confirmation form for article deletion. |
1.17.0 | ArticleContentOnDiff | DifferenceEngine.php | Before showing the article content below a diff. |
1.4.0 | ArticleDelete | Article.php | Occurs whenever the software receives a request to delete an article |
1.4.0 | ArticleDeleteComplete | Article.php | Occurs after the delete article request has been processed |
1.5.7 | ArticleEditUpdateNewTalk | Article.php | Allows an extension to prevent user notification when a new message is added to their talk page. |
1.14.0 | ArticleEditUpdates | Article.php | Called when edit updates (mainly link tracking) are made when an article has been changed. |
1.6.0 | ArticleEditUpdatesDeleteFromRecentchanges | Article.php | Occurs before saving to the database. If returning false old entries are not deleted from the recentchangeslist. |
1.8.0 | ArticleFromTitle | Wiki.php | Called to determine the class to handle the article rendering, based on title. |
1.6.0 | ArticleInsertComplete | Article.php | Called after an article is created |
1.12.0 | ArticleMergeComplete | SpecialMergeHistory.php | after merging to article using Special:Mergehistory |
1.6.0 | ArticlePageDataAfter | Article.php | after loading data of an article from the database |
1.6.0 | ArticlePageDataBefore | Article.php | before loading data of an article from the database |
1.18.0 | ArticlePrepareTextForEdit | Article.php | Called when preparing text to be saved. |
1.4.0 | ArticleProtect | Article.php | Occurs whenever the software receives a request to protect an article |
1.4.0 | ArticleProtectComplete | Article.php | Occurs after the protect article request has been processed |
1.6.0 | ArticlePurge | Article.php | Allows an extension to cancel a purge. |
1.13.0 | ArticleRevisionVisiblitySet | SpecialRevisiondelete.php | called when changing visibility of one or more revisions of an article |
1.12.0 | ArticleRevisionUndeleted | SpecialUndelete.php | Occurs after an article revision is restored |
1.12.0 | ArticleRollbackComplete | Article.php | Occurs after an article rollback is completed |
1.4.0 | ArticleSave | Article.php | Occurs whenever the software receives a request to save an article |
1.4.0 | ArticleSaveComplete | Article.php | Occurs after the save article request has been processed |
1.9.1 | ArticleUndelete | SpecialUndelete.php | When one or more revisions of an article are restored |
1.11.0 | ArticleUpdateBeforeRedirect | Article.php | Occurs after a page is updated (usually on save), before the user is redirected back to the page |
1.19.0 | ArticleViewCustom | Article.php | Allows to output the text of the article in a different format than wikitext. |
1.18.0 | ArticleViewFooter | Article.php | After showing the footer section of an ordinary page view. |
1.6.0 | ArticleViewHeader | Article.php | Occurs when header is shown |
1.5.1 | ArticleViewRedirect | Article.php | Allows an extension to prevent the display of a "Redirected From" link on a redirect page. |
1.27.0 | AuthChangeFormFields | AuthManagerSpecialPage.php | Allows modification of AuthManager-based forms |
1.13.0 | AuthPluginAutoCreate | SpecialUserlogin.php | Called when creating a local account for an user logged in from an external authentication method |
1.9.1 | AuthPluginSetup | Setup.php | Update or replace authentication plugin object ($wgAuth) |
1.5.4 | AutoAuthenticate | StubObject.php | Called to authenticate users on external/environmental means. |
1.12.0 | AutopromoteCondition | Autopromote.php | check autopromote condition for user. |
1.19.0 | BacklinkCacheGetConditions | BacklinkCache.php | Allows to set conditions for query when links to certain title. |
1.19.0 | BacklinkCacheGetPrefix | BacklinkCache.php | Allows to set prefix for a spefific link table. |
1.7.0 | BadImage | ImageFunctions.php | Before bad image list is evaluated |
1.23.0 | BaseTemplateAfterPortlet | SkinTemplate.php | Called after rendering of portlets. |
1.18.0 | BaseTemplateToolbox | SkinTemplate.php | Called by BaseTemplate when building the toolbox array
and returning it for the skin to output. |
1.10.1 | BeforeGalleryFindFile | ImageGallery.php | Allows extensions to specify a specific version of an image to display in a gallery. |
1.19.0 | BeforeDisplayNoArticleText | Article.php | Before displaying noarticletext or noarticletext-nopermission messages. |
1.16.0 | BeforeInitialize | Wiki.php | Occurs before anything is initialized in MediaWiki::performRequestForTitle(). |
1.7.0 | BeforePageDisplay | OutputPage.php SkinTemplate.php (< 1.12.0) |
Allows last minute changes to the output page, e.g. adding of CSS or Javascript by extensions. |
1.19.0 | BeforePageRedirect | OutputPage.php | Called prior to sending an HTTP redirect. |
1.18.0 | BeforeParserFetchFileAndTitle | Parser.php | Before an image is rendered by Parser |
1.10.1 | BeforeParserFetchTemplateAndtitle | Parser.php | Before a template is fetched by Parser |
1.10.1 | BeforeParserrenderImageGallery | Parser.php | Before an image gallery is rendered by Parser |
1.12.0 | BeforeWatchlist | SpecialWatchlist.php | Override watchlist display or add extra SQL clauses. |
1.18.0 | BeforeWelcomeCreation | SpecialUserlogin.php | Allows an extension to change the message displayed upon a successful login. |
1.19.0 | BitmapHandlerCheckImageArea | Bitmap.php | Called by BitmapHandler::normaliseParams() , after all normalizations have been performed, except for the $wgMaxImageArea check.
|
1.18.0 | BitmapHandlerTransform | Bitmap.php | Before a file is transformed, gives extension the possibility to transform it themselves. |
1.4.0 | BlockIp | SpecialBlockip.php | Occurs whenever the software receives a request to block an IP address or user |
1.4.0 | BlockIpComplete | SpecialBlockip.php | Occurs after the request to block an IP or user has been processed |
1.9.1 | BookInformation | SpecialBooksources.php | Before information output on Special:Booksources |
1.13.0 | BrokenLink | Linker.php | Before the HTML is created for a broken (i.e. red) link |
1.17.0 | CanonicalNamespaces | Namespace.php | For extensions adding their own namespaces or altering the defaults. |
1.4.3 | CategoryPageView | CategoryPage.php | Called before viewing a categorypage in CategoryPage::view |
1.20.0 | ChangePasswordForm | SpecialChangePassword.php | For extensions that need to add a field to the ChangePassword form via the Preferences form |
1.12.0 | ChangesListInsertArticleLink | ChangesList.php | Override or augment link to article in RC list. |
1.28.0 | ChangeTagsAfterUpdateTags | ChangeTags.php | Called after adding or updating change tags |
1.19.0 | Collation::factory | Collation.php | Allows extensions to register new collation names, to be used with $wgCategoryCollation |
1.16.0 | ConfirmEmailComplete | User.php | Called after a user's email has been confirmed successfully. |
1.24.0 | ContentGetParserOutput | AbstractContent.php | Customize parser output for a given content object, called by AbstractContent::getParserOutput. May be used to override the normal model-specific rendering of page content. |
1.21.0 | ContentHandlerDefaultModelFor | ContentHandler.php | Called when deciding the default content model for a given title. |
1.21.0 | ContentHandlerForModelID | ContentHandler.php | Allows to provide custom content handlers for content models. |
1.13.0 | ContribsPager::getQueryInfo | SpecialContributions.php | Before the contributions query is about to run |
1.20.0 | ContribsPager::reallyDoQuery | SpecialContributions.php | Called before really executing the query for My Contributions |
1.13.0 | ContributionsLineEnding | SpecialContributions.php | Called before a contributions HTML line is finished |
1.11.0 | ContributionsToolLinks | SpecialContributions.php | Change tool links above Special:Contributions |
1.21.0 | ConvertContent | AbstractContent.php | Called when a conversion to another content model is requested. |
1.9.1 | CustomEditor | Wiki.php | When invoking the page editor. Return true to allow the normal editor to be used, or false if implementing a custom editor, e.g. for a special namespace, etc. |
1.16.0 | DatabaseOraclePostInit | DatabaseOracle.php | Called after initialising an Oracle database connection |
1.7.0 | DiffViewHeader | DifferenceEngine.php | Called before diff display |
1.8.0 | DisplayOldSubtitle | Article.php | Allows extensions to modify the displaying of links to other revisions when browsing through revisions. |
1.14.0 | DoEditSectionLink | Linker.php | Override the HTML generated for section edit links. |
1.6.0 | EditFilter | EditPage.php | Perform checks on an edit |
1.12.0 | EditFilterMerged | EditPage.php | Perform checks on an edit |
1.7.0 | EditFormPreloadText | EditPage.php | Called when edit page for a new article is shown. This lets you fill the text-box of a new page with initial wikitext. |
1.16.0 | EditFormInitialText | EditPage.php | Called when edit page for a existing article is shown. This lets you modify the content. |
1.8.3 | EditPage::attemptSave | EditPage.php | Called before an article is saved, that is before insertNewArticle() is called |
1.16.0 | EditPage::importFormData | EditPage.php | Allow extensions to read additional data posted in the form |
1.6.0 | EditPage::showEditForm:fields | EditPage.php | Allows injection of form field into edit form. |
1.6.0 | EditPage::showEditForm:initial | EditPage.php | before showing the edit form |
1.21.0 | EditPage::showStandardInputs:options | EditPage.php | Allows injection of form fields into the editOptions area |
1.13.0 | EditPageBeforeConflictDiff | EditPage.php | Allows modifying the EditPage object and output when there's an edit conflict. |
1.12.0 | EditPageBeforeEditButtons | EditPage.php | Used to modify the edit buttons on the edit form |
1.14.0 | EditPageBeforeEditChecks | EditPage.php | Allows modifying the edit checks below the textarea in the edit form |
1.16.0 | EditPageBeforeEditToolbar | EditPage.php | Allows modifying the edit toolbar above the textarea |
1.16.0 | EditPageCopyrightWarning | EditPage.php | Allow for site and per-namespace customization of contribution/copyright notice. |
1.16.0 | EditPageGetDiffText | EditPage.php | Allow modifying the wikitext that will be used in "Show changes". |
1.16.0 | EditPageGetPreviewText | EditPage.php | Allow modifying the wikitext that will be previewed. |
1.16.0 | EditPageNoSuchSection | EditPage.php | When a section edit request is given for an non-existent section. |
1.16.0 | EditPageTosSummary | EditPage.php | Give a chance for site and per-namespace customizations of terms of service summary link. |
1.11.0 | EditSectionLink | EditPage.php | Override the return value of Linker::editSectionLink() |
1.11.0 | EditSectionLinkForOther | EditPage.php | Override the return value of Linker::editSectionLink() |
1.7.0 | EmailConfirmed | User.php | When checking that the user's email address is "confirmed" |
1.4.0 | EmailUser | SpecialEmailuser.php | Occurs whenever the software receives a request to send an email from one user to another |
1.17.0 | EmailUserCC | SpecialEmailuser.php | Occurs before sending the copy of the email to the author |
1.4.0 | EmailUserComplete | SpecialEmailuser.php | Occurs after an email has been sent from one user to another |
1.17.0 | EmailUserForm | SpecialEmailuser.php | Occurs after building the email user form object |
1.16.0 | EmailUserPermissionsErrors | SpecialEmailuser.php | Retrieves permissions errors for emailing a user |
1.19.0 | ExemptFromAccountCreationThrottle | SpecialUserlogin.php | To add an exemption from the account creation throttle |
1.18.0 | ExtensionTypes | SpecialVersion.php | Called when generating the extensions credits, use this to change the tables headers |
1.19.0 | ExtractThumbParameters | thumb.php | Called when extracting thumbnail parameters from a thumbnail file name. |
1.7.0 | FetchChangesList | ChangesList.php | Allows extension to modify a recent changes list for a user. |
1.13.0 | FileDeleteComplete | FileDeleteForm.php | When a file is deleted |
1.20.0 | FileTransformed | File.php | When a file is transformed and moved into storage |
1.11.0 | FileUpload | filerepo/LocalFile.php | When a file upload occurs |
1.13.0 | FileUndeleteComplete | SpecialUndelete.php | When a file is undeleted |
1.20.0 | FormatAutocomments | Linker.php | When an autocomment is formatted by the Linker |
1.17.0 | FormatUserMessage | User.php | Hook to format a message if you want to override the internal formatter. |
1.22.0 | GalleryGetModes | ImageGalleryBase.php | Allows extensions to add classes that can render different modes of a gallery. |
1.13.0 | GetAutoPromoteGroups | Autopromote.php | When determining which autopromote groups a user is entitled to be in. |
1.6.0 | GetBlockedStatus | User.php | Fired after the user's getBlockStatus is set. |
1.13.0 | GetCacheVaryCookies | OutputPage.php | get cookies that should vary cache options |
1.18.0 | GetCanonicalURL | Title.php | Allows to modify fully-qualified URLs used for IRC and e-mail notifications. |
1.18.0 | GetDefaultSortkey | Title.php | Allows to override what the default sortkey is. |
1.25.0 | GetDifferenceEngine | ContentHandler.php | Allows custom difference engine extensions such as ESpecial:MyLanguage/xtension:WikEdDiff. |
1.23.0 | GetExtendedMetadata | FormatMetadata.php | Allows including additional file metadata information in the imageinfo API. |
1.6.0 | GetFullURL | Title.php | Used to modify fully-qualified URLs used in redirects/export/offsite data |
1.6.0 | GetInternalURL | Title.php | Used to modify fully-qualified URLs (useful for squid cache purging) |
1.17.0 | GetIP | ProxyTools.php | Modify the ip of the current user (called only once). |
1.12.0 | GetLinkColours | LinkHolderArray.php | modify the CSS class of an array of page links |
1.6.0 | GetLocalURL | Title.php | Used to modify local URLs as output into page links |
1.19.0 | GetLocalURL::Article | Title.php | Allows to modify local URLs specifically pointing to article paths without any fancy queries or variants. |
1.19.0 | GetLocalURL::Internal | Title.php | Allows to modify local URLs to internal pages. |
1.18.0 | GetMetadataVersion | Generic.php | Allows to modify the image metadata version currently in use. |
1.15.0 | GetPreferences | Preferences.php | Modify user preferences |
1.12.0 | getUserPermissionsErrors | Title.php | Add a permissions error when permissions errors are checked for. |
1.12.0 | getUserPermissionsErrorsExpensive | Title.php | Absolutely the same, but is called only if expensive checks are enabled. |
1.20.0 | GitViewers | GitInfo.php | Called when generating the list of git viewers for Special:Version, use this to change the list. |
1.14.0 | HTMLCacheUpdate::doUpdate | HTMLCacheUpdate.php | After cache invalidation updates are inserted into the job queue |
1.13.0 | ImageBeforeProduceHTML | Linker.php | Called before producing the HTML created by a wiki image insertion. |
1.11.0 | ImageOpenShowImageInlineBefore | ImagePage.php | Call potential extension just before showing the image on an image page. |
1.16.0 | ImagePageAfterImageLinks | ImagePage.php | Called after the image links section on an image page is built. |
1.13.0 | ImagePageFileHistoryLine | ImagePage.php | Called when a file history line is contructed. |
1.13.0 | ImagePageFindFile | ImagePage.php | Called when fetching the file associed with an image page. |
1.16.0 | ImagePageShowTOC | ImagePage.php | Called when the file toc on an image page is generated. |
1.17.0 | ImportHandleLogItemXMLTag | Import.php | When parsing a XML tag in a log item |
1.17.0 | ImportHandlePageXMLTag | Import.php | When parsing a XML tag in a page |
1.17.0 | ImportHandleRevisionXMLTag | Import.php | When parsing a XML tag in a page revision |
1.17.0 | ImportHandleToplevelXMLTag | Import.php | When parsing a top level XML tag |
1.17.0 | ImportHandleUploadXMLTag | Import.php | When parsing a XML tag in a file upload |
1.20.0 | InfoAction | InfoAction.php | When building information to display on the action=info page |
1.11.0 | InitPreferencesForm | SpecialPreferences.php | Called at the end of PreferencesForm's constructor |
1.16.0 | ImgAuthBeforeStream | img_auth.php | Executed before file is streamed to user, but only when using img_auth |
1.13.0 | InitializeArticleMaybeRedirect | Wiki.php | Called when checking if title is a redirect |
1.10.0 | InternalParseBeforeLinks | Parser.php | Used to process the expanded wiki code after <nowiki>, HTML-comments, and templates have been treated. Suitable for syntax extensions that want to support templates and comments. |
1.16.0 | InvalidateEmailComplete | User.php | Called after a user's email has been invalidated successfully. |
1.18.0 | IRCLineURL | RecentChange.php | When constructing the URL to use in an IRC notification. |
1.10.0 | IsFileCacheable | Article.php | Allow an extension to disable file caching on pages. |
1.9.0 | IsTrustedProxy | ProxyTools.php | Allows an extension to set an IP as trusted or not. |
1.12.0 | isValidEmailAddr | User.php | Override the result of User::isValidEmailAddr() |
1.11.0 | isValidPassword | User.php | Override the result of User::isValidPassword() |
1.19.0 | Language::getMessagesFileName | languages/Language.php | Use to change the path of a localisation file. |
1.19.0 | LanguageGetNamespaces | languages/Language.php | Provide custom ordering for namespaces or
remove namespaces. |
1.9.0 | LanguageGetSpecialPageAliases | languages/Language.php | Use to define aliases of special pages names depending of the language |
1.18.0 | LanguageGetTranslatedLanguageNames | languages/Language.php | Provide translated language names. |
1.22.0 | LanguageLinks | api/ApiParse.php, skin/OutputPage.php | Manipulate a page's language links. |
1.14.0 | LinkBegin | Linker.php | Used when generating internal and interwiki links in Linker::link() |
1.14.0 | LinkEnd | Linker.php | Used when generating internal and interwiki links in Linker::link(), just before the function returns a value. |
1.13.0 | LinkerMakeExternalLink | Linker.php | At the end of Linker::makeExternalLink() just before the return |
1.13.0 | LinkerMakeExternalImage | Linker.php | At the end of Linker::makeExternalImage() just before the return |
1.12.0 | LinksUpdate | LinksUpdate.php | At the beginning of LinksUpdate::doUpdate() just before the actual update. |
1.12.0 | LinksUpdateComplete | LinksUpdate.php | At the end of LinksUpdate::doUpdate() when updating has completed. |
1.11.0 | LinksUpdateConstructed | LinksUpdate.php | Called at the end of LinksUpdate object constructor. |
1.15.0 | ListDefinedTags | ChangeTags.php | When trying to find all defined tags. |
1.8.0 | LoadAllMessages | MessageCache.php | called by MessageCache::loadAllMessages() to load extensions messages |
1.10.1 | LoadExtensionSchemaUpdates | includes/installer/DatabaseUpdater.php | Fired when MediaWiki is updated to allow extensions to update the database. |
1.13.0 | LocalFile::getHistory | LocalFile.php | Called before file history query performed |
1.19.0 | LocalFilePurgeThumbnails | LocalFile.php | Called before thumbnails for a local file a purged |
1.26.0 | LogException | MWExceptionHandler.php | Called before an exception (or PHP error) is logged |
1.19.0 | LogEventsListShowLogExtract | LogEventsList.php | Called before the result of LogEventsList::showLogExtract() is added to OutputPage.
|
1.10.0 | LoginAuthenticateAudit | SpecialUserlogin.php | A login attempt for a valid user account either succeeded or failed. No return data is accepted; this hook is for auditing only. |
1.12.0 | LogLine | SpecialLog.php | Processes a single log entry on Special:Log |
1.6.0 | LogPageActionText | Setup.php | Strings used by wfMsg as a header. (deprecated) - Use $wgLogActions |
1.5.0 | LogPageLogHeader | Setup.php | Strings used by wfMsg as a header. (deprecated) - Use $wgLogHeaders |
1.5.0 | LogPageLogName | Setup.php | Name of the logging page(s). (deprecated) - Use $wgLogNames |
1.5.0 | LogPageValidTypes | Setup.php | Action being logged. (deprecated) - Use $wgLogTypes |
1.6.0 | MagicWordwgVariableIDs | MagicWord.php | Allows extensions to add Magic Word IDs. |
1.18.0 | MaintenanceRefreshLinksInit | maintenance/refreshLinks.php | Before executing the refreshLinks.php maintenance script. |
1.14.0 | MakeGlobalVariablesScript | Skin.php | called right before Skin::makeVariablesScript() is executed |
1.6.0 | MarkPatrolled | Article.php | Called before an edit is marked patrolled |
1.6.0 | MarkPatrolledComplete | Article.php | Called after an edit is marked patrolled |
1.7.0 | MathAfterTexvc | Math.php | After texvc is executed when rendering mathematics (deprecated) - Use MathFormulaPostRender |
1.7.0 | MathFormulaPostRender | Math.php | After math is rendered, before it's printed to the screen |
1.12.0 | MediaWikiPerformAction | Wiki.php | Override MediaWiki::performAction(). |
1.15.0 | MessageCacheReplace | MessageCache.php | When a message page is changed. Useful for updating caches. |
1.16.0 | MessageNotInMwNs | MessageCache.php | When trying to get a message that isn't found in the MediaWiki namespace |
1.5.7 | MessagesPreLoad | MessageCache.php | Occurs when loading a message from the database |
1.16.0 | ModifyExportQuery | Export.php | Modify the query used by the exporter. |
1.6.0 | MonoBookTemplateToolboxEnd | skins/Monobook.php | Called by Monobook skin after toolbox links have been rendered (useful for adding more) |
1.20.0 | NamespaceIsMovable | Namespace.php | Called when determining if it is possible to pages in a namespace. |
1.15.0 | NewDifferenceEngine | diff/DifferenceEngine.php | Called when a new DifferenceEngine object is made. |
1.13.0 | NewRevisionFromEditComplete | (Various files) | Called when a revision was inserted due to an edit |
1.13.0 | NormalizeMessageKey | MessageFunctions.php | Called before the software gets the text of a message |
1.14.0 | OldChangesListRecentChangesLine | ChangesList.php | Customize entire Recent Changes line |
1.13.0 | OpenSearchUrls | opensearch_desc.php | Called when constructing the OpenSearch description XML. |
1.16.0 | OtherBlockLogLink | SpecialBlockip.php | Get links to the block log from extensions which blocks users and/or IP addresses too |
1.6.0 | OutputPageBeforeHTML | OutputPage.php | Called after the page has been rendered, but before the HTML is displayed. |
1.17.0 | OutputPageBodyAttributes | OutputPage.php | Called when OutputPage::headElement() is creating the body tag. |
1.14.0 | OutputPageCheckLastModified | OutputPage.php | When checking if the page has been modified since the last visit |
1.13.0 | OutputPageMakeCategoryLinks | OutputPage.php | Called when links are about to be generated for the page's categories. |
1.8.0 | OutputPageParserOutput | OutputPage.php | after adding a parserOutput to $wgOut |
1.19.0 | PageContentLanguage | Title.php | Allows changing the page content language and the direction depending on that language. |
1.10.0 | PageHistoryBeforeList | PageHistory.php | When a history page list is about to be constructed. |
1.10.0 | PageHistoryLineEnding | PageHistory.php | Right before the end >li> is added to a history line |
1.13.0 | PageHistoryPager::getQueryInfo | PageHistory.php | When a history pager query parameter set is constructed |
1.6.0 | PageRenderingHash | User.php | Alter the parser cache option hash key |
1.20.0 | ParserAfterParse | Parser.php | Called from Parser::parse() just after the call to Parser::internalParse() returns |
1.5.0 | ParserAfterStrip | Parser.php | Same as ParserBeforeStrip |
1.5.0 | ParserAfterTidy | Parser.php | Used to add some final processing to the fully-rendered page output |
1.6.0 | ParserBeforeInternalParse | Parser.php | called at the beginning of Parser::internalParse() |
1.5.0 | ParserBeforeStrip | Parser.php | Used to process the raw wiki code before any internal processing is applied |
1.5.0 | ParserBeforeTidy | Parser.php | Used to process the nearly-rendered html code for the page (but before any html tidying occurs) |
1.6.0 | ParserClearState | Parser.php | called at the end of Parser::clearState() |
1.21.0 | ParserCloned | Parser.php | called when the Parser object is cloned |
1.12.0 | ParserFirstCallInit | Parser.php | called when the parser initialises for the first time |
1.6.0 | ParserGetVariableValueSwitch | Parser.php | called when the parser needs the value of a custom magic word |
1.6.0 | ParserGetVariableValueTs | Parser.php | use this to change the value of the time for the {{LOCAL...}} magic word |
1.6.0 | ParserGetVariableValueVarCache | Parser.php | use this to change the value of the variable cache or return false to not use it |
1.12.0 | ParserLimitReport | Parser.php | called at the end of Parser::parse() when the parser will include comments about size of the text parsed |
1.12.0 | ParserMakeImageParams | Parser.php | called at the end of Parser::makeImage(). Alter the parameters used to generate an image. |
1.19.0 | ParserSectionCreate | Parser.php | Called each time the parser creates a document section from wikitext. |
1.20.0 | ParserTestGlobals | parserTest.inc, NewParserTest.php | Allows to define globals for parser tests. |
1.6.0 | ParserTestParser | parserTest.inc, NewParserTest.php | called when creating a new instance of Parser in maintenance/parserTests.inc |
1.10.0 | ParserTestTables | maintenance/parserTests.inc | Alter the list of tables to duplicate when parser tests are run. Use when page save hooks require the presence of custom tables to ensure that tests continue to run properly. |
1.18.0 | PerformRetroactiveAutoblock | Block.php | Called before a retroactive autoblock is applied to a user. |
1.6.0 | PersonalUrls | SkinTemplate.php | Alter the user-specific navigation links (e.g. "my page, my talk page, my contributions" etc). |
1.9.0 | PingLimiter | User.php | Allows extensions to override the results of User::pingLimiter() |
1.19.0 | PlaceNewSection | WikiPage.php | Allows extensions to control where new sections are added. |
1.24.0 | PostLoginRedirect | SpecialUserlogin.php | Modify the post login redirect behavior. |
1.20.0 | PreferencesGetLegend | Preferences.php | Override the text used for the <legend> of a preferences section. |
1.9.0 | PreferencesUserInformationPanel | SpecialPreferences.php | Add HTML bits to user information list in preferences form |
1.12.0 | PrefixSearchBackend | PrefixSearch.php | Override the title prefix search used for OpenSearch and AJAX search suggestions. |
1.11.0 | PrefsEmailAudit | SpecialPreferences.php | called when user changes his email address |
1.11.0 | PrefsPasswordAudit | SpecialPreferences.php | called when user changes his password |
1.16.0 | ProtectionForm::buildForm | ProtectionForm.php | Called after all protection type fieldsets are made in the form |
1.16.0 | ProtectionForm::save | ProtectionForm.php | Called when a protection form is submitted |
1.16.0 | ProtectionForm::showLogExtract | ProtectionForm.php | Called after the protection log extract is shown |
1.10.0 | RawPageViewBeforeOutput | RawPage.php | Right before the text is blown out in action=raw |
1.8.0 | RecentChange_save | RecentChange.php | Called after a "Recent Change" is commited to the DB |
1.20.0 | RedirectSpecialArticleRedirectParams | SpecialPage.php | Lets you alter the set of parameter names such as "oldid" that are preserved when using. |
1.11.0 | RenderPreferencesForm | SpecialPreferences.php | Called at the end of PreferencesForm::mainPrefsForm |
1.19.0 | RequestContextCreateSkin | RequestContext.php | Called when creating a skin instance. |
1.11.0 | ResetPreferences | SpecialPreferences.php | Called at the end of PreferencesForm::resetPrefs |
1.17.0 | ResourceLoaderGetConfigVars | ResourceLoaderStartUpModule.php | Called right before ResourceLoaderStartUpModule::getConfig() returns.
|
1.18.0 | ResourceLoaderGetStartupModules | ResourceLoaderStartUpModule.php | Run once the startup module is being generated. |
1.17.0 | ResourceLoaderRegisterModules | ResourceLoader.php | Allows registering of modules with ResourceLoader. |
1.19.0 | ResourceLoaderTestModules | ResourceLoader.php | Add new javascript testing modules. This is called after the addition of MediaWiki core test suites. |
1.11.0 | RevisionInsertComplete | Revision.php | Called after a revision is inserted into the DB |
1.11.0 | SavePreferences | SpecialPreferences.php | Called at the end of PreferencesForm::savePreferences; returning false prevents the preferences from being saved. |
1.16.0 | SearchableNamespaces | SearchEngine.php | An option to modify which namespaces are searchable. |
1.28.0 | SearchDataForIndex | SearchEngine.php | Allows to provide custom content fields when indexing a document. |
1.16.0 | SearchEngineReplacePrefixesComplete | SearchEngine.php | Run after SearchEngine::replacePrefixes(). |
1.12.0 | SearchGetNearMatch | SearchEngine.php | An extra chance for exact-title-matches in "go" searches. |
1.16.0 | SearchGetNearMatchBefore | SearchEngine.php | Perform exact-title-matches in "go" searches before the normal operations. |
1.16.0 | SearchGetNearMatchComplete | SearchEngine.php | A chance to modify exact-title-matches in "go" searches. |
1.28.0 | SearchIndexFields | SearchEngine.php | Add fields to search index mapping. |
1.28.0 | SearchResultsAugment | SearchEngine.php | Allows extension to add its code to the list of search result augmentors, which can modify search results. |
1.20.0 | SearchResultInitFromTitle | SearchEngine.php | Set the revision used when displaying a page in search results. |
1.10.0 | SearchUpdate | SearchUpdate.php | Prior to search update completion |
1.27.0 | SecuritySensitiveOperationStatus | AuthManager.php | Affect the return value from AuthManager::securitySensitiveOperationStatus() |
1.27.0 | SessionCheckInfo | SessionManager.php | Validate session info as it's being loaded from storage |
1.27.0 | SessionMetadata | SessionBackend.php | Add metadata to a session being saved |
1.14.0 | SetupAfterCache | Setup.php | Called in Setup.php, after cache objects are set |
1.17.0 | SetupUserMessageArticle | User.php | Called in User::leaveUserMessage() before anything has been posted to the article. |
1.16.0 | ShowMissingArticle | Article.php | Called when generating the output for a non-existent page |
1.11.0 | ShowRawCssJs | Article.php | Customise the output of raw CSS and JavaScript in page views |
1.16.0 | ShowSearchHitTitle | SpecialSearch.php | Customise display of search hit title/link. |
1.7.0 | SiteNoticeAfter | GlobalFunctions.php | After site notice is determined |
1.7.0 | SiteNoticeBefore | GlobalFunctions.php | Before site notice is determined |
1.11.0 | SkinAfterBottomScripts | Skin.php | At the end of Skin::bottomScripts() |
1.14.0 | SkinAfterContent | Skin.php | Allows extensions to add text after the page content and article metadata. |
1.14.0 | SkinBuildSidebar | Skin.php | At the end of Skin::buildSidebar() |
1.24.0 | SidebarBeforeOutput | Skin.php | Directly before the Sidebar is output |
1.16.0 | SkinCopyrightFooter | Skin.php | Allow for site and per-namespace customization of copyright notice. |
??? | SkinEditSectionLinks | Skin.php | Modify the section edit links. Called when section headers are created. |
1.17.0 | SkinGetPoweredBy | Skin.php | Called when generating the code used to display the "Powered by MediaWiki" icon. |
1.12.0 | SkinSubPageSubtitle | Skin.php | Called before the list of subpage links on top of a subpage is generated |
1.6.0 | SkinTemplateBuildContentActionUrlsAfterSpecialPage | SkinTemplate.php | after the single tab when showing a special page |
1.6.0 | SkinTemplateBuildNavUrlsNav_urlsAfterPermalink | SkinTemplate.php | after creating the "permanent link" tab |
1.5.0 | SkinTemplateContentActions | SkinTemplate.php | Alter the "content action" links in SkinTemplates |
1.23.0 | SkinTemplateGetLanguageLink | SkinTemplate.php | Called after building the data for a language link from which the actual html is constructed. |
1.16.0 | SkinTemplateNavigation | SkinTemplate.php | Alter the structured navigation links in SkinTemplate |
1.10.0 | SkinTemplateOutputPageBeforeExec | SkinTemplate.php | Before SkinTemplate::outputPage() starts page output |
1.6.0 | SkinTemplatePreventOtherActiveTabs | SkinTemplate.php | use this to prevent showing active tabs |
1.6.0 | SkinTemplateSetupPageCss | SkinTemplate.php | use this to provide per-page CSS |
1.18.0 | SkinTemplateNavigation::SpecialPage | SkinTemplate.php | Called on special pages after the special tab is added but before variants have been added |
1.12.0 | SkinTemplateTabAction | SkinTemplate.php | Override SkinTemplate::tabAction(). |
1.6.0 | SkinTemplateTabs | SkinTemplate.php | called when finished to build the actions tabs |
1.13.0 | SkinTemplateToolboxEnd | skins/Monobook.php, skins/Modern.php | Called by SkinTemplate skins after toolbox links have been rendered (useful for adding more) |
1.18.0 | SkinTemplateNavigation::Universal | SkinTemplate.php | Called on both content and special pages after variants have been added |
1.15.0 | SoftwareInfo | SpecialVersion.php | Called by Special:Version for returning information about the software |
1.24.0 | SpecialBlockModifyFormFields | SpecialContributions.php | Add or modify block fields of Special:Block |
1.5.0 | SpecialContributionsBeforeMainOutput | SpecialBlock.php | Before the form on Special:Contributions |
1.28.0 | SpecialContributions::formatRow::flags | ContribsPager.php | Called before rendering a Special:Contributions row. |
1.13.0 | SpecialListusersDefaultQuery | SpecialListusers.php | Called right before the end of UsersPager::getDefaultQuery() |
1.13.0 | SpecialListusersFormatRow | SpecialListusers.php | Called right before the end of UsersPager::formatRow() |
1.13.0 | SpecialListusersHeader | SpecialListusers.php | Called before closing the <fieldset> in UsersPager::getPageHeader()
|
1.13.0 | SpecialListusersHeaderForm | SpecialListusers.php | Called before adding the submit button in UsersPager::getPageHeader() |
1.13.0 | SpecialListusersQueryInfo | SpecialListusers.php | Called right before the end of UsersPager::getQueryInfo() |
1.6.0 | SpecialMovepageAfterMove | SpecialMovepage.php | Called after a page is moved. |
1.18.0 | SpecialNewPagesFilters | SpecialNewpages.php | Called after building form options at NewPages. |
1.7.0 | SpecialPage_initList | SpecialPage.php | Called when the list of Special Pages is populated. Hook gets a chance to change the list to hide/show pages |
1.20.0 | SpecialPageAfterExecute | SpecialPage.php | Called after SpecialPage::execute(). |
1.20.0 | SpecialPageBeforeExecute | SpecialPage.php | Called before SpecialPage::execute(). |
1.6.0 | SpecialPageExecuteAfterPage | SpecialPage.php | called after executing a special page |
1.6.0 | SpecialPageExecuteBeforeHeader | SpecialPage.php | called before setting the header text of the special page |
1.6.0 | SpecialPageExecuteBeforePage | SpecialPage.php | called after setting the special page header text but before the main execution |
1.18.0 | SpecialPasswordResetOnSubmit | SpecialPasswordReset.php | Called when executing a form submission on Special:PasswordReset. |
1.16.0 | SpecialRandomGetRandomTitle | SpecialRandompage.php | Modify the selection criteria for Special:Random |
1.18.0 | SpecialRecentChangesFilters | SpecialRecentchanges.php | Called after building form options at RecentChanges |
1.13.0 | SpecialRecentChangesPanel | SpecialRecentchanges.php | called when building form options in SpecialRecentChanges |
1.13.0 | SpecialRecentChangesQuery | SpecialRecentchanges.php | called when building sql query for SpecialRecentChanges |
1.19.0 | SpecialSearchCreateLink | SpecialSearch.php | Called when making the message to create a page or go to the existing page. |
1.6.0 | SpecialSearchNogomatch | SpecialSearch.php | called when user clicked the "Go" button but the target doesn't exist |
1.13.0 | SpecialSearchNoResults | SpecialSearch.php | called before search result display when there are no matches |
1.19.0 | SpecialSearchPowerBox | SpecialSearch.php | The equivalent of SpecialSearchProfileForm for the advanced form, a.k.a. power search box |
1.18.0 | SpecialSearchProfileForm | SpecialSearch.php | allows modification of search profile forms |
1.16.0 | SpecialSearchProfiles | SpecialSearch.php | allows modification of search profiles |
1.13.0 | SpecialSearchResults | SpecialSearch.php | called before search result display when there are matches |
1.26.0 | SpecialSearchResultsAppend | SpecialSearch.php | Called after the list of search results HTML has been output. |
1.21.0 | SpecialSearchResultsPrepend | SpecialSearch.php | Called immediately before returning HTML on the search results page. Useful for including an external search provider. To disable the output of MediaWiki search output, return false. |
1.18.0 | SpecialSearchSetupEngine | SpecialSearch.php | allows passing custom data to search engine |
1.16.0 | SpecialStatsAddExtra | SpecialStatistics.php | Can be used to add extra statistic at the end of Special:Statistics |
1.16.0 | SpecialUploadComplete | SpecialUpload.php | Called after successfully uploading a file from Special:Upload |
1.6.0 | SpecialVersionExtensionTypes | SpecialVersion.php | called when generating the extensions credits, use this to change the tables headers |
1.18.0 | SpecialWatchlistFilters | SpecialWatchlist.php | Called after building form options at Watchlist. |
1.14.0 | SpecialWatchlistQuery | SpecialWatchlist.php | Called when building sql query for SpecialWatchlist |
1.18.0 | TestCanonicalRedirect | Wiki.php | Called when about to force a redirect to a canonical URL for a title when we have no other parameters on the URL. |
1.14.0 | TitleArrayFromResult | TitleArray.php | called when creating an TitleArray object from a database result |
1.16.0 | TitleGetRestrictionTypes | Title.php | Allows to modify the types of protection that can be applied. |
1.20.0 | TitleIsAlwaysKnown | Title.php | Allows overriding default behaviour for determining if a page exists. |
1.19.0 | TitleIsCssOrJsPage | Title.php | Called when determining if a page is a CSS or JS page. |
1.19.0 | TitleIsMovable | Title.php | Called when determining if it is possible to move a page. |
1.19.0 | TitleIsWikitextPage | Title.php | Called when determining if a page is a wikitext or should be handled by seperate handler (via ArticleViewCustom). |
1.4.0 | TitleMoveComplete | Title.php | Occurs whenever a request to move an article is completed |
1.19.0 | TitleReadWhitelist | Title.php | Called at the end of read permissions checks, just before adding the default error message if nothing allows the user to read the page. |
1.19.0 | TitleReadWhitelist | Title.php | Called at the end of read permissions checks, just before adding the default error message if nothing allows the user to read the page. |
1.22.0 | TitleSquidURLs | Title.php | To modify/provide alternate URLs to send HTTP PURGE requests. |
1.18.0 | UndeleteForm::showRevision | SpecialUndelete.php | Called in UndeleteForm::showRevision, after a PageArchive object has been created but before any further processing is done. |
1.18.0 | UndeleteForm::undelete | SpecialUndelete.php | Called in UndeleteForm::undelete, after checking that the site is not in read-only mode, that the Title object is not null and after a PageArchive object has been constructed but before performing any further processing. |
1.9.0 | UndeleteShowRevision | SpecialUndelete.php | called when showing a revision in Special:Undelete |
1.17.0 | UnitTestsList | ExtensionsTestSuite.php | Add tests that should be run as part of the unit test suite. |
1.4.0 | UnknownAction | Wiki.php | (Deprecated) Before MediaWiki 1.19, used to add new query-string actions |
1.4.0 | UnwatchArticle | Article.php | Occurs whenever the software receives a request to unwatch an article |
1.4.0 | UnwatchArticleComplete | Article.php | Occurs after the unwatch article request has been processed |
1.16.0 | UploadCreateFromRequest | UploadBase.php | When UploadBase::createFromRequest has been called. |
1.6.4 | UploadComplete | SpecialUpload.php | Called when a file upload has completed. |
1.16.0 | UploadFormInitDescriptor | SpecialUpload.php | Occurs after the descriptor for the upload form as been assembled. |
1.16.0 | UploadFormSourceDescriptors | SpecialUpload.php | Occurs after the standard source inputs have been added to the descriptor. |
1.9.0 | UploadForm:BeforeProcessing | SpecialUpload.php | Called just before the file data (for example description) are processed, so extensions have a chance to manipulate them. |
1.9.0 | UploadForm:initial | SpecialUpload.php | Called just before the upload form is generated |
1.6.0 | UploadVerification | SpecialUpload.php | Called when a file is uploaded, to allow extra file verification to take place (deprecated) |
1.17.0 | UploadVerifyFile | SpecialUpload.php | Called when a file is uploaded, to allow extra file verification to take place (preferred) |
1.28.0 | UploadVerifyUpload | UploadBase.php | Called when a file is uploaded, to allow extra file verification to take place (preferred) |
1.18.0 | UserAddGroup | User.php | Called when adding a group to an user. |
1.13.0 | UserArrayFromResult | UserArray.php | called when creating an UserArray object from a database result |
1.6.0 | userCan | Title.php | To interrupt/advise the "user can do X to Y article" check |
1.12.0 | UserCanSendEmail | User.php | To override User::canSendEmail() permission check |
1.5.7 | UserClearNewTalkNotification | User.php | called when clearing the "You have new messages!" message |
1.11.0 | UserEffectiveGroups | User.php | Called in User::getEffectiveGroups() |
1.13.0 | UserGetAllRights | User.php | After calculating a list of all available rights |
1.18.0 | UserGetDefaultOptions | User.php | Called after fetching the core default user options. |
1.13.0 | UserGetEmail | User.php | Called when getting an user email address |
1.13.0 | UserGetEmailAuthenticationTimestamp | User.php | Called when getting the timestamp of email authentification |
1.11.0 | UserGetImplicitGroups | User.php | Called in User::getImplicitGroups() |
1.18.0 | UserGetLanguageObject | User.php | Called when getting user's interface language object. |
1.14.0 | UserGetReservedNames | User.php | Allows to modify $wgReservedUsernames at run time. |
1.11.0 | UserGetRights | User.php | Called in User::getRights() |
1.16.0 | UserIsBlockedFrom | User.php | Check if a user is blocked from a specific page (for specific block exemptions). |
1.14.0 | UserIsBlockedGlobally | User.php | Check if user is blocked on all wikis. |
1.14.0 | UserLoadAfterLoadFromSession | User.php | Called to authenticate users on external/environmental means; occurs after session is loaded |
1.13.0 | UserLoadDefaults | User.php | Called when loading a default user |
1.15.0 | UserLoadFromDatabase | User.php | Called when loading a user from the database |
1.13.0 | UserLoadFromSession | User.php | Called to authenticate users on external/environmental means |
1.15.0 | UserLoadOptions | User.php | Called when user options/preferences are being loaded from the database |
1.27.0 | UserLoggedIn | AuthManager.php | Called after a user is logged in |
1.4.0 | UserLoginComplete | SpecialUserlogin.php | Occurs after a user has successfully logged in |
1.4.0 | UserLogout | SpecialUserlogin.php | Occurs when the software receives a request to log out |
1.4.0 | UserLogoutComplete | SpecialUserlogin.php | Occurs after a user has successfully logged out |
1.14.0 | User::mailPasswordInternal | SpecialUserlogin.php | Before creation and mailing of a user's new temporary password |
1.24.0 | UserMailerChangeReturnPath | UserMailer.php | Called to generate a VERP return address when UserMailer sends an email, with a bounce handling extension. |
1.18.0 | UserRemoveGroup | User.php | Called when removing a group from an user. |
1.5.7 | UserRetrieveNewTalks | User.php | called when retrieving "You have new messages!" message(s) |
1.6.0 | UserRights | SpecialUserrights.php | Called after a user's group memberships are changed |
1.14.0 | UserrightsChangeableGroups | SpecialUserrights.php | Called after the list of groups that can be manipulated via Special:UserRights is populated, but before it is returned. |
1.15.0 | UserSaveOptions | User.php | Called just before saving user preferences/options |
1.13.0 | UserSaveSettings | User.php | Called when saving user settings |
1.13.0 | UserSetCookies | User.php | Called when setting user cookies |
1.13.0 | UserSetEmail | User.php | Called when changing user email address |
1.13.0 | UserSetEmailAuthenticationTimestamp | User.php | Called when setting the timestamp of email authentification |
1.8.0 | UserToggles | User.php | Called before returning "user toggle names" |
1.19.0 | UserToolLinksEdit | Linker.php | Called when generating a list of user tool links, eg "Foobar (Talk | Contribs | Block)" |
1.18.0 | WantedPages::getQueryInfo | SpecialWantedPages.php | Called in WantedPagesPage::getQueryInfo(), can be used to alter the SQL query which gets the list of wanted pages. |
1.15.0 | WantedPages::getSQL | SpecialWantedPages.php | Called in WantedPagesPage::getSQL(), can be used to alter the SQL query which gets the list of wanted pages (deprecated) - Use WantedPages::getQueryInfo |
1.4.0 | WatchArticle | Article.php | Occurs whenever the software receives a request to watch an article |
1.4.0 | WatchArticleComplete | Article.php | Occurs after the watch article request has been processed |
1.17.0 | WatchlistEditorBuildRemoveLine | WatchlistEditor.php | Occurs when building remove lines in Special:Watchlist/edit |
1.19.0 | WebRequestPathInfoRouter | WebRequest.php | While building the PathRouter to parse the REQUEST_URI. |
1.20.0 | wfShellWikiCmd | GlobalFunctions.php | Called when generating a shell-escaped command line string to run a maintenance script. |
1.15.0 | WikiExporter::dumpStableQuery | Export.php | Get the SELECT query for "stable" revisions dumps |
1.6.0 | wgQueryPages | QueryPage.php | called when initialising $wgQueryPages |
1.16.0 | XmlDumpWriterOpenPage | Export.php | Called at the end of XmlDumpWriter::openPage, to allow extra metadata to be added. |
1.16.0 | XmlDumpWriterWriteRevision | Export.php | Called at the end of a revision in an XML dump, to add extra metadata. |
1.18.0 | XMPGetInfo | media/XMPInfo.php | Called when obtaining the list of XMP tags to extract. |
1.18.0 | XMPGetResults | media/XMP.php | Called just before returning the results array of parsing xmp data. |
Hooks grouped by version[edit]
To see hooks grouped by version go to the table above and click the arrow symbol in the version table header.