Manual:Hooks/GetPreferences

Example
In :

In :

Tabs and sections
The   array key specifies which tab and section of  contains your preferences. If your   value is foo/bar, this means your preference will appear on the foo tab (named by system message  ) within the bar section (named by system message  ). If no such tab or section exists, it is created automatically.

Visible types
The type can take on various values found in class   in the file , including info, multiselect, radio, etc.

API preferences
API preferences use type 'api'. They are not displayed in Special:Preferences.

Default preferences
To set the default value for a preference (i.e. the value that is set for a new user that hasn't customized their preferences yet), add the setting to the  global variable. Use the same key name as you use for $preferences in the hook.

Alternatively, if you're writing an extension, you can add to the DefaultUserOptions section of the file extensions.json.