if ($wgNotifyArticle) {
wfNotifyArticleShow($article));
}
- }
+ }
Using a hook-running strategy, we can avoid having all this option-specific
stuff in our mainline code. Using hooks, the function becomes:
'AlternateEdit': before checking if an user can edit a page and
before showing the edit form ( EditPage::edit() ). This is triggered
on &action=edit.
-$EditPage : the EditPage object
+$EditPage: the EditPage object
'APIAfterExecute': after calling the execute() method of an API module.
Use this to extend core API modules.
if $resultArr was filled.
$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
+&$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
$article: the article (object) being loaded from the database
$content: the content (string) of the article
+'ArticleConfirmDelete': before writing the confirmation form for article
+ deletion
+$article: the article (object) being deleted
+$output: the OutputPage object ($wgOut)
+&$reason: the reason (string) the article is being deleted
+
'ArticleDelete': before an article is deleted
$article: the article (object) being deleted
$user: the user (object) deleting the article
$title: Title corresponding to the article restored
$create: Whether or not the restoration caused the page to be created
(i.e. it didn't exist before)
+$comment: The comment associated with the undeletion.
'ArticleUpdateBeforeRedirect': After a page is updated (usually on save),
before the user is redirected back to the page
&$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
+&$output: OutputPage object
+&$user: User
+$request: WebRequest object
+$this: Mediawiki object
+
'BeforePageDisplay': Prior to outputting a page
&$out: OutputPage object
&$skin: Skin object
$isbn: ISBN to show information for
$output: OutputPage object in use
+'CacheHeadersAfterSet': after cache headers have been set in
+OutputPage::sendCacheControl, so they can be overridden without
+disabling output method
+$this: OutputPage instance
+
'CategoryPageView': before viewing a categorypage in CategoryPage::view
$catpage: CategoryPage instance
$unpatrolled: Whether or not we are showing unpatrolled changes.
$watched: Whether or not the change is watched by the user.
+'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
if implementing a custom editor, e.g. for a special namespace,
etc.
+'DatabaseOraclePostInit': Called after initialising an Oracle database
+&$db: the DatabaseOracle object
+
'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
'EditFilterMerged': Post-section-merge edit filter
$editor: EditPage instance (object)
$text: content of the edit box
-$error: error message to return
+&$error: error message to return
$summary: Edit summary for page
'EditFormPreloadText': Allows population of the edit form when creating
'EditPage::attemptSave': called before an article is
saved, that is before insertNewArticle() is called
-&$editpage_Obj: the current EditPage object
+$editpage_Obj: the current EditPage object
+
+'EditPage::importFormData': allow extensions to read additional data
+posted in the form
+$editpage: EditPage instance
+$request: Webrequest
+return value is ignored (should always return true)
'EditPage::showEditForm:fields': allows injection of form field into edit form
&$editor: the EditPage instance for reference
&$checks: Array of edit checks like "watch this page"/"minor edit"
&$tabindex: HTML tabindex of the last edit check/button
+'EditPageBeforeEditToolbar': allows modifying the edit toolbar above the
+textarea in the edit form
+&$toolbar: The toolbar HTMl
+
'EditPageCopyrightWarning': Allow for site and per-namespace customization of contribution/copyright notice.
$title: title of page being edited
&$msg: localization message name, overridable. Default is either 'copyrightwarning' or 'copyrightwarning2'
$url: string value as output (out parameter, can modify)
$query: query options passed to Title::getLocalURL()
+'getOtherBlockLogLink': Get links to the block log from extensions which blocks
+ users and/or IP addresses too
+$otherBlockLink: An array with links to other block logs
+$$this->ip: The requested IP address or username
+
'GetPreferences': modify user preferences
$user: User whose preferences are being modified.
&$preferences: Preferences description array, to be fed to an HTMLForm object
$imagePage: ImagePage object ($this)
$output: $wgOut
+'ImagePageAfterImageLinks': called after the image links section on an image
+ page is built
+$imagePage: ImagePage object ($this)
+&$html: HTML for the hook to add
+
'ImagePageFileHistoryLine': called when a file history line is contructed
$file: the file
$line: the HTML of the history line
&$file: File object
&$displayFile: displayed File object
+'ImgAuthBeforeStream': executed before file is streamed to user, but only when
+ using img_auth.php
+&$title: the Title object of the file as it would appear for the upload page
+&$path: the original file and path name when img_auth was invoked by the the web
+ server
+&$name: the name only component of the file
+&$result: The location to pass back results of the hook routine (only used if
+ failed)
+ $result[0]=The index of the header message
+ $result[1]=The index of the body text message
+ $result[2 through n]=Parameters passed to body text message. Please note the
+ header message cannot receive/use parameters.
+
+
'InitializeArticleMaybeRedirect': MediaWiki check to see if title is a redirect
$title: Title object ($wgTitle)
$request: WebRequest
&$text: string containing partially parsed text
&$this->mStripState: Parser's internal StripState object
+'InvalidateEmailComplete': Called after a user's email has been invalidated successfully
+$user: user (object) whose email is being invalidated
+
'IsFileCacheable': Override the result of Article::isFileCacheable() (if true)
$article: article (object) being checked
'isValidPassword': Override the result of User::isValidPassword()
$password: The password entered by the user
-&$result: Set this to either true (passes) or the key for a message error
+&$result: Set this and return false to override the internal checks
$user: User the password is being validated for
'LanguageGetMagic': DEPRECATED, use $magicWords in a file listed in
$opts: query options
$join_conds: JOIN conditions
+'LocalisationCacheRecache': Called when loading the localisation data into cache
+$cache: The LocalisationCache object
+$code: language code
+&$alldata: The localisation data from core and extensions
+
'LoginAuthenticateAudit': a login attempt for a valid user account either
succeeded or failed. No return data is accepted; this hook is for auditing only.
$user: the User object being authenticated against
&$actionText: array of strings
'MagicWordMagicWords': When defining new magic word.
-DEPRECATED: Use LanguageGetMagic hook instead
+DEPRECATED: use $magicWords in a file listed in
+$wgExtensionMessagesFiles instead.
$magicWords: array of strings
'MagicWordwgVariableIDs': When definig new magic words IDs.
$title: name of the page changed.
$text: new contents of the page.
+'ModifyExportQuery': Modify the query used by the exporter.
+$db: The database object to be queried.
+&$tables: Tables in the query.
+&$conds: Conditions in the query.
+&$opts: Options for the query.
+&$join_conds: Join conditions for the query.
+
'MonoBookTemplateToolboxEnd': Called by Monobook skin after toolbox links have
been rendered (useful for adding more)
Note: this is only run for the Monobook skin. To add items to the toolbox
same magic word
$index: index (string) of the magic
$ret: value of the magic word (the hook should set it)
+$frame: PPFrame object to use for expanding any template variables
'ParserGetVariableValueTs': use this to change the value of the time for the
{{LOCAL...}} magic word
$newPass: new password
$error: error (string) 'badretype', 'wrongpassword', 'error' or 'success'
+'ProtectionForm::buildForm': called after all protection type fieldsets are made in the form
+$article: the title being (un)protected
+$output: a string of the form HTML so far
+
+'ProtectionForm::save': called when a protection form is submitted
+$article: the title being (un)protected
+$errorMsg: an html message string of an error
+
+'ProtectionForm::showLogExtract': called after the protection log extract is shown
+$article: the page the form is shown for
+$out: OutputPage object
+
+'ProtectionFormGetApplicableTypes': Allows extensions to modify the types of protection
+ that can be applied.
+$title: The title in question.
+&$types: The types of protection available.
+
'RawPageViewBeforeOutput': Right before the text is blown out in action=raw
&$obj: RawPage object
&$text: The text that's going to be the output
'SetupAfterCache': Called in Setup.php, after cache objects are set
+'ShowMissingArticle': Called when generating the output for a non-existent page
+$article: The article object corresponding to the page
+
'ShowRawCssJs': Customise the output of raw CSS and JavaScript in page views
$text: Text being shown
$title: Title of the custom script/stylesheet page
$output: Current OutputPage object
+'ShowSearchHitTitle': Customise display of search hit title/link.
+&$title: Title to link to
+&$text: Text to use for the link
+$result: The search result
+$terms: The search terms entered
+$page: The SpecialSearch object.
+
'SiteNoticeBefore': Before the sitenotice/anonnotice is composed
&$siteNotice: HTML returned as the sitenotice
Return true to allow the normal method of notice selection/rendering to work,
for an example]
'SkinTemplateNavigation': Alter the structured navigation links in SkinTemplates
+&$sktemplate: SkinTemplate object
&$links: Structured navigation links
This is used to alter the navigation for skins which use buildNavigationUrls such as Vector.
hook to remove a core special page
$list: list (array) of core special pages
+'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()
+&$isRedir: Boolean, whether to select a redirect or non-redirect
+&$namespaces: An array of namespace indexes to get the title from
+&$extra: An array of extra SQL statements
+&$title: If the hook returns false, a Title object to use instead of the
+result from the normal query
+
'SpecialRecentChangesPanel': called when building form options in
SpecialRecentChanges
&$extraOpts: array of added items, to which can be added
target doesn't exist
$title: title object generated from the text entred by the user
+'SpecialSearchProfiles': allows modification of search profiles
+&$profiles: profiles, which can be modified.
+
'SpecialSearchResults': called before search result display when there
are matches
$term: string of search term
no matches
$term: string of search term
+'SpecialStatsAddExtra': add extra statistic at the end of Special:Statistics
+&$extraStats: Array to save the new stats
+ ( $extraStats['<name of statistic>'] => <value>; )
+
+'SpecialUploadComplete': Called after successfully uploading a file from
+Special:Upload
+$form: The SpecialUpload object
+
'SpecialVersionExtensionTypes': called when generating the extensions credits,
use this to change the tables headers
$extTypes: associative array of extensions types
$user: user that watched
$article: article object that was watched
-'UploadForm:initial': before the upload form is generated
-$form: UploadForm object
-You might set the member-variables $uploadFormTextTop and
-$uploadFormTextAfterSummary to inject text (HTML) either before
-or after the editform.
+'UploadCreateFromRequest': when UploadBase::createFromRequest has been called
+string $type: the requested upload type
+&$className: the class name of the Upload instance to be created
+
+'UploadComplete': when Upload completes an upload
+&$upload: an UploadBase child instance
-'UploadForm:BeforeProcessing': at the beginning of processUpload()
-$form: UploadForm object
-Lets you poke at member variables like $mUploadDescription before the
-file is saved.
+'UploadFormInitDescriptor': after the descriptor for the upload form as been
+assembled
+array $descriptor: the HTMLForm descriptor
+
+'UploadFormSourceDescriptors': after the standard source inputs have been
+added to the descriptor
+array $descriptor: the HTMLForm descriptor
'UploadVerification': additional chances to reject an uploaded file
string $saveName: destination file name
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.
+$uploadBase: UploadBase (or subclass) object. File can be accessed by
+ $uploadBase->getLocalFile().
'User::mailPasswordInternal': before creation and mailing of a user's new
temporary password
$user: User (object) whose permission is being checked
&$canSend: bool set on input, can override on output
-
'UserClearNewTalkNotification': called when clearing the
"You have new messages!" message, return false to not delete it
$user: User (object) that'll clear the message
&$groups: List of implicit (automatically-assigned) groups
'UserGetReservedNames': allows to modify $wgReservedUsernames at run time
-*&$reservedUsernames: $wgReservedUsernames
+&$reservedUsernames: $wgReservedUsernames
'UserGetRights': Called in User::getRights()
$user: User to get rights for
&$rights: Current rights
+'UserIsBlockedFrom': Check if a user is blocked from a specific page (for specific block
+ exemptions).
+$user: User in question
+$title: Title of the page in question
+&$blocked: Out-param, whether or not the user is blocked from that page.
+&$allowUsertalk: If the user is blocked, whether or not the block allows users to edit their
+ own user talk pages.
+
'UserIsBlockedGlobally': Check if user is blocked on all wikis.
&$user: User object
$ip: User's IP address
query pages to be updated with maintenance/updateSpecialPages.php
$query: $wgQueryPages itself
+'XmlDumpWriterOpenPage': Called at the end of XmlDumpWriter::openPage, to allow extra
+ metadata to be added.
+$obj: The XmlDumpWriter object.
+&$out: The output string.
+$row: The database row for the page.
+$title: The title of the page.
+
+'XmlDumpWriterWriteRevision': Called at the end of a revision in an XML dump, to add extra
+ metadata.
+$obj: The XmlDumpWriter object.
+&$out: The text being output.
+$row: The database row for the revision.
+$text: The revision text.
+
More hooks might be available but undocumented, you can execute
./maintenance/findhooks.php to find hidden one.