Template:MediaWikiHook
Copy and paste template
MyHook | |
---|---|
Available from version ??? | |
Define function: | public static function onMyHook( $x, $y ) { ... }
|
Attach hook: | In extension.json:
{
"Hooks": {
"MyHook": "MediaWiki\\Extension\\MyExtension\\Hooks::onMyHook"
}
}
|
Called from: | File(s): |
Interface: | MyHookHook.php |
For more information about attaching hooks, see Manual:Hooks .
For examples of extensions using this hook, see Category:MyHook extensions.
{{MediaWikiHook |name = MyHook |version = |gerrit = |gerritremoved = |removed = |summary = |args = $x, $y |source = |sourcefunction = |sourceclass = |newvarname = |newvarlink = |nocatdesc = }}
Usage notes
This is the TemplateData documentation for this template used by VisualEditor and other tools.
MediaWikiHook
A card which describes the information of a MediaWiki-registered hook.
Parameter | Description | Type | Status | |
---|---|---|---|---|
Template mode | templatemode | Set to nocats if hook documentation should not appear in standard MediaWiki Categories. By default, using this template places the documentation page into categories: MediaWiki hooks Hooks added in MediaWiki... There are times when it is undesirable to automatically categorize the hook documentation. Examples would include when documenting a hook in an extension, or when documenting the template itself. | String | optional |
Name | name | The name of the hook. This is usually the same name as the sub-page. | String | optional |
Version | version | The version of MediaWiki this hook was first introduced in. Should always be a full version number (ie. ending with ".0").
| String | suggested |
Version removed | removed | If the hook has been removed, the version of MediaWiki that it was removed in. | String | optional |
Message for removed hook | removed-msg | If it is not suitable to use either the "newvarname" or the "newvarlink" template parameter, use this parameter. This parameter can be used to explain why it was removed, or for example, explain why there is no suitable replacement. | String | optional |
Version deprecated | deprecated | If the hook has been deprecated (but not removed), the version of MediaWiki that it was deprecated in. | String | optional |
Message for deprecated hook | deprecated-msg | If it is not suitable to use either the "newvarname" or the "newvarlink" template parameter, use this parameter. This parameter can be used to explain why it was removed, or for example, explain why there is no suitable replacement. | String | optional |
New variable name | newvarname | For removed or deprecated hooks, the name of the hook that should be used instead | String | optional |
New variable link | newvarlink | For removed or deprecated hooks, the link to the hook that should be used instead | Page name | optional |
SVN revision introduced | rev | SVN revision in which this hook was first introduced. If this parameter is given, it'll link to the appropriate CodeReview page (e.g. [[phabricator:rSVN1]]).
| URL | optional |
Gerrit changeset | gerrit | Gerrit change number in which this hook was first introduced. If this parameter is given, it'll link to the appropriate Gerrit changeset page (e.g. Gerrit change 1) | Number | suggested |
Gerrit changeset removed | gerritremoved | Gerrit change number in which this hook was removed. If this parameter is given, it'll link to the appropriate Gerrit changeset page (e.g. Gerrit change 1) | Number | optional |
Summary | summary | A short description of the hook's purpose. More detailed descriptions are desirable, and should be added to the main page content. If you update the short description, please also update the two tables on [[Special:MyLanguage/Manual:Hooks]]. | String | required |
Arguments | args | The arguments, as used at the top of the function. | String | required |
extension | extension | The extension which defines this hook. | String | optional |
File source 1 | source | Location (file name/path not including <code>includes/</code>) which calls this hook in the code. Further locations can be added via source2...source10. | File | suggested |
File source 2 | source2 | see source | File | optional |
File source 3 | source3 | see source | File | optional |
File source 4 | source4 | see source | File | optional |
File source 5 | source5 | see source | File | optional |
File source 6 | source6 | see source | File | optional |
File source 7 | source7 | see source | File | optional |
File source 8 | source8 | see source | File | optional |
File source 9 | source9 | see source | File | optional |
File source 10 | source10 | see source | File | optional |
Function source 1 | sourcefunction | Name of the function which calls this hook. Another can be added via sourcefunction2. | String | suggested |
Function source 2 | sourcefunction2 | see sourcefunction | String | optional |
Class source | sourceclass | Name of the class which calls this hook. | String | suggested |
nocatdesc | nocatdesc | If a hook is removed completely from MediaWiki version by setting yes, it will not show up the category description. | String | optional |
Finding a hook's version and Gerrit ID
To populate the version
and gerrit
attributes of this template, you may need to search the history of the docs/hooks.txt file.
- (From the top-level of a Git clone of MediaWiki source code)
- Find the oldest commit to
hooks.txt
that mentions the hook:git grep <hook-name-here> $(git rev-list --all -- docs/hooks.txt) -- docs/hooks.txt | tail -n 1
- Find its Gerrit ID:
git log <commit-from-above>
- Copy the change-id from the log entry into the Gerrit search box
- Select the relevant change, and get its ID
- Find out what release the hook was first included in:
git tag --contains <commit-from-above>
Categories
The template automatically adds the page to the following categories:
Category:Hooks added in MediaWiki <version>
Category:MediaWiki hooks included in <file>
and links to the following category:
Category:<hook name> extensions
When creating a new hook documentation page, you should create this categories if they don't exist yet. The first two can be left with an empty body; the third one should contain {{HookUsage|<name>}}
.