Manual:Extension.json/Schema/ar
ملف ميدياويكي: extension.schema.v2.json | |
---|---|
الموقع: | docs/ |
النص المصدري: | master • 1.42.3 • 1.41.4 • 1.39.10 |
الفئات: | البحث عن الكود المصدري • البحث عن التوثيق |
This page documents the schema used by extension.json . All fields are optional unless otherwise specified. حاليا هو غير كامل.
For the first iteration of this schema see docs/extension.schema.v1.json (MW 1.25+), for the second see docs/extension.schema.v2.json (MW 1.29+).
manifest_version
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 212239 |
This field is required.
This specifies the version of the extension.json
file format that is being used.
In the future if breaking changes are made to the file format, this number will be incremented to continue supporting extensions using the older format.
Currently the following values are supported:
1
: 1.25+2
: 1.29+
v2 provides stronger developer validation features, and is recommended if your extension already requires MediaWiki 1.29+.
It is not recommended to break MediaWiki compatibility with older versions just to upgrade to a newer manifest_version
.
Currently new features are added to both v1 and v2, but it has been proposed to freeze and soft deprecate v1 in the MediaWiki 1.38 release (discuss on Phabricator).
Example:
{
"manifest_version": 2
}
extension.json
files.name
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
This field is required.
This is the extension's canonical name.
It should not be changed once set, as it is used as an API for other extensions to detect what is installed.
The name
field does not have to match an extension's directory name nor the name of its page in the Extension namespace on MediaWiki.org.
{
"name": "FooBar"
}
namemsg
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
A localized version of the extension's name. Typically the message key is named in the format <name>-extensionname or <name>-skinname.
{
"namemsg": "foobar-extensionname"
}
type
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
The type of extension it is, for sorting on Special:Version. The following types are supported:
api
– API extensionsantispam
– antispam extensionseditor
– extensions for editing content (since 1.31, git #8de95844)media
– media handlersparserhook
– extensions that modify, add or replace functionality in the MediaWiki parserskin
– extensions that modify skinsspecialpage
– extensions that add special pagesvariable
– make a new variableother
– does something else
Custom types can be added by using the ExtensionTypes hook. Known ones include:
semantic
— Semantic MediaWiki extensionswikibase
— Wikibase extensions
If not set, the extension will default to the "other" section, and if set to an invalid value the extension will not appear on Special:Version.
{
"type": "specialpage"
}
author
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
The authors of the extension, may contain wikitext.
This can either be a single string, or an array of strings.
Additionally, the special string ...
may be used to add a generic "آخرون" suffix using the version-poweredby-others
message.
version
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
The current version of the extension. Should be in a format supported by Composer.
url
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
URL to the extension's "homepage" or documentation. Typically points to https://www.mediawiki.org/wiki/Extension:<extensionname>
.
description
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
Description of the extension, may contain wikitext.
descriptionmsg
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
Localization message key for the extension's description, typically in the format <extensionname>-desc. This will override description.
license-name
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
The SPDX license identifier for the license the source code is licensed as.
If you create a file named COPYING
or LICENSE
(with an optional .txt
extension) in the extension root directory with the contents of the license, it will also be linked and visible from Special:Version.
requires
إصدار ميدياويكي: | ≥ 1.26 Gerrit change 210856 |
إصدار ميدياويكي: | ≥ 1.29 Gerrit change 250060 |
The requires section allows you to document dependencies on versions of MediaWiki core (1.26+) and other extensions (1.29+).
{
"requires": {
"MediaWiki": ">= 1.27.0",
"extensions": {
"FooBar": "*",
"Baz": ">= 1.2.3"
}
}
}
You can use any version specifier that composer supports.
For MediaWiki, it is best practice to specify a >=
for the minimum supported version, unless you know a future version is explicitly broken.
For extensions, if they don't have a version specifier set, or don't use a versioning system, use a plain *
to indicate any version is acceptable.
If your extension uses Wikimedia Continuous integration, you also need to add extension dependencies to zuul/parameter_functions.py in the integration/config
project.
platform
إصدار ميدياويكي: | ≥ 1.32 Gerrit change 458940 |
إصدار ميدياويكي: | ≥ 1.32 Gerrit change 462596 |
You can also express a dependency on platform settings, currently limited to PHP version and PHP extensions. Note that most extensions are expected to follow the PHP version requirements for the versions of MediaWiki core they support, and specifying a more restrictive PHP version contraint should only be done in exceptional cases. Checking for PHP extension versions isn't supported right now.
{
"requires": {
"MediaWiki": ">= 1.32.0",
"platform": {
"php": ">= 7.1",
"ext-curl": "*"
}
}
}
In this example, the extension requires 1.32 (which has a minimum requirement of PHP 7.0), and additionally expresses that it needs a higher dependency of at least PHP 7.1 since it requires usage of some newer PHP feature. Furthermore, it required the curl PHP extension to be installed.
suggests
إصدار ميدياويكي: | ≥ 1.39 Gerrit change 591897 |
Allows listing suggested but not required dependencies.
The format is identical to requires
.
ResourceFileModulePaths
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 188996 |
Specifies the default paths to use for all ResourceLoader file modules.
The allowed properties are:
localBasePath
remoteExtPath
- must not point to other extension foldersremoteSkinPath
These correspond to the same options in each module definition in ResourceModules
.
If a value is not specified in the module definition, the default value specified here will be used.
{
"ResourceFileModulePaths": {
"localBasePath": "resources",
"remoteExtPath": "FooBar/resources"
}
}
ResourceModules
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
ResourceLoader modules to register.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgResourceModules
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
For guidance, see Developing with ResourceLoader and extension.json
.
ResourceModuleSkinStyles
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 201661 |
ResourceLoader modules for custom skin styles.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgResourceModuleSkinStyles
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
ResourceLoaderSources
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
ResourceLoader sources to register.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgResourceLoaderSources
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
ResourceLoaderLESSVars
إصدارات ميدياويكي: | 1.25 – 1.30 Gerrit change 166705 |
An associative array binding variable names to LESS code snippets representing their values.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgResourceLoaderLESSVars
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
SkinLessImportPaths
إصدار ميدياويكي: | ≥ 1.36 Gerrit change 434211 |
Path to the skin-specific LESS import directory, keyed by skin name. Can be used to define skin-specific LESS variables.
QUnitTestModule
إصدار ميدياويكي: | ≥ 1.33 Gerrit change 485247 |
A ResourceLoader file module, to loaded when running JavaScript unit tests. This follows the same syntax as ResourceModules.
Internally, when $wgEnableJavaScriptTest
is true
, this module is automatically registered under the name "test.ExtensionName
".
MessagePosterModule
إصدار ميدياويكي: | ≥ 1.35 Gerrit change 542655 |
Allows extensions to add additional files or dependencies to the mediawiki.messagePoster
module bundle.
This follows the same syntax as ResourceModules.
ConfigRegistry
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
Registry of factory functions to create Config objects.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgConfigRegistry
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
SessionProviders
إصدار ميدياويكي: | ≥ 1.27 Gerrit change 288324 |
Specifies what providers to use for SessionManager.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgSessionProviders
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
AuthManagerAutoConfig
إصدار ميدياويكي: | ≥ 1.27 Gerrit change 195297 |
AuthManager auto-configuration.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgAuthManagerAutoConfig
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
The following properties are available:
preauth
– Pre-authentication providers.primaryauth
– Primary authentication providers.secondaryauth
– Secondary authentication providers.
CentralIdLookupProviders
إصدار ميدياويكي: | ≥ 1.27 Gerrit change 261909 |
Central ID lookup providers.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgCentralIdLookupProviders
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
ChangeCredentialsBlacklist
إصدار ميدياويكي: | ≥ 1.28 Gerrit change 294859 |
AuthenticationRequest classes which can only be used internally for credential change.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgChangeCredentialsBlacklist
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
RemoveCredentialsBlacklist
إصدار ميدياويكي: | ≥ 1.28 Gerrit change 294859 |
AuthenticationRequest classes which can only be used internally for credential removal.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgRemoveCredentialsBlacklist
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
namespaces
إصدار ميدياويكي: | ≥ 1.25.3 Gerrit change 237973 |
Method to add extra namespaces .
The following properties are available:
Name | Type | Description | Default |
---|---|---|---|
id
|
integer | The numeric identifier of the namespace, as used in the database. Since MW 1.30, the namespace ID can be overwritten locally, by defining the respective constant in LocalSettings.php before loading the extension. Extension code must therefore always use the constant for the namespace ID, and never use the ID as a literal in PHP code. Consider listing your id number used at Extension default namespaces to avoid conflicts with other extensions.
| |
constant
|
string | The name of the constant that the extension code uses to refer to the namespace ID. | |
name
|
string | The name of the namespace, as used in titles. | |
gender
|
Gender object | Properties are either "male" or "female". See gender support. | |
subpages
|
Boolean | See Manual:$wgNamespacesWithSubpages . | false
|
content
|
Boolean | See Manual:$wgContentNamespaces . | false
|
defaultcontentmodel
|
string | See ContentHandler . | |
protection
|
array or string | Userright(s) required to edit in this namespace. | |
capitallinkoverride
|
Boolean | Set $wgCapitalLinks on a per-namespace basis. | |
conditional
|
Boolean | Whether the namespace is conditional upon configuration and should not be registered (requires separate registration via a hook such as CanonicalNamespaces ). | false
|
movable
|
Boolean | Whether it is possible to move pages in this namespace. (أضيف في 1.35.2) | true
|
TrackingCategories
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
Tracking category message keys.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgTrackingCategories
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
DefaultUserOptions
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgDefaultUserOptions
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
"DefaultUserOptions": {
"math": "png"
},
HiddenPrefs
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
Preferences users cannot set.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgHiddenPrefs
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
GroupPermissions
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
Default permissions to give to user groups.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgGroupPermissions
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
PrivilegedGroups
إصدار ميدياويكي: | ≥ 1.41 Gerrit change 954742 |
User groups that should be considered privileged.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgPrivilegedGroups
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
RevokePermissions
إصدار ميدياويكي: | ≥ 1.25 Gerrit change 166705 |
Default permissions to revoke from user groups.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgRevokePermissions
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
GrantPermissions
Map of permissions granted to authorized consumers to their bundles, called 'grants.'
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgGrantPermissions
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
GrantPermissionGroups
Map of grants to their UI grouping.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgGrantPermissionGroups
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
ImplicitGroups
Implicit groups.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgImplicitGroups
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
GroupsAddToSelf
Groups a user can add to themselves.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgGroupsAddToSelf
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
GroupsRemoveFromSelf
Groups a user can remove from themselves.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgGroupsRemoveFromSelf
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
AddGroups
Groups a user can add to users.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgAddGroups
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
RemoveGroups
Groups a user can remove from users.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgRemoveGroups
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
AvailableRights
User rights added by the extension.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgAvailableRights
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
ContentHandlers
Mapping of Model ID to class name.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgContentHandlers
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
RateLimits
Simple rate limiter options to brake edit floods.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgRateLimits
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
RecentChangesFlags
Flags (letter symbols) shown in recent changes and watchlist to indicate certain types of edits.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgRecentChangesFlags
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
MediaHandlers
Plugins for media file type handling. Each entry in the array map maps a MIME type to a PHP class name.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgMediaHandlers
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
ExtensionFunctions
Function to call after setup has finished.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgExtensionFunctions
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
Note that extension functions cannot be used to programmatically update configuration variables or register hooks.
For that purpose, a registration callback should be used instead.
ExtensionMessagesFiles
File paths containing PHP internationalization files for magic words (including parser functions), special page aliases , and/or namespace names .
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgExtensionMessagesFiles
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
MessagesDirs
Directory paths containing JSON internationalization data.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgMessagesDirs
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
If you use the default directory layout with localized messages in the i18n/
directory, you can specify:
"MessagesDirs": {
"ExtensionName": [
"i18n"
]
},
ExtensionEntryPointListFiles
Array of files with list(s) of extension entry points to be used in maintenance/mergeMessageFileList.php
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgExtensionEntryPointListFiles
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
SpecialPages
SpecialPages implemented in this extension (mapping of page name to class name).
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgSpecialPages
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
AutoloadClasses
Array mapping class names to filenames, for autoloading.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgAutoloadClasses
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
Example:
{
...
"AutoloadClasses": {
"MyClassName": "includes/FileContainingMyClassName.php",
"SomeNamespace\\SpecialHelloWorld": "specials/SpecialHelloWorld.php"
},
...
}
AutoloadNamespaces
إصدار ميدياويكي: | ≥ 1.31 Gerrit change 373626 |
Array containing mapping of namespaces to directories in a PSR-4 compatible manner. Here's an example:
{
"AutoloadNamespaces": {
"MediaWiki\\Extension\\BetaFeatures\\": "includes/"
}
}
In this case all of the PHP classes are under the MediaWiki\Extension\BetaFeatures\
namespace, and the naming of the classes directly maps to the files located in the includes/
directory (relative to the extension.json file).
Note that the namespace portion must end with \\
.
Extensions using this feature should require at least MediaWiki 1.31 in extension.json
file:
{
"requires": {
"MediaWiki": ">= 1.31.0"
},
}
For example, see Gerrit change 468385.
TestAutoloadClasses and TestAutoloadNamespaces
إصدار ميدياويكي: | ≥ 1.35 Gerrit change 556181 |
Both are the same as AutoloadClasses and AutoloadNamespaces, except that they are only used when running tests.
For example, see Gerrit change 556240.
Hooks
Hooks this extension uses (mapping of hook name to callback).
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgHooks
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
{
"Hooks": {
"ParserFirstCallInit": "MassMessageHooks::onParserFirstCallInit"
}
}
It's possible to register multiple callbacks for the same hook event:
{
"Hooks": {
"ParserFirstCallInit": [
"MassMessageHooks::onParserFirstCallInitOne",
"MassMessageHooks::onParserFirstCallInitTwo"
]
}
}
HookHandlers
إصدار ميدياويكي: | ≥ 1.35 Gerrit change 596914 |
ObjectFactory specifications for new-style hook handlers.
{
"Hooks": {
"BeforePageDisplay": "main"
},
"HookHandlers": {
"main": {
"class": "MediaWiki\\Extension\\MyExtension\\HookHandler",
"services": [ "UserNameUtils" ]
}
}
}
There is a difference with the previous approach in that:
- Your HookHandler must import the hooks with the
use
keyword. - The HookHandler class must also
implement
them. - The functions using those hooks in your HookHandler class cannot be called statically, i.e. are dynamic rather than static.
DeprecatedHooks
إصدار ميدياويكي: | ≥ 1.35 Gerrit change 596914 |
Deprecated hooks (see Stable interface policy).
Maps hook name to an array with deprecatedVersion
(MediaWiki version) and component
(optional, usually omitted).
JobClasses
Job types this extension implements (mapping of job types to class name).
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgJobClasses
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
LogTypes
List of new log types this extension uses.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgLogTypes
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
LogRestrictions
Restricts log access to those who have a certain right.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgLogRestrictions
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
FilterLogTypes
An object.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgFilterLogTypes
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
ActionFilteredLogs
List of log types which can be filtered by log actions.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgActionFilteredLogs
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
LogNames
Lists the message key string for each log type.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgLogNames
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
LogHeaders
Lists the message key string for descriptive text to be shown at the top of each log type.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgLogHeaders
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
LogActions
Lists the message key string for formatting individual events of each type and action when listed in the logs.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgLogActions
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
LogActionsHandlers
Same as $wgLogActions
, but values are functions callbacks.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgLogActionsHandlers
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
Actions
Array of allowed values for the "action" parameter for normal pages.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgActions
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
APIModules
API module extensions.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgAPIModules
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
APIFormatModules
API format module extensions.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgAPIFormatModules
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
APIMetaModules
API Query meta module extensions.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgAPIMetaModules
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
APIPropModules
API Query prop module extensions.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgAPIPropModules
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
APIListModules
API Query list module extensions.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgAPIListModules
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
RestRoutes
إصدار ميدياويكي: | ≥ 1.35 Gerrit change 508972 |
List of route specifications to be added to the REST API. See API:REST API/Extensions.
ValidSkinNames
List of valid skin names. Skins can optionally use this variable to tell MediaWiki that they are available.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgValidSkinNames
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
FeedClasses
Available feed objects.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgFeedClasses
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
SkinOOUIThemes
Map of skin names to OOUI themes to use.
{
"SkinOOUIThemes": {
"yourskinname": "Apex"
}
}
OOUIThemePaths
Map of custom OOUI theme names to paths to load them from.
{
"OOUIThemePaths": {
"YourTheme": {
"scripts": "resources/ooui/oojs-ui-yourtheme.js",
"styles": "resources/ooui/oojs-ui-{module}-yourtheme.css",
"images": "resources/ooui/{module}.json"
}
},
}
- scripts
- Path to script file.
- styles
- Path to style files.
{module}
will be replaced with the module's name. - images
- Path to image definition files.
{module}
will be replaced with the module's name. If the files don't exist, default theme's images will be used instead.
PasswordPolicy
Password policies.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgPasswordPolicy
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
FileExtensions
Preferred file extensions for uploading.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgFileExtensions
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
RawHtmlMessages
List of messages which might contain raw HTML.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgRawHtmlMessages
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
LateJSConfigVarNames
Names of JS config vars (as used in MakeGlobalVariablesScript hook or in ParserOutput::setJsConfigVar ) that may be set from the end of the HTML body instead of the HTML head, to improve page load time.
In JavaScript, these variables should be accessed via mw.hook( 'wikipage.content' )
.
DatabaseVirtualDomains
Names of virtual domains that are used to get a db connection.
See $wgVirtualDomainsMapping
.
ReauthenticateTime
Time frame for re-authentication.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgReauthenticateTime
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
ForeignResourcesDir
إصدار ميدياويكي: | ≥ 1.41 Gerrit change 911307 |
Directory containing the extension's foreign resources (and the foreign-resources.yaml
file defining them). Should be given relative to the extension root.
callback
Sometimes extensions need to do non-standard things during registration, or are just very complex.
You can specify a callback
key in your extension.json if you need to execute some PHP code.
The value should be set to a valid PHP callable, for example: FooBarHooks::onRegistration
.
ExtensionRegistry will execute this callback after it processes the extension.json file and sets all the other globals and configuration settings.
This happens after LocalSettings, so all user-specified configuration is available, but some defaults set by MediaWiki might not have been initialized yet.
{
"callback": "FooBarHooks::onRegistration"
}
The callback is provided with two parameters, an array containing information about the extension (a subset of extension.json) and an instance of SettingsBuilder MW 1.40+.
The callback isn't a normal hook function, it runs in early initialization. See Manual:Extension registration/Limitations for what sort of things may require custom registration.
Registration callbacks are the preferred way for extensions to dynamically set configuration.
This should be done through the SettingsBuilder
object passed to callback, using the getConfig()
and overrideConfigValue()
methods.
Registration callbacks do not have access to service objects via MediaWikiServices
, and cannot make use of the main RequestContext
.
Neither has been initialized at the time the callback is executed.
Extensions that need to access the request context or interact with a service object during initialization should register an ExtensionFunction instead.
config
إصدار ميدياويكي: | ≥ 1.25 |
The config section is where you can define configuration settings that sysadmins can change to configure the extension. This section should only be used for things that are configured in LocalSettings.php - if it is supposed to be modified by other extensions, you should use attributes, or if it is just class metadata, use a private static variable or something like that. The format of config changed in manifest_version 2.
Manifest version 1
A simple example:
{
"config": {
"FooBarUseExtraFeature": false
}
}
This is equivalent to writing $wgFooBarUseExtraFeature = false;
in PHP.
Note that the typical "wg" prefix is not included, as that will be added by default.
If your settings start with a different prefix like $eg
, you can use the magic _prefix
key:
{
"config": {
"_prefix": "eg",
"FooBarUseExtraFeature": false
}
}
This is now equivalent to writing $egFooBarUseExtraFeature = false;
in PHP.
A more complex example:
{
"config": {
"FooBarEnabledNamespaces": {
"0": true,
"2": true,
"4": true,
"_merge_strategy": "array_plus"
},
"FooBarCoolStuff": {
"sysop": {
"foo": true,
"bar": false
},
"_merge_strategy": "array_plus_2d"
}
}
}
The first setting, $wgFooBarEnabledNamespaces
, has keys that are numbers, so PHP will turn them into integers, even though they are strings in JSON.
Because of how PHP treats integer keys when merging arrays, we need to use a different type of merge here, so we set a different "merge strategy" using the magic key.
In the second example, we have a nested array, which requires a different type of merging, since we want to allow people to continue writing $wgFooBarCoolStuff['user']['foo'] = true;
in their LocalSettings.php.
Changes in manifest version 2
إصدار ميدياويكي: | ≥ 1.29 |
With MediaWiki 1.29, a new manifest_version (2) was introduced. In this version, the config section is improved in several ways. To support these changes, the signature of a set of configuration option and configuration value changed a bit. The key of the config object is still the configuration name; however, the value of that key is an object, which describes this configuration option, where one of the values is the value. You can find information about what the specific keys and values for a configuration option are on the extension registration documentation page. An easy example of the new schema, which simply is one configuration option and its value, would look like:
{
"config": {
"FooBarUseExtraFeature": {
"value": false
}
},
"manifest_version": 2
}
A more complex one would look like:
{
"config_prefix": "eg",
"config": {
"MyExtSetting": {
"value": true,
"path": false,
"description": "The description for the configuration",
"descriptionmsg": "myextension-config-myextsetting",
"public": true
},
"FooBarCoolStuff": {
"value": {
"sysop": {
"foo": true,
"bar": false
}
},
"merge_strategy": "array_plus_2d"
}
},
"manifest_version": 2
}
path
As demonstrated in the example above, a configuration option can have the path
key defined.
When present and set to true
, the value of the setting will be interpreted as a path local to the extension.
For example, an extension might define its configuration as
{
"config": {
"Setting": {
"value": "some_file.txt",
"path": true
}
},
"manifest_version": 2
}
The value for the configuration option "Setting" will be resolved to $wgExtensionDirectory/FooBar/some_file.txt
.
merge strategy
The merge strategy defines how to merge the default value of the configuration setting with the global value (the value of the $wgXXX
global variable).
This only makes sense for array-valued configuration settings.
The following merge strategies are available:
array_merge
– Uses thearray_merge
PHP command: array elements with numeric keys will be interpreted as non-associative list items and concatenated to the array (with the keys renumbered if needed), array elements with non-numeric keys will be interpreted as hashmap items and overwrite items with the same key.array_plus
– Uses the+
PHP operator, so fields of the default value will only be used when the corresponding field is not set in the global value. This is useful for associative arrays with integer keys (such as namespace IDs).array_plus_2d
– UseswfArrayPlus2d
to handles nested arrays to a depth of 2 properly (e.g.$wgGroupPermissions
).array_merge_recursive
– Handles arrays even deeper than 2 witharray_merge_recursive
. Given the unintuitive behavior of this method (example), this strategy is not recommended. A configuration setting that is more than 2 levels deep suggests too many things are being configured in one setting, and splitting it into multiple settings might be a good idea.array_replace_recursive
– Usesarray_replace_recursive
, basically the recursive version ofarray_plus
. Unlikearray_merge_recursive
, this will handle non-array fields the way one would expect.provide_default
(since MW 1.35.3) – no merging; the default will only be used when no global value is set.
When not explicitly set, the merge strategy defaults to array_merge
.
When at least one of the global value and the default is not an array, the merge strategy is ignored and the global value will simply override the default.
config_prefix
إصدار ميدياويكي: | ≥ 1.28 |
Prefix to put in front of configuration settings when exporting them to $GLOBALS
.
The default is "wg"
, so a configuration setting "Example"
corresponds to a PHP global $wgExample
.
Note that choosing a different config prefix can make it more difficult to find the extension setting corresponding to a given global.
ParsoidModules
إصدار ميدياويكي: | ≥ 1.35 Gerrit change 597639 |
An array of Parsoid extension module specifiers. A Parsoid extension module is a class implementing Wikimedia\Parsoid\Ext\ExtensionModule
There are three ways in which a Parsoid extension module can be specified:
- A direct reference to the class implementing the ExtensionModule class (which is part of Parsoid-PHP, not MediaWiki core). For an example, see the Kartographer extension.
- An equivalent ObjectFactory representation in JSON. For an example, see the Cite extension.
- A Parsoid-specific module specification.
ParserTestFiles
متقادم: هذه السمة متقادمة ويجب ألا تستخدم بعد الآن، إلا أنها لا تزال متاحة لأسباب التوافق مع إصدارات سابقة. |
Parser test suite files to be run by parserTests.php when no specific filename is passed to it.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgParserTestFiles
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
ServiceWiringFiles
Array of filenames of service wiring files to be loaded by the default instance of MediaWikiServices.
يرتبط هذا الخيار مباشرة بالمتغير العمومي $wgServiceWiringFiles
.
يرجى الرجوع إلى التوثيق هناك كي تتعرف على كيفية ضبطه.
attributes
Registration information for other extensions. This allows one extension to register things with other extensions. Attribute values must be JSON arrays or objects, and they will be merged together when retrieved in PHP.
In manifest_version 1 these were top level keys that could be arbitrarily named:
"EventLoggingSchemas": {
"MySchema": 123
}
In manifest_version 2, these are now under the top level attributes
key, and then nested under the extension name that the attribute belongs towards.
The full attribute name is the concatenation of the extension name and attribute name (EventLoggingSchemas
in the example below).
Each key set directly under attributes
must match the extension name (arbitrary top-level attribute keys are not supported).
If an extension (EventLogging in this example) is not installed, the attributes won't be loaded into the registry.
"attributes": {
"EventLogging": {
"Schemas": {
"MySchema": 123
}
}
}
To access the value of an attribute in PHP, you can use the ExtensionRegistry:
$schemas = ExtensionRegistry::getInstance()->getAttribute( 'EventLoggingSchemas' );
load_composer_autoloader
Load the composer autoloader for this extension, if one is present.
This should be used if the extension has dependencies on libraries that are specified in composer.json
.
It is basically equivalent to the following code:
if ( file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
require_once __DIR__ . '/vendor/autoload.php';
}