Manual:Hooks/DeleteUnknownPreferences

From MediaWiki.org
Jump to navigation Jump to search
DeleteUnknownPreferences
Available from version 1.31.0
Called by the cleanupPreferences.php maintenance script to build a WHERE clause with which to delete preferences that are not known about.
Define function:
public static function onDeleteUnknownPreferences( array &$where, \Wikimedia\Rdbms\IDatabase $db ) { ... }
Attach hook:

In extension.json:

{
	"Hooks": {
		"DeleteUnknownPreferences": "MyExtensionHooks::onDeleteUnknownPreferences"
	}
}

For MediaWiki ≤1.25:

$wgHooks['DeleteUnknownPreferences'][] = 'MyExtensionHooks::onDeleteUnknownPreferences';
Called from:File(s): cleanupPreferences.php

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

This hook is called by the cleanupPreferences.php maintenance script to build a WHERE clause with which to delete preferences that are not known about. This hook is used by extensions that have dynamically-named preferences that should not be deleted in the usual cleanup process. For example, the Gadgets extension creates preferences prefixed with 'gadget-', and so anything with that prefix is excluded from the deletion.

Arguments[edit]

  • &where: An array that will be passed as the $cond parameter to IDatabase::select() to determine what will be deleted from the user_properties table.
  • $db: The IDatabase object, useful for accessing $db->buildLike() etc.

Example[edit]

To prevent the deletion of any preference whose name ends in -custom-pref:

namespace MediaWiki\Extension\MyExtension;
class MyExtensionHooks {
	public static function onDeleteUnknownPreferences( &$where, \Wikimedia\Rdbms\IDatabase $db ) {
		$where[] = 'up_property NOT ' . $db->buildLike( $db->anyString(), '-custom-pref' );
	}
}