Manual:User preferences

Other languages:
English • ‎Türkçe • ‎español • ‎français • ‎中文 • ‎日本語

Retrieving user preferencesEdit

To retrieve all of a user's preferences, use User::getOptions().

To retrieve a specific preference of a user, use User::getOption() with the name of the preference as a parameter, for example:

$emailFrequency = $this->getUser()->getOption( 'echo-email-frequency' );

If the preference is of the multiselect or checkmatrix type, the parameter will be <preference-name><option-value>...</option-value>. For example, if the preference name is 'searchNs' and the option value is '2', the parameter for getOption will be 'searchNs2'. There is an exception to this, however: If the preference specifies an explicit option prefix, that prefix will be used instead of the preference name (<prefix-name><option-name>). See the Gadgets extension for an example.

To retrieve it in JavaScript, use the user.options module.

Setting default preferencesEdit

For information about how to set default preferences for all users, see Manual:$wgDefaultUserOptions .

Changing a preferenceEdit

Preferences can be changed through the Options API action.

Creating a preferences interfaceEdit

For information about creating a preferences interface for your features, see Manual:Hooks/GetPreferences .

Gadget and user script preferencesEdit

Any gadget or user script can define a preference, the name of which must start with 'userjs-'. Such a preference will not appear in Special:Preferences or in API:Userinfo responses, and it will not be validated. It can be read from user.options, and set through API:Options.

Hidden API preferencesEdit

API preferences are also defined through the GetPreferences hook, with the type set to 'api'. They are validated and readable the normal ways, but are not part of the Special:Preferences form.

Disabling user preferencesEdit

By preferenceEdit

MediaWiki version:

To disable individual preferences for all users, add preference names to the $wgHiddenPrefs configuration variable. For example, to prevent everyone from being able to mark their edits minor by default, set the following in your LocalSettings.php:

$wgHiddenPrefs[] = 'minordefault';

By user groupEdit

MediaWiki version:

To prevent individual user groups from editing their preferences, you can use the 'editmyoptions' user right. With this line in your LocalSettings.php, users in the group 'user' (which contains all logged in users) can't edit their user preferences:

$wgGroupPermissions['user']['editmyoptions'] = false;

By userEdit

It is not possible to disable only certain individual users' preferences.

See alsoEdit