New hook point to exempt an IP address from the account creation throttle. Redo of...
[lhc/web/wiklou.git] / docs / hooks.txt
index ea09f90..0ee7e6f 100644 (file)
@@ -234,6 +234,10 @@ MediaWiki 1.4rc1.
 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)
+&$abortMsg: out parameter: name of 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.
@@ -247,6 +251,7 @@ $password: the password being submitted, not yet checked for validity
 &$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
@@ -255,9 +260,20 @@ $user: user who is doing the move
 $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
+&$msg: out parameter: name of error message to display on abort
+
+'ActionBeforeFormDisplay': before executing the HTMLForm object
+$name: name of the action
+&$form: HTMLForm object
+$article: Article object
+
+'ActionModifyFormFields': before creating an HTMLForm object for a page action;
+       allows to change the fields on the form that will be generated
+$name: name of the action
+&$fields: HTMLForm descriptor array
+$article: Article object
 
 'AddNewAccount': after a user account is created
 $user: the User object that was created. (Parameter added in 1.7)
@@ -270,16 +286,6 @@ $revCount: Number of revisions in the XML file
 $sRevCount: Number of sucessfully imported revisions
 $pageInfo: associative array of page information
 
-'AfterUserMessage': After a user message has been left, this hook is
-called to take care of any cleanup.
-$user: The user who we left the message for.
-$article: The article the message was left on.
-$subject: The subject of the message
-$text: The text of the message.
-$signature: The signature we used.
-$summary: The edit summary.
-$editor: The editor that performed the edit.
-
 'AjaxAddScript': Called in output page just before the initialisation
 of the javascript ajax engine. The hook is only called when ajax
 is enabled ( $wgUseAjax = true; ).
@@ -289,6 +295,17 @@ before showing the edit form ( EditPage::edit() ). This is triggered
 on &action=edit.
 $EditPage: the EditPage object
 
+'AlternateUserMailer': Called before mail is sent so that mail could
+be logged (or something else) instead of using PEAR or PHP's mail().
+Return false to skip the regular method of sending mail.  Return a
+string to return a php-mail-error message containing the error.
+Returning true will continue with sending email in the regular way.
+$headers: Associative array of headers for the email
+$to: MailAddress object or array
+$from: From address
+$subject: Subject of the email
+$body: Body of the message
+
 'APIAfterExecute': after calling the execute() method of an API module.
 Use this to extend core API modules.
 &$module: Module object
@@ -353,6 +370,11 @@ associated RecentChange object. In the hook, just add your callback to the
 $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
@@ -386,32 +408,32 @@ Use this to change the content in this area or how it is loaded.
  $output: the OutputPage object ($wgOut)
 
 'ArticleDelete': before an article is deleted
-$article: the article (object) being deleted
+$article: the WikiPage (object) being deleted
 $user: the user (object) deleting the article
 $reason: the reason (string) the article is being deleted
 $error: if the deletion was prohibited, the (raw HTML) error message to display
   (added in 1.13)
 
 'ArticleDeleteComplete': after an article is deleted
-$article: the article that was deleted
+$article: the WikiPage that was deleted
 $user: the user that deleted the article
 $reason: the reason the article was deleted
 $id: id of the article that was deleted
 
 'ArticleEditUpdateNewTalk': before updating user_newtalk when a user talk page
 was changed
-$article: article (object) of the user talk page
+$article: WikiPage (object) of the user talk page
 
 'ArticleEditUpdates': when edit updates (mainly link tracking) are made when an
 article has been changed
-$article: the article (object)
+$article: the WikiPage (object)
 $editInfo: data holder that includes the parser output ($editInfo->output) for
 that page after the change
 $changed: bool for if the page was changed
 
 'ArticleEditUpdatesDeleteFromRecentchanges': before deleting old entries from
 recentchanges table, return false to not delete old entries
-$article: article (object) being modified
+$article: WikiPage (object) being modified
 
 'ArticleFromTitle': when creating an article object from a title object using
 Wiki::articleFromTitle()
@@ -419,7 +441,7 @@ $title: title (object) used to create the article object
 $article: article (object) that will be returned
 
 'ArticleInsertComplete': After a new article is created
-$article: Article created
+$article: WikiPage created
 $user: User creating the article
 $text: New content
 $summary: Edit summary/comment
@@ -434,29 +456,33 @@ $targetTitle: target title (object)
 $destTitle: destination title (object)
 
 'ArticlePageDataAfter': after loading data of an article from the database
-$article: article (object) whose data were loaded
+$article: WikiPage (object) whose data were loaded
 $row: row (object) returned from the database server
 
 'ArticlePageDataBefore': before loading data of an article from the database
-$article: article (object) that data will be loaded
+$article: WikiPage (object) that data will be loaded
 $fields: fileds (array) to load from the database
 
+'ArticlePrepareTextForEdit': called when preparing text to be saved
+$article: the WikiPage being saved
+$popts: parser options to be used for pre-save transformation
+
 'ArticleProtect': before an article is protected
-$article: the article being protected
+$article: the WikiPage being protected
 $user: the user doing the protection
 $protect: boolean whether this is a protect or an unprotect
 $reason: Reason for protect
 $moveonly: boolean whether this is for move only or not
 
 'ArticleProtectComplete': after an article is protected
-$article: the article that was protected
+$article: the WikiPage that was protected
 $user: the user who did the protection
 $protect: boolean whether it was a protect or an unprotect
 $reason: Reason for protect
 $moveonly: boolean whether it was for move only or not
 
 'ArticlePurge': before executing "&action=purge"
-$article: article (object) to purge
+$article: WikiPage (object) to purge
 
 'ArticleRevisionVisibilitySet': called when changing visibility of one or more
 revision of an article
@@ -468,13 +494,13 @@ $revision: the revision
 $oldPageID: the page ID of the revision when archived (may be null)
 
 'ArticleRollbackComplete': after an article rollback is completed
-$article: the article that was edited
+$article: the WikiPage that was edited
 $user: the user who did the rollback
 $revision: the revision the page was reverted back to
 $current: the reverted revision
 
 'ArticleSave': before an article is saved
-$article: the article (object) being saved
+$article: the WikiPage (object) being saved
 $user: the user (object) saving the article
 $text: the new article text
 $summary: the article summary (comment)
@@ -483,7 +509,7 @@ $iswatch: watch flag
 $section: section #
 
 'ArticleSaveComplete': After an article has been updated
-$article: Article modified
+$article: WikiPage modified
 $user: User performing the modification
 $text: New content
 $summary: Edit summary/comment
@@ -506,6 +532,9 @@ before the user is redirected back to the page
 &$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
@@ -516,6 +545,11 @@ viewing.
 follwed an redirect
 $article: target article (object)
 
+'ArticleViewCustom': allows to output the text of the article in a different format than wikitext
+$text: text of the page
+$title: title of the page
+$output: reference to $wgOut
+
 'AuthPluginAutoCreate': Called when creating a local account for an user logged
 in from an external authentication method
 $user: User object created locally
@@ -530,6 +564,16 @@ $args: arguments
 $user: user
 $result: result of checking autopromote condition
 
+'BacklinkCacheGetPrefix': allows to set prefix for a spefific link table
+$table: table name
+&$prefix: prefix
+
+'BacklinkCacheGetConditions': allows to set conditions for query when links to certain title
+are fetched
+$table: table name
+$title: title of the page to which backlinks are sought
+&$conds: query conditions
+
 'BadImage': When checking against the bad image list
 $name: Image name being checked
 &$bad: Whether or not the image is "bad"
@@ -537,11 +581,6 @@ $name: Image name being checked
 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
@@ -554,22 +593,38 @@ $mediaWiki: Mediawiki 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
+
+'PerformRetroactiveAutoblock': called before a retroactive autoblock is applied to a user
+$block: Block object (which is set to be autoblocking)
+&$blockIds: Array of block IDs of the autoblock
+
 '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)
@@ -596,12 +651,17 @@ $catpage: CategoryPage instance
 $unpatrolled:  Whether or not we are showing unpatrolled changes.
 $watched:      Whether or not the change is watched by the user.
 
+'Collation::factory': Called if $wgCategoryCollation is an unknown collation
+$collationName: Name of the collation in question
+&$collationObject: Null. Replace with a subclass of the Collation class that implements
+the collation given in $collationName.
+
 'ConfirmEmailComplete': Called after a user's email has been confirmed successfully
 $user: user (object) whose email is being confirmed
 
 'ContribsPager::getQueryInfo': Before the contributions query is about to run
 &$pager: Pager object for contributions
-&queryInfo: The query for the contribs Pager
+&$queryInfo: The query for the contribs Pager
 
 'ContributionsLineEnding': Called before a contributions HTML line is finished
 $page: SpecialPage object for contributions
@@ -624,6 +684,10 @@ etc.
 'DatabaseOraclePostInit': Called after initialising an Oracle database
 &$db: the DatabaseOracle object
 
+'Debug': called when outputting a debug log line via wfDebug() or wfDebugLog()
+$text: plaintext string to be output
+$group: null or a string naming a logging group (as defined in $wgDebugLogGroups)
+
 'NewDifferenceEngine': Called when a new DifferenceEngine object is made
 $title: the diff page title (nullable)
 &$oldId: the actual old Id to use in the diff
@@ -676,7 +740,7 @@ pages
 $editPage: EditPage    object
 
 'EditPage::attemptSave': called before an article is
-saved, that is before insertNewArticle() is called
+saved, that is before Article::doEdit() is called
 $editpage_Obj: the current EditPage object
 
 'EditPage::importFormData': allow extensions to read additional data
@@ -785,9 +849,15 @@ $user: The user who is trying to email another user.
 $editToken: The user's edit token.
 &$hookErr: Out-param for the error. Passed as the parameters to OutputPage::showErrorPage.
 
+'exemptFromAccountCreationThrottle': Exemption from the account creation throttle
+$ip: The ip address of the user
+
+'ExtensionTypes': called when generating the extensions credits, use this to change the tables headers
+&$extTypes: associative array of extensions types
+
 '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)
@@ -811,12 +881,6 @@ $fileVersions: array of undeleted versions. Empty if all versions were restored
 $user: user who performed the undeletion
 $reason: reason
 
-'FormatUserMessage': Hook to format a message if you want to override
-the internal formatter.
-$subject: Title of the message.
-&$text: Text of the message.
-$signature: Signature that they would like to leave.
-
 'GetAutoPromoteGroups': When determining which autopromote groups a user
 is entitled to be in.
 &$user: user to promote.
@@ -830,6 +894,15 @@ $out: OutputPage object
 &$cookies: array of cookies name, add a value to it if you want to add a cookie
        that have to vary cache options
 
+'GetCanonicalURL': modify fully-qualified URLs used for IRC and e-mail notifications
+$title: Title object of page
+$url: string value as output (out parameter, can modify)
+$query: query options passed to Title::getCanonicalURL()
+
+'GetDefaultSortkey': Override the default sortkey for a page.
+$title: Title object that we need to get a sortkey for
+&$sortkey: Sortkey to use.
+
 'GetFullURL': modify fully-qualified URLs used in redirects/export/offsite data
 $title: Title object of page
 $url: string value as output (out parameter, can modify)
@@ -848,10 +921,35 @@ $linkcolour_ids: array of prefixed DB keys of the pages linked to,
        indexed by page_id.
 &$colours: (output) array of CSS classes, indexed by prefixed DB keys
 
-'GetLocalURL': modify local URLs as output into page links
+'GetLocalURL': modify local URLs as output into page links. Note that if you
+       are working with internal urls (non-interwiki) then it may be preferable
+       to work with the GetLocalURL::Internal or GetLocalURL::Article hooks as
+       GetLocalURL can be buggy for internal urls on render if you do not
+       re-implement the horrible hack that Title::getLocalURL uses
+       in your own extension.
 $title: Title object of page
-$url: string value as output (out parameter, can modify)
+&$url: string value as output (out parameter, can modify)
+$query: query options passed to Title::getLocalURL()
+$variant: variant options passed to Title::getLocalURL()
+
+'GetLocalURL::Internal': modify local URLs to internal pages.
+$title: Title object of page
+&$url: string value as output (out parameter, can modify)
 $query: query options passed to Title::getLocalURL()
+$variant: variant options passed to Title::getLocalURL()
+
+'GetLocalURL::Article': modify local URLs specifically pointing to article paths
+       without any fancy queries or variants.
+$title: Title object of page
+&$url: string value as output (out parameter, can modify)
+
+'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.
@@ -954,6 +1052,12 @@ $ignoreRedirect: boolean to skip redirect check
 $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
@@ -963,6 +1067,11 @@ but after noinclude/includeonly/onlyinclude and other processing.
 'InvalidateEmailComplete': Called after a user's email has been invalidated successfully
 $user: user (object) whose email is being invalidated
 
+'IRCLineURL': When constructing the URL to use in an IRC notification.
+Callee may modify $url and $query, URL will be constructed as $url . $query
+&$url: URL to index.php
+&$query: Query string
+
 'IsFileCacheable': Override the result of Article::isFileCacheable() (if true)
 $article: article (object) being checked
 
@@ -992,13 +1101,17 @@ Use to define aliases of special pages names depending of the language
 $specialPageAliases: associative array of magic words synonyms
 $lang: laguage code (string)
 
+'LanguageGetTranslatedLanguageNames': Provide translated language names.
+&$names: array of language code => language name
+$code language of the preferred translations
+
 'LinkBegin': Used when generating internal and interwiki links in
 Linker::link(), before processing starts.  Return false to skip default proces-
 sing and return $ret.  See documentation for Linker::link() for details on the
 expected meanings of parameters.
 $skin: the Skin object
 $target: the Title that the link is pointing to
-&$text: the contents that the <a> tag should have (raw HTML); null means "de-
+&$html: the contents that the <a> tag should have (raw HTML); null means "de-
        fault"
 &$customAttribs: the HTML attributes that the <a> tag should have, in associa-
        tive array form, with keys and values unescaped.  Should be merged with de-
@@ -1010,13 +1123,13 @@ $target: the Title that the link is pointing to
 
 'LinkEnd': Used when generating internal and interwiki links in Linker::link(),
 just before the function returns a value.  If you return true, an <a> element
-with HTML attributes $attribs and contents $text will be returned.  If you re-
+with HTML attributes $attribs and contents $html will be returned.  If you re-
 turn false, $ret will be returned.
 $skin: the Skin object
 $target: the Title object that the link is pointing to
 $options: the options.  Will always include either 'known' or 'broken', and may
        include 'noclasses'.
-&$text: the final (raw HTML) contents of the <a> tag, after processing.
+&$html: the final (raw HTML) contents of the <a> tag, after processing.
 &$attribs: the final HTML attributes of the <a> tag, after processing, in asso-
        ciative array form.
 &$ret: the value to return if your hook returns false.
@@ -1086,21 +1199,8 @@ $paramArray: Array of parameters that corresponds to logging.log_params field.
 &$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
+'MaintenanceRefreshLinksInit': before executing the refreshLinks.php maintenance script
+$refreshLinks: RefreshLinks object
 
 'MagicWordMagicWords': When defining new magic word.
 DEPRECATED: use $magicWords in a file listed in 
@@ -1111,7 +1211,9 @@ $magicWords: array of strings
 $variableIDs: array of strings
 
 'MakeGlobalVariablesScript': called right before Skin::makeVariablesScript
-is executed
+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 ResourceLoaderGetConfigVars instead.
 &$vars: variable (or multiple variables) to be added into the output
        of Skin::makeVariablesScript
 
@@ -1127,11 +1229,6 @@ $user: user (object) who marked the edit patrolled
 $wcOnlySysopsCanPatrol: config setting indicating whether the user
        must be a sysop to patrol the edit
 
-'MathAfterTexvc': after texvc is executed when rendering mathematics
-$mathRenderer: instance of MathRenderer
-$errmsg: error message, in HTML (string). Nonempty indicates failure
-       of rendering the formula
-
 'MediaWikiPerformAction': Override MediaWiki::performAction().
 Use this to do something completely different, after the basic
 globals have been set up, but before ordinary actions take place.
@@ -1177,7 +1274,7 @@ using this hook.
 
 'NewRevisionFromEditComplete': called when a revision was inserted
 due to an edit
-$article: the article edited
+$article: the WikiPage edited
 $rev: the new revision
 $baseID: the revision ID this was based off, if any
 $user: the editing user
@@ -1238,6 +1335,12 @@ $categories: associative array, keys are category names, values are category
 $links: array, intended to hold the result. Must be an associative array with
        category types as keys and arrays of HTML links as values.
 
+'PageContentLanguage': allows changing the language in which the content of
+a page is written. Defaults to the wiki content language ($wgContLang).
+$title: Title object
+&$pageLang: the page content language (either an object or a language code)
+$wgLang: the user language
+
 'PageHistoryBeforeList': When a history page list is about to be constructed.
 $article: the article that the history is loading for
 
@@ -1313,6 +1416,17 @@ $title: title object representing the file
 $file: file object that will be used to create the image
 &$params: 2-D array of parameters
 
+'ParserSectionCreate': Called each time the parser creates a document section
+from wikitext.  Use this to apply per-section modifications to HTML (like
+wrapping the section in a DIV).  Caveat: DIVs are valid wikitext, and a DIV
+can begin in one section and end in another.  Make sure your code can handle
+that case gracefully.  See the EditSectionClearerLink extension for an
+example.
+$parser: the calling Parser instance
+$section: the section number, zero-based, but section 0 is usually empty
+&$sectionContent: ref to the content of the section. modify this.
+$showEditLinks: boolean describing whether this section has an edit link
+
 'ParserTestParser': called when creating a new instance of Parser in
 maintenance/parserTests.inc
 $parser: Parser object created
@@ -1368,13 +1482,24 @@ $out: OutputPage object
 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 RecenChange::save()
+'RecentChange_save': called at the end of RecentChange::save()
 $recentChange: RecentChange object
 
+'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.
+&$vars: array( variable name => value )
+
 'RevisionInsertComplete': called after a revision is inserted into the DB
 &$revision: the Revision
 $data: the data stored in old_text.  The meaning depends on $flags: if external
@@ -1413,16 +1538,6 @@ $query : Original query.
 
 'SetupAfterCache': Called in Setup.php, after cache objects are set
 
-'SetupUserMessageArticle': Called in User::leaveUserMessage() before
-anything has been posted to the article.
-$user: The user who we left the message for.
-&$article: The article that will be posted to.
-$subject: The subject of the message
-$text: The text of the message.
-$signature: The signature we used.
-$summary: The edit summary.
-$editor: The editor that performed the edit.
-
 'ShowMissingArticle': Called when generating the output for a non-existent page
 $article: The article object corresponding to the page
 
@@ -1440,11 +1555,13 @@ $page: The SpecialSearch object.
 
 '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()
@@ -1479,29 +1596,20 @@ $skin: Skin object
 '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
 subPageSubtitle() will run.
 
-'SkinTemplateBuildContentActionUrlsAfterSpecialPage': after the single tab
-when showing a special page
-$sktemplate: SkinTemplate object
-$content_actions: array of tabs
-
 'SkinTemplateBuildNavUrlsNav_urlsAfterPermalink': after creating the
 "permanent link" tab
 $sktemplate: SkinTemplate object
 $nav_urls: array of tabs
 
-'SkinTemplateContentActions': Alter the "content action" links in SkinTemplates
-&$content_actions: Content actions
-[See http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/examples/Content_action.php
-for an example]
-
 Alter the structured navigation links in SkinTemplates, there are three of these hooks called in different spots.
-'SkinTemplateNavigation': Called on content pages before variants have been added
-'SkinTemplateNavigation::SpecialPage': Called on special pages before variands have been added
+'SkinTemplateNavigation': Called on content pages after the tabs have been added but before before variants have been added
+'SkinTemplateNavigation::SpecialPage': Called on special pages after the special tab is added but before variants have been added
 'SkinTemplateNavigation::Universal': Called on both content and special pages after variants have been added
 &$sktemplate: SkinTemplate object
 &$links: Structured navigation links
@@ -1516,9 +1624,6 @@ starts page output
 $sktemplate: SkinTemplate object
 $res: set to true to prevent active tabs
 
-'SkinTemplateSetupPageCss': use this to provide per-page CSS
-$out: Css to return
-
 'SkinTemplateTabAction': Override SkinTemplate::tabAction().
 You can either create your own array, or alter the parameters for
 the normal one.
@@ -1532,13 +1637,9 @@ $checkEdit: Whether or not the action=edit query should be added if appropriate.
 &$text: Link text.
 &$result: Complete assoc. array if you want to return true.
 
-'SkinTemplateTabs': called when finished to build the actions tabs
-$sktemplate: SkinTemplate object
-$content_actions: array of tabs
-
 '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
@@ -1582,11 +1683,25 @@ $newTitle: new title (object)
 &$special: NewPagesPager object (subclass of ReverseChronologicalPager)
 $opts: FormOptions object containing special page options
 &$conds: array of WHERE conditionals for query
+&tables: array of tables to be queried
+&$fields: array of columns to select
+&$join_conds: join conditions for the tables
+
+'SpecialNewPagesFilters': called after building form options at NewPages
+$special: the special page object
+&$filters: associative array of filter definitions. The keys are the HTML name/URL parameters.
+Each key maps to an associative array with a 'msg' (message key) and a 'default' value.
 
 'SpecialPage_initList': called when setting up SpecialPage::$mList, use this
 hook to remove a core special page
 $list: list (array) of core special pages
 
+'SpecialPasswordResetOnSubmit': when executing a form submission on Special:PasswordReset
+$users: array of User objects
+$data: array of data submitted by the user
+&$error: string, error code (message name) used to describe to error (out paramater).
+       The hook needs to return false when setting this, otherwise it will have no effect.
+
 'SpecialRandomGetRandomTitle': called during the execution of Special:Random,
 use this to change some selection criteria or substitute a different title
 &$randstr: The random number from wfRandom()
@@ -1596,6 +1711,11 @@ use this to change some selection criteria or substitute a different title
 &$title: If the hook returns false, a Title object to use instead of the
 result from the normal query
 
+'SpecialRecentChangesFilters': called after building form options at RecentChanges
+$special: the special page object
+&$filters: associative array of filter definitions. The keys are the HTML name/URL parameters.
+Each key maps to an associative array with a 'msg' (message key) and a 'default' value.
+
 'SpecialRecentChangesPanel': called when building form options in
 SpecialRecentChanges
 &$extraOpts: array of added items, to which can be added
@@ -1608,7 +1728,7 @@ SpecialRecentChanges and SpecialRecentChangesLinked
 &$join_conds: join conditions for the tables
 $opts: FormOptions for this request
 &$query_options: array of options for the database request
-&$select: String '*' or array of columns to select
+&$select: Array of columns to select
 
 'SpecialSearchGo': called when user clicked the "Go"
 &$title: title object generated from the text entered by the user
@@ -1621,6 +1741,18 @@ target doesn't exist
 '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
@@ -1643,6 +1775,11 @@ $form: The SpecialUpload object
 use this to change the tables headers
 $extTypes: associative array of extensions types
 
+'SpecialWatchlistFilters': called after building form options at Watchlist
+$special: the special page object
+&$filters: associative array of filter definitions. The keys are the HTML name/URL parameters.
+Each key maps to an associative array with a 'msg' (message key) and a 'default' value.
+
 'SpecialWatchlistQuery': called when building sql query for SpecialWatchlist
 &$conds: array of WHERE conditionals for query
 &$tables: array of tables to be queried
@@ -1659,6 +1796,15 @@ $res: database result used to create the object
 $title: The title in question.
 &$types: The types of protection available.
 
+'TitleIsCssOrJsPage': Called when determining if a page is a CSS or JS page
+$title: Title object that is being checked
+$result: Boolean; whether MediaWiki currently thinks this is a CSS/JS page. Hooks may change this value to override the return value of Title::isCssOrJsPage()
+
+'TitleIsWikitextPage': Called when determining if a page is a wikitext or should
+be handled by seperate handler (via ArticleViewCustom)
+$title: Title object that is being checked
+$result: Boolean; whether MediaWiki currently thinks this is a wikitext page. Hooks may change this value to override the return value of Title::isWikitextPage()
+
 'TitleMoveComplete': after moving an article (title)
 $old: old title
 $nt: new title
@@ -1666,6 +1812,23 @@ $user: user who did the move
 $pageid: database ID of the page that's been moved
 $redirid: database ID of the created redirect
 
+'UndeleteForm::showHistory': called in UndeleteForm::showHistory, after a
+PageArchive object has been created but before any further processing is done.
+&$archive: PageArchive object
+$title: Title object of the page that we're viewing
+
+'UndeleteForm::showRevision': called in UndeleteForm::showRevision, after a
+PageArchive object has been created but before any further processing is done.
+&$archive: PageArchive object
+$title: Title object of the page that we're viewing
+
+'UndeleteForm::undelete': called un 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.
+&$archive: PageArchive object
+$title: Title object of the page that we're about to undelete
+
 'UndeleteShowRevision': called when showing a revision in Special:Undelete
 $title: title object related to the revision
 $rev: revision (object) that will be viewed
@@ -1748,6 +1911,11 @@ $user: the user who sent the message out
 $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
@@ -1809,6 +1977,10 @@ $user: User object
 '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
 
@@ -1859,10 +2031,6 @@ $inject_html: Any HTML to inject after the "logged in" message.
 'UserLoginForm': change to manipulate the login form
 $template: SimpleTemplate instance for the form
 
-'UserLoginMailPassword': Block users from emailing passwords
-$name: the username to email the password of.
-&$error: out-param - the error message to return.
-
 'UserLogout': before a user logs out
 $user: the user object that is about to be logged out
 
@@ -1871,6 +2039,11 @@ $user: the user object _after_ logout (won't have name, ID, etc.)
 $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
@@ -1923,6 +2096,15 @@ $title: Title object
 $redirect: whether the page is a redirect
 $skin: Skin object
 
+'WebRequestGetPathInfoRequestURI': while extracting path info from REQUEST_URI.
+       Allows an extension to extend the extraction of titles from paths.
+       Implementing hooks should follow the pattern used in core:
+       * Use the `$matches = WebRequest::extractTitle` pattern
+       * Ensure that you test `if ( !$matches ) {` before you try extracting a title
+         from the path so that you don't override an already found match.
+$path: The request path to extract a title from.
+&$matches: The array to apply matches to.
+
 'WikiExporter::dumpStableQuery': Get the SELECT query for "stable" revisions
 dumps
 One, and only one hook should set this, and return false.
@@ -1948,5 +2130,14 @@ $obj: The XmlDumpWriter object.
 $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.