X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=docs%2Fhooks.txt;h=89d1cd20f2ff01af6132fd749b47703f7903dc01;hb=0c890862b204329c43cc62a6dd633156f6c196e3;hp=f724947bb2e6fbbf3fcd053b342818e71254923c;hpb=2c0d815fa32aec728c2aa165d9bd75dd3f4e0ee4;p=lhc%2Fweb%2Fwiklou.git diff --git a/docs/hooks.txt b/docs/hooks.txt index f724947bb2..89d1cd20f2 100644 --- a/docs/hooks.txt +++ b/docs/hooks.txt @@ -198,6 +198,10 @@ system (LDAP, another PHP program, whatever), you could do: Returning false makes less sense for events where the action is complete, and will normally be ignored. +Note that none of the examples made use of create_function() as a way to +attach a function to a hook. This is known to cause problems (notably with +Special:Version), and should be avoided when at all possible. + ==Using hooks== A calling function or method uses the wfRunHooks() function to run the hooks @@ -234,6 +238,9 @@ to add events to the MediaWiki code. $autoblockip: The IP going to be autoblocked. $block: The block from which the autoblock is coming. +'AbortDiffCache': Can be used to cancel the caching of a diff +&$diffEngine: DifferenceEngine object + 'AbortLogin': Return false to cancel account login. $user: the User object being authenticated against $password: the password being submitted, not yet checked for validity @@ -265,9 +272,9 @@ before showing the edit form ( EditPage::edit() ). This is triggered on &action=edit. $EditPage : the EditPage object -'AlternateSkinPreferences': before creating the content of the 'skin' -tab in preferences -$prefsform : the PreferencesForm object +'APIAfterExecute': after calling the execute() method of an API module. +Use this to extend core API modules. +&$module: Module object 'APIEditBeforeSave': before saving a page with api.php?action=edit, after processing request parameters. Return false to let the request @@ -277,6 +284,24 @@ $EditPage : the EditPage object $text : the new text of the article (has yet to be saved) $resultArr : data in this array will be added to the API result +'APIGetAllowedParams': use this hook to modify a module's parameters. +&$module: Module object +&$params: Array of parameters + +'APIGetParamDescription': use this hook to modify a module's parameter +descriptions. +&$module: Module object +&$desc: Array of parameter descriptions + +'APIQueryAfterExecute': after calling the execute() method of an +action=query submodule. Use this to extend core API modules. +&$module: Module object + +'APIQueryGeneratorAfterExecute': after calling the executeGenerator() +method of an action=query submodule. Use this to extend core API modules. +&$module: Module object +&$resultPageSet: ApiPageSet object + 'APIQueryInfoTokens': use this hook to add custom tokens to prop=info. Every token has an action, which will be used in the intoken parameter and in the output (actiontoken="..."), and a callback function which @@ -299,6 +324,17 @@ associated Revision object. In the hook, just add your callback to the $tokenFunctions array and return true (returning false makes no sense) $tokenFunctions: array(action => callback) +'APIQueryRecentChangesTokens': use this hook to add custom tokens to list=recentchanges. +Every token has an action, which will be used in the rctoken parameter +and in the output (actiontoken="..."), and a callback function which +should return the token, or false if the user isn't allowed to obtain +it. The prototype of the callback function is func($pageid, $title, $rc) +where $pageid is the page ID of the page associated to the revision the +token is requested for, $title the associated Title object and $rc the +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) + 'ArticleAfterFetchContent': after fetching content of an article from the database $article: the article (object) being loaded from the database $content: the content (string) of the article @@ -319,6 +355,11 @@ $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 +'ArticleEditUpdates': when edit updates (mainly link tracking) are made when an article has been changed +$article: the article (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 @@ -400,17 +441,6 @@ $section: (No longer used) $flags: Flags passed to Article::doEdit() $revision: New Revision of the article -'ArticleSaveComplete': after an article is saved -$article: the article (object) saved -$user: the user (object) who saved the article -$text: the new article text -$summary: the article summary (comment) -$isminor: minor flag -$iswatch: watch flag -$section: section # - -wfRunHooks( 'ArticleSaveComplete', array( &$this, &$wgUser, $text, $summary, $flags & EDIT_MINOR, null, null, &$flags, $revision ) ); - 'ArticleUndelete': When one or more revisions of an article are restored $title: Title corresponding to the article restored $create: Whether or not the restoration caused the page to be created @@ -494,18 +524,6 @@ $user: the user who did the block (not the one being blocked) $isbn: ISBN to show information for $output: OutputPage object in use -'BrokenLink': Before the HTML is created for a broken (i.e. red) link -&$linker: Linker instance -$nt: the page title -$query: the URL query string passed in -&$u: the URL of this link -&$style: the inline CSS style -&$prefix: a prefix prepended to the linked text -&$text: the text placed by the user in the wiki-link -&$inside: any additional alphanumeric characters placed after the wiki-link, -that are made part of the link text -&$trail: text placed immediately after the HTML link - 'CategoryPageView': before viewing a categorypage in CategoryPage::view $catpage: CategoryPage instance @@ -548,6 +566,17 @@ $newRev: Revision object of the "new" revision $article: article (object) being viewed $oldid: oldid (int) being viewed +'DoEditSectionLink': Override the HTML generated for section edit links +$skin: Skin object rendering the UI +$title: Title object for the title being linked to (may not be the same as + $wgTitle, if the section is included from a template) +$section: The designation of the section being pointed to, to be included in + the link, like "§ion=$section" +$tooltip: The default tooltip. Escape with htmlspecialchars() before using. + By default, this is wrapped in the 'editsectionhint' message. +$result: The HTML to return, prefilled with the default plus whatever other + changes earlier hooks have made + 'EditFilter': Perform checks on an edit $editor: Edit form (see includes/EditPage.php) $text: Contents of the edit box @@ -594,18 +623,10 @@ sections. &$editpage: The current EditPage object &$buttons: Array of edit buttons "Save", "Preview", "Live", and "Diff" -'EditSectionLink': Override the return value of Linker::editSectionLink() -$skin: Skin rendering the UI -$title: Title being linked to -$section: Section to link to -$link: Default link -$result: Result (alter this to override the generated links) - -'EditSectionLinkForOther': Override the return value of Linker::editSectionLinkForOther() +'EditSectionLink': Do not use, use DoEditSectionLink instead. $skin: Skin rendering the UI $title: Title being linked to $section: Section to link to -$hint: Anchor title/tooltip attributes $link: Default link $result: Result (alter this to override the generated links) @@ -696,6 +717,9 @@ $result: User permissions error to add. If none, return true. 'getUserPermissionsErrorsExpensive': Absolutely the same, but is called only if expensive checks are enabled. +'HTMLCacheUpdate::doUpdate': After cache invalidation updates are inserted into the job queue. +$title: Title object, pages linked to this title are purged. + 'ImageBeforeProduceHTML': Called before producing the HTML created by a wiki image insertion. You can skip the default logic entirely by returning false, or just modify a few things using call-by-reference. @@ -766,6 +790,35 @@ $lang: laguage code (string) $specialPageAliases: associative array of magic words synonyms $lang: laguage code (string) +'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 tag should have (raw HTML); null means "de- + fault" +&$customAttribs: the HTML attributes that the tag should have, in associa- + tive array form, with keys and values unescaped. Should be merged with de- + fault values, with a value of false meaning to suppress the attribute. +&$query: the query string to add to the generated URL (the bit after the "?"), + in associative array form, with keys and values unescaped. +&$options: array of options. Can include 'known', 'broken', 'noclasses'. +&$ret: the value to return if your hook returns false. + +'LinkEnd': Used when generating internal and interwiki links in Linker::link(), +just before the function returns a value. If you return true, an element +with HTML attributes $attribs and contents $text 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 tag, after processing. +&$attribs: the final HTML attributes of the tag, after processing, in asso- + ciative array form. +&$ret: the value to return if your hook returns false. + 'LinkerMakeExternalImage': At the end of Linker::makeExternalImage() just before the return &$url: the image url &$alt: the image's alt text @@ -833,6 +886,11 @@ $magicWords: array of strings 'MagicWordwgVariableIDs': When definig new magic words IDs. DEPRECATED: Use LanguageGetMagic hook instead $variableIDs: array of strings +'MakeGlobalVariablesScript': called right before Skin::makeVariablesScript is executed +&$vars: variable (or multiple variables) to be added into the output + of Skin::makeVariablesScript +&$wgUser: user (object) currently loading the skin + 'MarkPatrolled': before an edit is marked patrolled $rcid: ID of the revision to be marked patrolled $user: the user (object) marking the revision as patrolled @@ -883,6 +941,11 @@ $baseID: the revision ID this was based off, if any whether to use the content language (true) or site language (false) (bool) &$transform: whether or not to expand variables and templates in the message (bool) +'OldChangesListRecentChangesLine': Customize entire Recent Changes line. +&$changeslist: The OldChangesList instance. +&$s: HTML of the form "
  • ...
  • " containing one RC entry. +&$rc: The RecentChange object. + 'OpenSearchUrls': Called when constructing the OpenSearch description XML. Hooks can alter or append to the array of URLs for search & suggestion formats. &$urls: array of associative arrays with Url element attributes @@ -892,6 +955,9 @@ the resulting HTML is about to be displayed. $parserOutput: the parserOutput (object) that corresponds to the page $text: the text that will be displayed, in HTML (string) +'OutputPageCheckLastModified': when checking if the page has been modified since the last visit +&$modifiedTimes: array of timestamps, the following keys are set: page, user, epoch + 'OutputPageParserOutput': after adding a parserOutput to $wgOut $out: OutputPage instance (object) $parserOutput: parserOutput instance being added in $out @@ -1069,6 +1135,17 @@ $skin: Skin object &$text: bottomScripts Text Append to $text to add additional text/scripts after the stock bottom scripts. +'SkinAfterContent': Allows extensions to add text after the page content and +article metadata. +&$data: (string) Text to be printed out directly (without parsing) +This hook should work in all skins. Just set the &$data variable to the text +you're going to add. + +'SkinBuildSidebar': At the end of Skin::buildSidebar() +$skin: Skin object +&$bar: Sidebar contents +Modify $bar to add or modify sidebar portlets. + 'SkinSubPageSubtitle': At the beginning of Skin::subPageSubtitle() $skin: Skin object &$subpages: Subpage links HTML @@ -1146,24 +1223,6 @@ $movePage: MovePageForm object $oldTitle: old title (object) $newTitle: new title (object) -'SpecialPageExecuteAfterPage': called after executing a special page -Warning: Not all the special pages call this hook -$specialPage: SpecialPage object -$par: paramter passed to the special page (string) -$funct: function called to execute the special page - -'SpecialPageExecuteBeforeHeader': called before setting the header text of the special page -Warning: Not all the special pages call this hook -$specialPage: SpecialPage object -$par: paramter passed to the special page (string) -$funct: function called to execute the special page - -'SpecialPageExecuteBeforePage': called after setting the special page header text but before the main execution -Warning: Not all the special pages call this hook -$specialPage: SpecialPage object -$par: paramter passed to the special page (string) -$funct: function called to execute the special page - 'SpecialPage_initList': called when setting up SpecialPage::$mList, use this hook to remove a core special page $list: list (array) of core special pages @@ -1191,6 +1250,10 @@ $term: string of search term 'SpecialVersionExtensionTypes': called when generating the extensions credits, use this to change the tables headers $extTypes: associative array of extensions types +'TitleArrayFromResult': called when creating an TitleArray object from a database result +&$titleArray: set this to an object to override the default object returned +$res: database result used to create the object + 'TitleMoveComplete': after moving an article (title) $old: old title $nt: new title @@ -1238,6 +1301,11 @@ string &$error: output: HTML error to show if upload canceled by returning false 'UploadComplete': Upon completion of a file upload $uploadForm: Upload form object. File can be accessed by $uploadForm->mLocalFile. +'User::mailPasswordInternal': before creation and mailing of a user's new temporary password +$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 + 'UserArrayFromResult': called when creating an UserArray object from a database result &$userArray: set this to an object to override the default object returned $res: database result used to create the object @@ -1279,6 +1347,9 @@ $user: User object 'UserGetImplicitGroups': Called in User::getImplicitGroups() &$groups: List of implicit (automatically-assigned) groups +'UserGetReservedNames': allows to modify $wgReservedUsernames at run time +*&$reservedUsernames: $wgReservedUsernames + 'UserGetRights': Called in User::getRights() $user: User to get rights for &$rights: Current rights @@ -1287,10 +1358,13 @@ $user: User to get rights for $user: user object $name: user name -'UserLoadFromSession': called to authenticate users on external/environmental means +'UserLoadFromSession': called to authenticate users on external/environmental means; occurs before session is loaded $user: user object being loaded &$result: set this to a boolean value to abort the normal authentification process +'UserLoadAfterLoadFromSession': called to authenticate users on external/environmental means; occurs after session is loaded +$user: user object being loaded + 'UserLoginComplete': after a user has logged in $user: the user object that was created on login $inject_html: Any HTML to inject after the "logged in" message. @@ -1311,6 +1385,23 @@ $user : User object that was changed $add : Array of strings corresponding to groups added $remove: Array of strings corresponding to groups removed +'UserrightsChangeableGroups': allows modification of the groups a user may add or remove via Special:UserRights +$userrights : UserrightsPage object +$user : User object of the current user +$addergroups : Array of groups that the user is in +&$groups : Array of groups that can be added or removed. In format of + array( + 'add' => array( addablegroups ), + 'remove' => array( removablegroups ), + 'add-self' => array( addablegroups to self ), + 'remove-self' => array( removable groups from self ) + ) + +'UserRights::showEditUserGroupsForm': called right before the form to edit group memberships at Special:UserRights is shown +&$user: User or UserRightsProxy you're editing +&$addable: Array of groups you can add the user into +&$removable: Array of groups that you can remove the user from + 'UserRetrieveNewTalks': called when retrieving "You have new messages!" message(s) $user: user retrieving new talks messages $talks: array of new talks page(s)