Jump to content

Manual:Hooks/PageContentSave

From mediawiki.org
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
PageContentSave
Available from version 1.21.0
Before an article is saved.
Define function:
public static function onPageContentSave( $wikiPage, $user, $content, &$summary,
$isMinor, $isWatch, $section, $flags, $status ) { ... }
Attach hook: In extension.json:
{
	"Hooks": {
		"PageContentSave": "MediaWiki\\Extension\\MyExtension\\Hooks::onPageContentSave"
	}
}
Called from: File(s): Storage/PageUpdater.php
Interface: PageContentSaveHook.php

For more information about attaching hooks, see Manual:Hooks .
For examples of extensions using this hook, see Category:PageContentSave extensions.


Details

  • $wikiPage: the WikiPage (object) being saved
  • $user: the User (object) saving the article
  • $content: the new article content, as a Content object
  • &$summary: CommentStoreComment object containing the edit comment. Can be replaced with a new one.
  • $isMinor: Boolean flag specifying if the edit was marked as minor.
  • $isWatch: Previously a watch flag. Currently unused, always null.
  • $section: Previously the section number being edited. Currently unused, always null.
  • $flags: All EDIT_… flags (including EDIT_MINOR) as an integer number. See WikiPage::doEditContent documentation for flags' definition.
  • $status: StatusValue object for the hook handlers resulting status. Either set $hookStatus->fatal() or return false to abort the save action.
  • Return value: Return false to abort saving the page.

Earlier versions of MediaWiki (somewhat unintentionally) allowed changing parameters other than $summary. Since 1.32 that does not work anymore; there is currently no exact replacement. If you own the content type, you can use a pre-save transform to change the content.

Examples

# Return false to cancel a save and use $status to provide an error message.
$wgHooks['PageContentSave'][] = function( $wikiPage, $user, $content, $summary, $isMinor, $isWatch, $section, $flags, $status) {
	if ( true ) {
		$status->fatal( new RawMessage( "Your Error Message Here!" ) );
	}
	return false;
}

See also