Manuel:Extension.json/Schéma

This page is a translated version of the page Manual:Extension.json/Schema and the translation is 92% complete.
Outdated translations are marked like this.

Cette page documente le schéma utilisé par extension.json . Tous les champs sont optionnels sauf contre-indication. Il est actuellement incomplet.

Pour la première version de ce schéma voir docs/extension.schema.v1.json (MW 1.25+), pour la seconde version voir docs/extension.schema.v2.json (MW 1.29+).

manifest_version

Version de MediaWiki :
1.25
Gerrit change 212239

Ce champ est obligatoire.

Ceci spécifie la version du format de fichier extension.json qui sera utilisé. A l'avenir, si des modifications viennent à changer le format du fichier, ce nombre sera incrémenté pour continuer à prendre en charge les extensions qui utilisent l'ancien format.

Actuellement les valeurs suivantes sont acceptées :

  • 1: 1.25+
  • 2: 1.29+

v2 fournit des fonctionnalités de validation plus fortes pour le développeur, et elle est recommandée si votre extension nécessite déjà MediaWiki 1.29+. Il est recommandé de supprimer la compatibilité avec les anciennes versions, simplement pour forcer la mise à jour vers un nouveau manifest_version.

Actuellement de nouvelles fonctionnalités sont ajoutées dans v1 et v2, mais il a été demandé de geler v1 et de le rendre obsolète dans la version MediaWiki 1.38 (discussion sur Phabricator).

Exemple :

{
	"manifest_version": 2
}
Ce champ est typiquement placé à la fin des fichiers extension.json .

name

Version de MediaWiki :
1.25
Gerrit change 166705

Ce champ est obligatoire.

Il s'agit du nom canonique de l'extension. Il ne doit pas être modifié une fois qu'il a été défini parce qu'il est utilisé comme API pour que les autres extensions puissent détecter qu'elle a été installée. Le champ name ne doit pas forcément correspondre au nom du répertoire d'une extension ni au nom de sa page dans l'espace de noms Extension de MediaWiki.org.

{
	"name": "FooBar"
}

namemsg

Version de MediaWiki :
1.25
Gerrit change 166705

Version traduite du nom de l'extension. Typiquement la clé du message est nommée selon le format <name>-nomDeLextension ou <name>-nomDeLhabillage.

{
	"namemsg": "foobar-extensionname"
}

type

Version de MediaWiki :
1.25
Gerrit change 166705

Type de l'extension, sert à trier sur Special:Version. Les types suivants sont acceptés :

Vous pouvez ajouter des types personnalisés en utilisant l'accroche ExtensionTypes . Les valeurs connues comprennent :

Si non initialisé, l'extension est affectée à la section other, et si la valeur assignée est non valide l'extension n'apparaîtra pas dans Special:Version.

{
	"type": "specialpage"
}

author

Version de MediaWiki :
1.25
Gerrit change 166705

Auteurs de l'extension, peut contenir du texte wiki. Ceci peut être soit une chaîne unique, soit un tableau de chaînes. En plus, la chaîne spéciale ... peut être utilisée pour ajouter un suffixe générique « autres » en utilisant le message version-poweredby-others .

version

Version de MediaWiki :
1.25
Gerrit change 166705

Version actuelle de l'extension. Doit être dans un format pris en charge par Composer.

url

Version de MediaWiki :
1.25
Gerrit change 166705

URL de la page d'accueil de l'extension ou la documentation. Pointe typiquement vers https://www.mediawiki.org/wiki/Extension:<extensionname>.

description

Version de MediaWiki :
1.25
Gerrit change 166705

Description de l'extension, peut contenir du wikicode.

  Note : Il est recommandé d'utiliser descriptionmsg à la place.

descriptionmsg

Version de MediaWiki :
1.25
Gerrit change 166705

Clé du message traduit correspondant à la description de l'extension, typiquement dans le format <extensionname>-desc. Ceci prévaut sur description.

license-name

Version de MediaWiki :
1.25
Gerrit change 166705

Identifiant de la licence SPDX (Software Package Data Exchange) du code source. Si vous créez un fichier COPYING ou LICENSE (avec une extension facultative .txt) dans le répertoire racine de l'extension avec le contenu de la licence, il sera aussi lié et visible de Special:Version.

requires

Version de MediaWiki :
1.26
Gerrit change 210856
Version de MediaWiki :
1.29
Gerrit change 250060

La section requires vous permet de documenter les dépendances sur les versions du noyau MediaWiki (1.26+) et des autres extensions (1.29+).

{
	"requires": {
		"MediaWiki": ">= 1.27.0",
		"extensions": {
			"FooBar": "*",
			"Baz": ">= 1.2.3"
		}
	}
}

Vous pouvez utiliser tout format de version accepté par Composer. Pour MediaWiki, la meilleure méthode est de spécifier >= pour la version minimale prise en charge, sauf si vous connaissez d'avance la version où cela ne sera plus vrai. Pour les extensions, si elles ne disposent pas d'un indicateur de version initialisé, ou si elles n'utilisent pas de système de gestion des versions, mettre une étoile * pour indiquer que toutes les versions sont acceptées.

Si votre extension utilise l'intégration continue de Wikimedia , vous devez aussi ajouter ses dépendances à zuul/parameter_functions.py dans le projet integration/config.

platform

Version de MediaWiki :
1.32
Gerrit change 458940
Version de MediaWiki :
1.32
Gerrit change 462596

Vous pouvez aussi exprimer la dépendance entre les paramètres d'une plateforme, elle est actuellement limitée aux versions et aux extensions PHP. Notez que la plupart des extensions sont supposées suivre les contraintes de version PHP pour les versions du noyau MediaWiki qu'elles supportent, et que vous ne pouvez spécifier de contrainte plus restrictive sur la version PHP que dans les cas exceptionnels. La vérification de la version des extensions PHP n'est pas encore prise en charge.

{
	"requires": {
		"MediaWiki": ">= 1.32.0",
		"platform": {
			"php": ">= 7.1",
			"ext-curl": "*"
		}
	}
}

Dans cet exemple, l'extension nécessite la version 1.32 (qui demande PHP 7.0+), et ajoute clairement que la dépendance doit être faite avec une version PHP 7.1+ car elle nécessite certaines fonctionnalités plus récentes de PHP. De plus il faut que l'extension PHP curl soit installée.

suggests

Version de MediaWiki :
1.39
Gerrit change 591897

Permet d'afficher la liste des dépendances suggérées mais pas celles qui sont nécessaires. Le format est identique à requires.

ResourceFileModulePaths

Version de MediaWiki :
1.25
Gerrit change 188996

Chemins par défaut à utiliser pour tous les modules des fichiers ResourceLoader.

Les propriétés autorisées sont :

  • localBasePath
  • remoteExtPath - must not point to other extension folders
  • remoteSkinPath

Il s'agit des mêmes options pour chacune des définitions de module de ResourceModules. Si une valeur n'est pas spécifiée dans la définition du module, c'est la valeur par défaut indiquée ici qui est utilisée.

{
	"ResourceFileModulePaths": {
		"localBasePath": "resources",
		"remoteExtPath": "FooBar/resources"
	}
}

ResourceModules

Version de MediaWiki :
1.25
Gerrit change 166705

Modules du ResourceLoader à enregistrer.

Cette option correspond directement à la variable globale $wgResourceModules . Veuillez lire la documentation correspondante sur la manière de la configurer.


Pour les détails, voir Développer avec ResourceLoader et Extension.json.

ResourceModuleSkinStyles

Version de MediaWiki :
1.25
Gerrit change 201661

Modules du ResourceLoader pour les styles des habillages personnalisés.

Cette option correspond directement à la variable globale $wgResourceModuleSkinStyles . Veuillez lire la documentation correspondante sur la manière de la configurer.


ResourceLoaderSources

Version de MediaWiki :
1.25
Gerrit change 166705

Sources du ResourceLoader à enregistrer.

Cette option correspond directement à la variable globale $wgResourceLoaderSources . Veuillez lire la documentation correspondante sur la manière de la configurer.


ResourceLoaderLESSVars

Versions de MediaWiki :
1.25 – 1.30
Gerrit change 166705

Tableau associatif qui lie les noms de variables à des portions de code LESS représentant leurs valeurs.

Cette option correspond directement à la variable globale $wgResourceLoaderLESSVars . Veuillez lire la documentation correspondante sur la manière de la configurer.


SkinLessImportPaths

Version de MediaWiki :
1.36
Gerrit change 434211

Chemin du répertoire d'import LESS propre à l'habillage, la clé étant le nom de cet habillage. Peut être utilisé pour définir les variables LESS propres à l'habillage.

QUnitTestModule

Version de MediaWiki :
1.33
Gerrit change 485247

Module de fichier ResourceLoader à charger lors de l'exécution des tests unitaires JavaScript. A la même syntaxe que ResourceModules.

En interne, quand $wgEnableJavaScriptTest vaut true, ce module est automatiquement enregistré sous le nom test.ExtensionName.

MessagePosterModule

Version de MediaWiki :
1.35
Gerrit change 542655

Permet aux extensions d'ajouter des fichiers supplémentaires ou des dépendances au paquet du module mediawiki.messagePoster. A la même syntaxe que ResourceModules.

ConfigRegistry

Version de MediaWiki :
1.25
Gerrit change 166705

Registre des fonctions d'usine pour créer les objets Config.

Cette option correspond directement à la variable globale $wgConfigRegistry . Veuillez lire la documentation correspondante sur la manière de la configurer.


SessionProviders

Version de MediaWiki :
1.27
Gerrit change 288324

Indique les fournisseurs à utiliser pour SessionManager.

Cette option correspond directement à la variable globale $wgSessionProviders . Veuillez lire la documentation correspondante sur la manière de la configurer.


AuthManagerAutoConfig

Version de MediaWiki :
1.27
Gerrit change 195297

Configuration automatique pour AuthManager.

Cette option correspond directement à la variable globale $wgAuthManagerAutoConfig . Veuillez lire la documentation correspondante sur la manière de la configurer.


Les propriétés suivantes sont disponibles :

  • preauth – Fournisseurs de pré-authentification.
  • primaryauth – Fournisseurs d'authentification primaire.
  • secondaryauth – Fournisseurs d'authentification secondaire.

CentralIdLookupProviders

Version de MediaWiki :
1.27
Gerrit change 261909

Fournisseurs de recherche Central ID.

Cette option correspond directement à la variable globale $wgCentralIdLookupProviders . Veuillez lire la documentation correspondante sur la manière de la configurer.


ChangeCredentialsBlacklist

Version de MediaWiki :
1.28
Gerrit change 294859

Classes AuthenticationRequest à usage exclusivement interne pour la modification des données de connexion.

Cette option correspond directement à la variable globale $wgChangeCredentialsBlacklist . Veuillez lire la documentation correspondante sur la manière de la configurer.


RemoveCredentialsBlacklist

Version de MediaWiki :
1.28
Gerrit change 294859

Classes AuthenticationRequest à usage exclusivement interne pour la suppression des données de connexion.

Cette option correspond directement à la variable globale $wgRemoveCredentialsBlacklist . Veuillez lire la documentation correspondante sur la manière de la configurer.


namespaces

Version de MediaWiki :
1.25.3
Gerrit change 237973

Méthode pour ajouter des espaces de noms supplémentaires .

Les propriétés suivantes sont disponibles :

Name Type Description Default
id Nombre entier. Identifiant numérique de l'espace de noms, tel qu'il est utilisé dans la base de données. Depuis MediaWiki 1.30, les IDs des espaces de noms peuvent être remplacés localement, en définissant la constante respective dans LocalSettings.php avant de charger l'extension. C'est pourquoi le code des extensions doit toujours utiliser la constante de l'ID de l'espace de noms et jamais l'ID en tant que littéral dans le code PHP. Faites en sorte que le numéro utilisé pour votre ID figure dans l'espace de noms par défaut des extensions pour éviter les conflits avec les autres extensions.
constant Chaîne de caractères. Nom de la constante utilisée par le code de l'extension quand il référence l'ID de l'espace de noms.
name Chaîne de caractères. Nom de l'espace de noms, tel qu'utilisé dans les titres. The name of the namespace, as used in titles.
gender Objet Gender. Les propriétés sont soit male soit female. Voir la prise en charge du gendre.
subpages Booléen. Voir Manuel:$wgNamespaceWithSubpages . false
content Booléen. Voir Manuel:$wgContentNamespaces . false
defaultcontentmodel Chaîne de caractères. Voir ContentHandler .
protection Tableau ou chaîne de caractères. Droits utilisateur nécessaires pour modifier cet espace de noms.
capitallinkoverride Booléen. Fixer $wgCapitalLinks avec une valeur qui est fonction de l'espace de noms.
conditional Booléen. Indique si l'espace de noms est conditionnel dans la configuration et ne doit pas être enregistré (nécessite un enregistrement séparé via une accroche telle que CanonicalNamespaces ). false
movable Booléen. Indique s'il est possible de renommer des pages dans cet espace de noms. (introduit dans 1.35.2) true

TrackingCategories

Version de MediaWiki :
1.25
Gerrit change 166705

Clés des messages des catégories suivies.

Cette option correspond directement à la variable globale $wgTrackingCategories . Veuillez lire la documentation correspondante sur la manière de la configurer.


DefaultUserOptions

Version de MediaWiki :
1.25
Gerrit change 166705


Cette option correspond directement à la variable globale $wgDefaultUserOptions . Veuillez lire la documentation correspondante sur la manière de la configurer.

	"DefaultUserOptions": {
		"math": "png"
	},

HiddenPrefs

Version de MediaWiki :
1.25
Gerrit change 166705

Préférences que les utilisateurs ne peuvent initialiser.

Cette option correspond directement à la variable globale $wgHiddenPrefs . Veuillez lire la documentation correspondante sur la manière de la configurer.


GroupPermissions

Version de MediaWiki :
1.25
Gerrit change 166705

Droits par défaut à donner aux groupes d'utilisateurs.

Cette option correspond directement à la variable globale $wgGroupPermissions . Veuillez lire la documentation correspondante sur la manière de la configurer.


PrivilegedGroups

Version de MediaWiki :
1.41
Gerrit change 954742

Groupes utilisateur devant être considérés comme privilégiés.

Cette option correspond directement à la variable globale $wgPrivilegedGroups . Veuillez lire la documentation correspondante sur la manière de la configurer.


RevokePermissions

Version de MediaWiki :
1.25
Gerrit change 166705

Droits par défaut à supprimer dans les groupes d'utilisateurs.

Cette option correspond directement à la variable globale $wgRevokePermissions . Veuillez lire la documentation correspondante sur la manière de la configurer.


GrantPermissions

Correspondance des droits attribués aux utilisateurs autorisés sur leur distribution (appelés grants).

Cette option correspond directement à la variable globale $wgGrantPermissions . Veuillez lire la documentation correspondante sur la manière de la configurer.


GrantPermissionGroups

Correspondance des grants (droits) et des groupes d'interfaces utilisateur.

Cette option correspond directement à la variable globale $wgGrantPermissionGroups . Veuillez lire la documentation correspondante sur la manière de la configurer.


ImplicitGroups

Groupes implicites.

Cette option correspond directement à la variable globale $wgImplicitGroups . Veuillez lire la documentation correspondante sur la manière de la configurer.


GroupsAddToSelf

Groupes auxquels l'utilisateur peut s'ajouter lui-même.

Cette option correspond directement à la variable globale $wgGroupsAddToSelf . Veuillez lire la documentation correspondante sur la manière de la configurer.


GroupsRemoveFromSelf

Groupes desquels l'utilisateur peut se retirer lui-même.

Cette option correspond directement à la variable globale $wgGroupsRemoveFromSelf . Veuillez lire la documentation correspondante sur la manière de la configurer.


AddGroups

Groupes que l'utilisateur peut ajouter à d'autres utilisateurs.

Cette option correspond directement à la variable globale $wgAddGroups . Veuillez lire la documentation correspondante sur la manière de la configurer.


RemoveGroups

Groupes qu'un utilisateur peut enlever à d'autres utilisateurs.

Cette option correspond directement à la variable globale $wgRemoveGroups . Veuillez lire la documentation correspondante sur la manière de la configurer.


AvailableRights

Droits utilisateur ajoutés par l'extension.

Cette option correspond directement à la variable globale $wgAvailableRights . Veuillez lire la documentation correspondante sur la manière de la configurer.


ContentHandlers

Correspondance entre l'ID du modèle et le nom de la classe.

Cette option correspond directement à la variable globale $wgContentHandlers . Veuillez lire la documentation correspondante sur la manière de la configurer.


RateLimits

Options simples de limitation du seuil pour interrompre le flux des modifications.

Cette option correspond directement à la variable globale $wgRateLimits . Veuillez lire la documentation correspondante sur la manière de la configurer.


RecentChangesFlags

Marques (symboles littéraux) affichées dans les changements récents et les listes de suivi pour indiquer certains types de modifications.

Cette option correspond directement à la variable globale $wgRecentChangesFlags . Veuillez lire la documentation correspondante sur la manière de la configurer.


MediaHandlers

Greffons pour la gestion du type de fichier de média. Chaque entrée de la cartographie du tableau donne la correspondance entre un type de MIME et le nom d'une classe PHP.

Cette option correspond directement à la variable globale $wgMediaHandlers . Veuillez lire la documentation correspondante sur la manière de la configurer.


ExtensionFunctions

Fonction à appeler après que la configuration est terminée.

Cette option correspond directement à la variable globale $wgExtensionFunctions . Veuillez lire la documentation correspondante sur la manière de la configurer.


Notez que les fonctions de l'extension ne peuvent pas être utilisées pour mettre à jour par programme les paramètres de configuration ou les accroches des registres. Dans ce but, remplacer par un appel à une fonction de rappel enregistrée.

ExtensionMessagesFiles

Chemins des fichiers contenant la traduction internationale de PHP pour les mots magiques (comprenant les fonctions d'analyse syntaxique), les alias des pages spéciales , et (ou) les noms des espaces de noms .

Cette option correspond directement à la variable globale $wgExtensionMessagesFiles . Veuillez lire la documentation correspondante sur la manière de la configurer.


MessagesDirs

Chemins des répertoires contenant les données JSON des traductions internationales.

Cette option correspond directement à la variable globale $wgMessagesDirs . Veuillez lire la documentation correspondante sur la manière de la configurer.


Si vous utilisez la structure par défaut des répertoires avec les messages traduits dans le répertoire i18n/, vous pouvez écrire :

"MessagesDirs": {
	"ExtensionName": [
		"i18n"
	]
},

ExtensionEntryPointListFiles

Tableau des fichiers avec la ou les listes des points d'accès de l'extension à utiliser dans maintenance/mergeMessageFileList.php

Cette option correspond directement à la variable globale $wgExtensionEntryPointListFiles . Veuillez lire la documentation correspondante sur la manière de la configurer.


SpecialPages

Pages spéciales implémentées dans cette extension (correspondance entre le nom de page et le nom de classe).

Cette option correspond directement à la variable globale $wgSpecialPages . Veuillez lire la documentation correspondante sur la manière de la configurer.


AutoloadClasses

Tableau associant les noms des classes aux noms des fichiers, pour l'auto chargement.

Cette option correspond directement à la variable globale $wgAutoloadClasses . Veuillez lire la documentation correspondante sur la manière de la configurer.

Exemple :

{
    ...
    "AutoloadClasses": {
        "MyClassName": "includes/FileContainingMyClassName.php",
        "SomeNamespace\\SpecialHelloWorld": "specials/SpecialHelloWorld.php"
    },
    ...
}

AutoloadNamespaces

Version de MediaWiki :
1.31
Gerrit change 373626

Tableau définissant la correspondance entre les espaces de noms et les répertoires sous une forme compatible PSR-4. Voici un exemple :

{
	"AutoloadNamespaces": {
		"MediaWiki\\Extension\\BetaFeatures\\": "includes/"
	}
}

Dans ce cas, toutes les classes PHP appartiennent à l'espace de noms MediaWiki\Extension\BetaFeatures\, et le nom de la classe correspond directement au fichier se trouvant dans le répertoire includes/ (relativement au fichier extension.json). Notez que la portion de l'espace de noms doit se terminer par \\.

Les extensions qui utilisent cette fonctionnalité doivent mentionner MediaWiki 1.31 (au moins) dans le fichier extension.json :

{
	"requires": {
		"MediaWiki": ">= 1.31.0"
	},
}

Pour l'exemple, voir la modification 468385 de Gerrit.

TestAutoloadClasses et TestAutoloadNamespaces

Version de MediaWiki :
1.35
Gerrit change 556181

Les deux sont similaires à AutoloadClasses et AutoloadNamespaces, sauf qu'ils ne sont utilisés que lors des tests.

Pour l'exemple, voir la modification Gerrit 556240.

Hooks

Accroches utilisées par cette extension (association du nom de l'accroche et de la fonction de rappel).

Cette option correspond directement à la variable globale $wgHooks . Veuillez lire la documentation correspondante sur la manière de la configurer.


{
	"Hooks": {
		"ParserFirstCallInit": "MassMessageHooks::onParserFirstCallInit"
	}
}

Il est possible d'enregistrer plusieurs fonctions de rappel pour le même événement d'accroche :

{
	"Hooks": {
		"ParserFirstCallInit": [
			"MassMessageHooks::onParserFirstCallInitOne",
			"MassMessageHooks::onParserFirstCallInitTwo"
		]
	}
}

HookHandlers

Version de MediaWiki :
1.35
Gerrit change 596914

Spécifications de ObjectFactory pour les gestionnaires d'accroches nouveau style.

{
    "Hooks": {
        "BeforePageDisplay": "main"
    },
    "HookHandlers": {
        "main": {
            "class": "MediaWiki\\Extension\\MyExtension\\HookHandler",
            "services": [ "UserNameUtils" ]
        }
    }
}

La différence avec l'approche précédente est que :

  • Votre gestionnaire d'accroches HookHandler doit importer les accroches avec le mot clé use.
  • La classe HookHandler doit aussi utiliser implement dessus.
  • Les fonctions utilisant ces accroches dans votre classe HookHandler ne peuvent pas être appelées statiquement, c'est-à-dire qu'elles sont dynamiques plutôt que statiques.

DeprecatedHooks

Version de MediaWiki :
1.35
Gerrit change 596914

Accroches obsolètes (voir les Règles des interfaces stables). Déclare la correspondance entre le nom de l'accroche et un tableau avec la version obsolète de MediaWiki deprecatedVersion et le composant component (optionnel, habituellement omis).

JobClasses

Types de tâche que cette extension implémente (correspondance entre le type de tâche et le nom de la classe).

Cette option correspond directement à la variable globale $wgJobClasses . Veuillez lire la documentation correspondante sur la manière de la configurer.


LogTypes

Liste des nouveaux types de journaux utilisés par cette extension.

Cette option correspond directement à la variable globale $wgLogTypes . Veuillez lire la documentation correspondante sur la manière de la configurer.


LogRestrictions

Restreint l'accès aux journaux à ceux qui ont un droit donné.

Cette option correspond directement à la variable globale $wgLogRestrictions . Veuillez lire la documentation correspondante sur la manière de la configurer.


FilterLogTypes

Un objet.

Cette option correspond directement à la variable globale $wgFilterLogTypes . Veuillez lire la documentation correspondante sur la manière de la configurer.


ActionFilteredLogs

Liste des types de journaux pouvant être filtrés par les actions de journalisation.

Cette option correspond directement à la variable globale $wgActionFilteredLogs . Veuillez lire la documentation correspondante sur la manière de la configurer.


LogNames

Liste la chaîne de caractères de la clé du message pour chaque type de journal.

Cette option correspond directement à la variable globale $wgLogNames . Veuillez lire la documentation correspondante sur la manière de la configurer.


LogHeaders

Liste la chaîne de caractères de la clé du message pour le texte de description à afficher en haut de chaque type de journal.

Cette option correspond directement à la variable globale $wgLogHeaders . Veuillez lire la documentation correspondante sur la manière de la configurer.


LogActions

Liste la chaîne de caractères de la clé du message pour formater les événements individuels de chaque type et d'action listés dans les journaux.

Cette option correspond directement à la variable globale $wgLogActions . Veuillez lire la documentation correspondante sur la manière de la configurer.


LogActionsHandlers

Même chose que $wgLogActions , mais les valeurs sont des fonctions de rappel.

Cette option correspond directement à la variable globale $wgLogActionsHandlers . Veuillez lire la documentation correspondante sur la manière de la configurer.


Actions

Tableau de valeurs autorisées du paramètre action pour les pages usuelles.

Cette option correspond directement à la variable globale $wgActions . Veuillez lire la documentation correspondante sur la manière de la configurer.


APIModules

Extensions du module API.

Cette option correspond directement à la variable globale $wgAPIModules . Veuillez lire la documentation correspondante sur la manière de la configurer.


APIFormatModules

Extensions du module API format

Cette option correspond directement à la variable globale $wgAPIFormatModules . Veuillez lire la documentation correspondante sur la manière de la configurer.


APIMetaModules

Extensions du module API Query meta

Cette option correspond directement à la variable globale $wgAPIMetaModules . Veuillez lire la documentation correspondante sur la manière de la configurer.


APIPropModules

Extensions du module API Query prop.

Cette option correspond directement à la variable globale $wgAPIPropModules . Veuillez lire la documentation correspondante sur la manière de la configurer.


APIListModules

Extensions du module API Query list.

Cette option correspond directement à la variable globale $wgAPIListModules . Veuillez lire la documentation correspondante sur la manière de la configurer.


RestRoutes

Version de MediaWiki :
1.35
Gerrit change 508972

Liste de spécifications de routes à ajouter à l'API REST. Voir API:REST API/Extensions.

ValidSkinNames

Liste d'habillages valides. Les habillages peuvent utiliser cette variable optionnellement pour dire à MediaWiki qu'ils sont disponibles.

Cette option correspond directement à la variable globale $wgValidSkinNames . Veuillez lire la documentation correspondante sur la manière de la configurer.


FeedClasses

Objets de flux disponibles.

Cette option correspond directement à la variable globale $wgFeedClasses . Veuillez lire la documentation correspondante sur la manière de la configurer.


SkinOOUIThemes

Correspondance des noms d'habillages et des thèmes OOUI à utiliser.

{
	"SkinOOUIThemes": {
		"yourskinname": "Apex"
	}
}

OOUIThemePaths

Correspondance entre les noms des thèmes personnalisés OOUI et les chemins correspondants permettant de les charger.

{
	"OOUIThemePaths": {
		"YourTheme": {
			"scripts": "resources/ooui/oojs-ui-yourtheme.js",
			"styles": "resources/ooui/oojs-ui-{module}-yourtheme.css",
			"images": "resources/ooui/{module}.json"
		}
	},
}
scripts
Chemin vers le fichier de script.
styles
Chemin vers les fichiers de style. {module} sera remplacé par le nom du module.
images
Chemin des fichiers de définition des images. {module} sera remplacé par le nom du module. Si les fichiers n'existent pas, les images du thème par défaut seront utilisées à la place.

PasswordPolicy

Règles du mot de passe.

Cette option correspond directement à la variable globale $wgPasswordPolicy . Veuillez lire la documentation correspondante sur la manière de la configurer.


FileExtensions

Extensions de fichier préférées pour le téléversement.

Cette option correspond directement à la variable globale $wgFileExtensions . Veuillez lire la documentation correspondante sur la manière de la configurer.


RawHtmlMessages

Liste des messages pouvant contenir du HTML brut.

Cette option correspond directement à la variable globale $wgRawHtmlMessages . Veuillez lire la documentation correspondante sur la manière de la configurer.


LateJSConfigVarNames

Noms des variables de configuration JavaScript (comme utilisées dans l'accroche MakeGlobalVariablesScript ou dans ParserOutput::setJsConfigVar ) qui peuvent être initialisées à la fin du body HTML au lieu du head HTML, afin d'améliorer le temps de chargement de la page. En JavaScript, ces variables doivent être accessibles via mw.hook( 'wikipage.content' ).

DatabaseVirtualDomains

Noms des domaines virtuels utilisés pour obtenir une connexion à la base de données. Voir $wgVirtualDomainsMapping .

ReauthenticateTime

Chronologie pour le réauthentification.

Cette option correspond directement à la variable globale $wgReauthenticateTime . Veuillez lire la documentation correspondante sur la manière de la configurer.


ForeignResourcesDir

Version de MediaWiki :
1.41
Gerrit change 911307

Répertoire contenant les ressources externes de l'extension (et le fichier foreign-resources.yaml qui les définit). Exprimé relativement à la racine de l'extension.

callback

Quelques fois les extensions ont besoin de réaliser des opérations non standards pendant l'enregistrement, ou sont simplement très complexes. Vous pouvez indiquer une clé callback dans votre extension.json si vous avez besoin d'exécuter du code PHP. La valeur doit être initialisée sur quelque chose que l'on peut appeler comme par exemple FooBarHooks::onRegistration. ExtensionRegistry va exécuter ce rappel après qu'il ait traité le fichier extension.json et avoir fixé toutes les variables globales et les paramères de configuration. Ceci se produit après LocalSettings, où toutes les paramètres de configuration spécifiées utilisateur sont disponibles, mais certaines valeurs par défaut de MediaWiki peuvent ne pas être encore initialisées.

{
	"callback": "FooBarHooks::onRegistration"
}

Deux paramètres sont fournis à la fonction de rappel, un tableau contenant les informations à propos de l'extension (un sous-ensemble de extension.json) et une instance de SettingsBuilder MW 1.40+.

La procédure de rappel n'est pas une fonction d'accroche normale, elle s'exécute dans les initialisations précédentes. Voir les limites de l'enregistrement des extensions pour avoir une idée sur ce qui peut nécessiter un enregistrement.

Les rappels d'enregistrement sont le moyen préféré pour que les extensions s'initialisent dynamiquement. Cela doit être fait par l'objet SettingsBuilder passé à la procédure de rappel, en utilisant les méthodes getConfig() et overrideConfigValue().

Les procédures de rappels pour l'enregistrement n'ont pas accès aux objets de service via MediaWikiServices, et ne peuvent pas utiliser le RequestContext principal. Aucun n'a été initialisé au moment de l'exécution du rappel. Les extensions qui doivent accéder au contexte de la requête ou qui doivent interagir avec un objet de service pendant l'initialisation doivent enregistrer à la place, une Fonction étendue.

config

Version de MediaWiki :
1.25

La section config est l'endroit où vous pouvez définir les paramètres de configuration modifiables par les administrateurs système pour configurer l'extension. Cette section ne doit être utilisée que pour les éléments configurés dans LocalSettings.php - si elle doit être modifiée par d'autres extensions, vous devez utiliser les attributs, ou si ce ne sont que des métadonnées de classe, utilisez une variable statique privée ou un équivalent. Le format de config a été modifié dans manifest_version 2.

Manifest version 1

Exemple simple :

{
    "config": {
        "FooBarUseExtraFeature": false
    }
}

C'est équivalent à écrire $wgFooBarUseExtraFeature = false; en PHP. Notez que le préfixe wg typique n'est pas inclus, car il sera ajouté par défaut. Si vos paramètres commencent avec un préfixe différent tel que $eg, vous pouvez utiliser la clé magique _prefix :

{
	"config": {
		"_prefix": "eg",
		"FooBarUseExtraFeature": false
	}
}

Maintenant c'est équivalent à écrire $egFooBarUseExtraFeature = false; en PHP.

Exemple plus complexe :

{
	"config": {
		"FooBarEnabledNamespaces": {
			"0": true,
			"2": true,
			"4": true,
			"_merge_strategy": "array_plus"
		},
		"FooBarCoolStuff": {
			"sysop": {
				"foo": true,
				"bar": false
			},
			"_merge_strategy": "array_plus_2d"
		}
	}
}

Le premier paramètre $wgFooBarEnabledNamespaces, a des clés qui sont des nombres, donc PHP va les transformer en entiers, même si ce sont des chaînes de caractères en JSON. Dû à la manière dont PHP traite les clés entières quand il fusionne les tableaux, nous devons utiliser un type différent de fusion ici; nous définissons un ensemble différent merge strategy en utilisant la clé magique. Dans le deuxième exemple, nous avons un tableau imbriqué qui nécessite un type différent de fusion, car nous voulons autoriser les utilisateurs à continuer à écrire $wgFooBarCoolStuff['user']['foo'] = true; dans leur LocalSettings.php.

Modifications dans Manifest version 2

Version de MediaWiki :
1.29

Avec MediaWiki 1.29, un nouveau manifest_version (2) a été introduit. Dans cette version, la section config est amériorée de diverses manières. Pour prendre en charge ces modifications, la signature d'un ensemble d'options de configuration avec leur valeurs a un peu changé. La clé de l'objet config est encore le nom du paramètre; néanmoins la valeur de cette clé est un objet, décrivant cette option de configuration, où l'une des valeurs est sa valeur. Sur la page de documentation de l'enregistrement des extensions vous trouverez les informations concernant les clés spécifiques (avec les valeurs) des options de configuration. Un exemple facile dans le nouveau schéma, qui est simplement une option de configuration avec sa valeur, ressemblerait à :

{
	"config": {
		"FooBarUseExtraFeature": {
			"value": false
		}
	},
	"manifest_version": 2
}

Un exemple plus complexe serait :

{
	"config_prefix": "eg",
	"config": {
		"MyExtSetting": {
			"value": true,
			"path": false,
			"description": "Description de la configuration",
			"descriptionmsg": "myextension-config-myextsetting",
			"public": true
		},
		"FooBarCoolStuff": {
			"value": {
				"sysop": {
					"foo": true,
					"bar": false
				}
			},
		    "merge_strategy": "array_plus_2d"
		}
	},
	"manifest_version": 2
}
La version 2 du schéma n'est pas compatible avec la version 1. Ainsi vous devrez convertir votre fichier extension.json existant, dans le nouveau format, en utilisant le script updateExtensionJsonSchema.php .

path

Comme montré dans l'exemple ci-dessus, vous pouvez définir une option de configuration ayant la clé path. Lorsqu'il vaut true, la valeur du paramètre sera interprétée comme étant le chemin local de l'extension. Par exemple une extension peut définir ses paramètres par :

{
	"config": {
		"Setting": {
			"value": "some_file.txt",
			"path": true
		}
	},
	"manifest_version": 2
}

La valeur de l'option de configuration Setting sera résolue avec $wgExtensionDirectory/FooBar/some_file.txt.

Stratégie de fusion

La stratégie de fusion définit la manière de fusionner la valeur par défaut du paramètre de configuration avec la valeur globale (valeur de la variable globale $wgXXX). Cela n'a de sens que si les paramètres de configuration sont des tableaux de valeurs. Les stratégies de fusion suivantes sont disponibles :

  • array_merge – Utilise la commande PHP array_merge : les éléments de tableaux avec des clés numériques seront interprétés comme des éléments de liste non associatifs et seront concaténés au tableau (en renumérotant les clés si nécessaire), les éléments de tableaux avec des clés non numériques seront interprétés comme les éléments d'un tableau associatif et réécrits avec la même clé.
  • array_plusUtilise l'opérateur PHP +, donc les champs de la valeur par défaut ne seront utilisés que si le champ correspondant de la valeur globale n'est pas initialisé. C'est intéressant pour les tableaux associatifs dont les clés sont des entiers (comme les IDs des espaces de noms).
  • array_plus_2d – Utilise wfArrayPlus2d pour gérer proprement les tableaux imbriqués jusqu'à une profondeur de 2 (par exemple $wgGroupPermissions ).
  • array_merge_recursive – Gère les tableaux, même de profondeur supérieur supérieure à 2 avec array_merge_recursive. Etant donné le comportement de cette méthode qui est loin d'être intuitif (exemple), cette stratégie n'est pas recommandée. Un paramètre de configuration d'une profondeur supérieure à 2 obligerait à configurer trop d'éléments dans un passage, et le découper en plusieurs initialisations élémentaires serait une bonne idée.
  • array_replace_recursive – Utilise array_replace_recursive, principalement la version récursive de array_plus. A la différence de array_merge_recursive, ceci gère comme on le souhaite les champs qui ne sont pas des tableaux.
  • provide_default (depuis la MW 1.35.3) – sans fusion; la valeur par défaut ne sera utilisée que si la valeur globale n'est pas fixée.

Lorsqu'elle n'est pas définie explicitement, la stratégie de fusion par défaut est array_merge. Lorsqu'au moins une des valeurs globales ainsi que la valeur par défaut ne sont pas des tableaux, la stratégie de fusion est ignorée et la valeur globale va simplement remplacer la valeur par défaut.

config_prefix

Version de MediaWiki :
1.28

Prefixe à insérer devant les paramètres de configuration lors de l'export vers $GLOBALS.

La valeur par défaut est "wg", et une valeur de paramètre "Example" correspond à une variable globale PHP $wgExample. Notez que si vous choisissez un préfixe de paramètre différent il pourra être plus difficile de retrouver le paramètre de l'extension correspondant à la variable globale concernée.

ParsoidModules

Version de MediaWiki :
1.35
Gerrit change 597639

Tableau de spécifieurs de modules de l'extension Parsoid . Un module d'extension Parsoid est une classe qui implémente Wikimedia\Parsoid\Ext\ExtensionModule

Il existe trois manières de spécifier un module d'extension de Parsoid :

  • Référence directe à la classe implémentant la classe ExtensionModule (qui fait partie de Parsoid-PHP et non du noyau MediaWiki). Pour un exemple, voir l'extension Kartographer.
  • Une représentation équivalente à ObjectFactory en JSON. Par exemple, voir l'extension Cite.
  • Une spécification de module spécifique à Parsoid.


A FAIRE : document


ParserTestFiles

Ensemble des fichiers de test de l'analyseur à exécuter par parserTests.php quand aucun nom de fichier spécifique lui est fourni.

Cette option correspond directement à la variable globale $wgParserTestFiles . Veuillez lire la documentation correspondante sur la manière de la configurer.


ServiceWiringFiles

Tableau contenant les noms des fichiers associés aux services, à charger par l'instance par défaut de MediaWikiServices.

Cette option correspond directement à la variable globale $wgServiceWiringFiles . Veuillez lire la documentation correspondante sur la manière de la configurer.


attributes

Informations d'enregistrement pour les autres extensions. Cela permet à une extension d'enregistrer des éléments en rapport avec d'autres extensions. Les valeurs des attributs doivent être des tableaux JSON ou des objets, et ils seront fusionnés quand ils seront récupérés dans PHP.

Dans manifest_version 1 il s'agissait des clés de premier niveau que vous pouviez nommer arbitrairement :

"EventLoggingSchemas": {
    "MySchema": 123
}

Dans manifest_version 2, elles figurent sous la clé attributes de premier niveau, et sont imbriquées sous le nom de l'extension à laquelle l'attribut appartient.

Le nom complet de l'attribut est la concaténation du nom de l'extension et du nom de l'attribut (EventLoggingSchemas dans l'exemple ci-dessous). Chaque clé déclarée directement sous attributes doit correspondre au nom de l'extension (les clés des attributs de haut niveau arbitraires ne sont pas prises en charge). Si cette extension (EventLogging dans notre cas) n'est pas installée, les attributs ne seront pas chargés dans le registre.

"attributes": {
    "EventLogging": {
        "Schemas": {
            "MySchema": 123
        }
    }
}

Pour accéder à la valeur d'un attribut en PHP, vous pouvez utiliser ExtensionRegistry :

$schemas = ExtensionRegistry::getInstance()->getAttribute( 'EventLoggingSchemas' );

load_composer_autoloader

Charger le chargeur automatique de composer pour cette extension, s'il en existe un. Ceci doit être utilisé si l'extension a des dépendances sur les bibliothèques spécifiées dans composer.json. Ce qui équivaut en gros au code suivant :

if ( file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
	require_once __DIR__ . '/vendor/autoload.php';
}