Příručka:extension.json/Schéma

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

Tato stránka dokumentuje schéma používané extension.json . Není-li uvedeno jinak, jsou všechna pole volitelná (optional). V současné době je příručka neúplná.

Pro první iteraci tohoto schématu viz docs/extension.schema.v1.json (MW 1.25+), pro druhou viz docs/extension.schema.v2.json (MW 1.29+).

manifest_version

Verze MediaWiki:
1.25
Gerrit change 212239

Toto pole je povinné.

Toto určuje verzi formátu souboru extension.json, který se používá. V budoucnu, pokud budou provedeny změny ve formátu souboru, bude toto číslo zvýšeno, aby nadále podporovala rozšíření používající starší formát.

V současné době jsou podporovány následující hodnoty:

  • 1: 1.25+
  • 2: 1.29+

v2 poskytuje silnější funkce ověřování pro vývojáře a doporučuje se, pokud vaše rozšíření již vyžaduje MediaWiki 1.29+. Nedoporučuje se narušovat kompatibilitu MediaWiki se staršími verzemi jen kvůli aktualizaci na novější manifest_version.

V současné době jsou přidány nové funkce do v1 i v2, ale bylo navrženo zmrazit a pozvolna zavrhnout verzi 1 ve verzi MediaWiki 1.38 (diskuse o Phabricatoru).

Příklad:

{
	"manifest_version": 2
}
Toto pole je obvykle umístěno na konci souborů extension.json.

name

Verze MediaWiki:
1.25
Gerrit change 166705

Toto pole je povinné.

Toto je kanonický název rozšíření. Po nastavení by se nemělo měnit, protože se používá jako API pro jiná rozšíření ke zjištění toho, co je nainstalováno. Pole name nemusí odpovídat názvu adresáře rozšíření ani názvu jeho stránky ve jmenném prostoru rozšíření na MediaWiki.org.

{
	"name": "FooBar"
}

namemsg

Verze MediaWiki:
1.25
Gerrit change 166705

Lokalizovaná verze názvu rozšíření. Klíč zprávy je obvykle pojmenován ve formátu <name>-extensionname nebo <name>-skinname.

{
	"namemsg": "foobar-extensionname"
}

type

Verze MediaWiki:
1.25
Gerrit change 166705

Jedná se o typ rozšíření, pro řazení na Special:Version. Podporovány jsou následující typy:

Vlastní typy lze přidat pomocí háčku ExtensionTypes . Mezi známé patří:

Pokud není nastaveno, rozšíření se nastaví jako výchozí do sekce "ostatní" (other), a pokud je nastaveno na neplatnou hodnotu, rozšíření se na Special:Version nezobrazí.

{
	"type": "specialpage"
}

author

Verze MediaWiki:
1.25
Gerrit change 166705

Autoři rozšíření mohou používat wikitext. Může to být buď jeden řetězec, nebo pole řetězců. Navíc lze speciální řetězec ... použít k přidání obecné přípony "další" pomocí zprávy version-poweredby-others.

version

Verze MediaWiki:
1.25
Gerrit change 166705

Aktuální verze rozšíření. Měl by být ve formátu podporovaném Composer.

url

Verze MediaWiki:
1.25
Gerrit change 166705

Adresa URL "domovské stránky" nebo dokumentace rozšíření. Obvykle ukazuje na https://www.mediawiki.org/wiki/Extension:<extensionname>.

description

Verze MediaWiki:
1.25
Gerrit change 166705

Popis rozšíření, může obsahovat wikitext.

Místo toho se doporučuje použít descriptionmsg.

descriptionmsg

Verze MediaWiki:
1.25
Gerrit change 166705

Klíč lokalizační zprávy pro popis rozšíření, obvykle ve formátu <extensionname>-desc. Toto přepíše popis.

license-name

Verze MediaWiki:
1.25
Gerrit change 166705

Identifikátor licence SPDX pro licenci, pod kterou je zdrojový kód licencován. Pokud vytvoříte soubor s názvem COPYING nebo LICENSE (s volitelnou příponou .txt) v kořenovém adresáři rozšíření s obsahem licence, bude také propojen a viditelný na Special:Version.

requires

Verze MediaWiki:
1.26
Gerrit change 210856
Verze MediaWiki:
1.29
Gerrit change 250060

Sekce vyžaduje vám umožňuje dokumentovat závislosti na verzích jádra MediaWiki (1.26+) a dalších rozšíření (1.29+).

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

Můžete použít libovolný specifikátor verze, který composer podporuje. Pro MediaWiki je nejlepším postupem zadat >= pro minimální podporovanou verzi, pokud nevíte, že budoucí verze je výslovně nefunkční. Pro rozšíření, pokud nemají nastaven specifikátor verze nebo nepoužívají verzovací systém, použijte obyčejnou * k označení jakékoli verze, která je přijatelná.

Pokud vaše rozšíření používá nepřetržitou integraci Wikimedie, musíte také přidat závislosti rozšíření na zuul/parameter_functions.py v projektu integration/config.

platform

Verze MediaWiki:
1.32
Gerrit change 458940
Verze MediaWiki:
1.32
Gerrit change 462596

Můžete také vyjádřit závislost na nastavení platformy, aktuálně omezenou na verzi PHP a rozšíření PHP. Všimněte si, že se očekává, že většina rozšíření bude splňovat požadavky na verzi PHP pro verze jádra MediaWiki, které podporují, a specifikovat přísnější omezení verze PHP by se mělo provádět pouze ve výjimečných případech. Kontrola verzí rozšíření PHP není momentálně podporována.

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

V tomto příkladu rozšíření vyžaduje 1.32 (což má minimální požadavek PHP 7.0) a navíc vyjadřuje, že potřebuje vyšší závislost alespoň PHP 7.1, protože vyžaduje použití nějaké novější funkce PHP. Dále to vyžadovalo instalaci rozšíření curl PHP.

suggests

Verze MediaWiki:
1.39
Gerrit change 591897

Umožňuje výpis navrhovaných, ale nevyžadovaných závislostí. Formát je stejný jako requires.

ResourceFileModulePaths

Verze MediaWiki:
1.25
Gerrit change 188996

Určuje výchozí cesty, které se mají použít pro všechny moduly souborů ResourceLoader.

Povolené vlastnosti jsou:

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

Ty odpovídají stejným možnostem v každé definici modulu v ResourceModules. Pokud není v definici modulu zadána hodnota, použije se zde zadaná výchozí hodnota.

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

ResourceModules

Verze MediaWiki:
1.25
Gerrit change 166705

Moduly ResourceLoader k registraci.

Tato volba přímo koresponduje s globální proměnnou $wgResourceModules . Informace o konfiguraci naleznete v příslušné dokumentaci.


Pokyny najdete v Vývoj s ResourceLoader a extension.json .

ResourceModuleSkinStyles

Verze MediaWiki:
1.25
Gerrit change 201661

Moduly ResourceLoader pro vlastní styly vzhledu.

Tato volba přímo koresponduje s globální proměnnou $wgResourceModuleSkinStyles . Informace o konfiguraci naleznete v příslušné dokumentaci.


ResourceLoaderSources

Verze MediaWiki:
1.25
Gerrit change 166705

Zdroje ResourceLoader k registraci.

Tato volba přímo koresponduje s globální proměnnou $wgResourceLoaderSources . Informace o konfiguraci naleznete v příslušné dokumentaci.


ResourceLoaderLESSVars

Verze MediaWiki:
1.25 – 1.30
Gerrit change 166705

Asociativní pole spojující názvy proměnných s LESS fragmenty kódu představujícími jejich hodnoty.

Tato volba přímo koresponduje s globální proměnnou $wgResourceLoaderLESSVars . Informace o konfiguraci naleznete v příslušné dokumentaci.


SkinLessImportPaths

Verze MediaWiki:
1.36
Gerrit change 434211

Cesta k importnímu adresáři LESS specifickému pro vzhled, zakódovaná názvem vzhledu. Lze použít k definování proměnných LESS specifických pro vzhled.

QUnitTestModule

Verze MediaWiki:
1.33
Gerrit change 485247

Modul souboru ResourceLoader, který se načte při spuštění jednotkových testů JavaScriptu. To se řídí stejnou syntaxí jako ResourceModules.

Interně, když je $wgEnableJavaScriptTest true, je tento modul automaticky zaregistrován pod jménem "test.ExtensionName".

MessagePosterModule

Verze MediaWiki:
1.35
Gerrit change 542655

Umožňuje rozšířením přidávat další soubory nebo závislosti do balíčku modulů mediawiki.messagePoster. To má stejnou syntaxi jako ResourceModules.

ConfigRegistry

Verze MediaWiki:
1.25
Gerrit change 166705

Registr továrních funkcí pro vytváření objektů Config.

Tato volba přímo koresponduje s globální proměnnou $wgConfigRegistry . Informace o konfiguraci naleznete v příslušné dokumentaci.


SessionProviders

Verze MediaWiki:
1.27
Gerrit change 288324

Určuje, jaké poskytovatele použít na SessionManager.

Tato volba přímo koresponduje s globální proměnnou $wgSessionProviders . Informace o konfiguraci naleznete v příslušné dokumentaci.


AuthManagerAutoConfig

Verze MediaWiki:
1.27
Gerrit change 195297

Automatická konfigurace AuthManager.

Tato volba přímo koresponduje s globální proměnnou $wgAuthManagerAutoConfig . Informace o konfiguraci naleznete v příslušné dokumentaci.


K dispozici jsou následující vlastnosti:

  • preauth – poskytovatelé předběžného ověření.
  • primaryauth – primární poskytovatelé autentizace.
  • secondaryauth – sekundární poskytovatelé autentizace.

CentralIdLookupProviders

Verze MediaWiki:
1.27
Gerrit change 261909

Poskytovatelé centrálního vyhledávání ID.

Tato volba přímo koresponduje s globální proměnnou $wgCentralIdLookupProviders . Informace o konfiguraci naleznete v příslušné dokumentaci.


ChangeCredentialsBlacklist

Verze MediaWiki:
1.28
Gerrit change 294859

Třídy AuthenticationRequest, které lze použít pouze interně pro změnu pověření.

Tato volba přímo koresponduje s globální proměnnou $wgChangeCredentialsBlacklist . Informace o konfiguraci naleznete v příslušné dokumentaci.


RemoveCredentialsBlacklist

Verze MediaWiki:
1.28
Gerrit change 294859

Třídy AuthenticationRequest, které lze použít pouze interně k odstranění pověření.

Tato volba přímo koresponduje s globální proměnnou $wgRemoveCredentialsBlacklist . Informace o konfiguraci naleznete v příslušné dokumentaci.


namespaces

Verze MediaWiki:
1.25.3
Gerrit change 237973

Metoda pro přidání dalších jmenných prostorů .

K dispozici jsou následující vlastnosti:

Name Type Description Default
id celé číslo Číselný identifikátor jmenného prostoru, jak se používá v databázi. Od MW 1.30 lze ID jmenného prostoru přepsat lokálně definováním příslušné konstanty v LocalSettings.php před načtením rozšíření. Kód rozšíření proto musí vždy používat konstantu pro ID jmenného prostoru a nikdy nepoužívejte ID jako literál v kódu PHP. Zvažte uvedení vašeho identifikačního čísla používaného ve výchozích jmenných prostorech rozšíření, abyste předešli konfliktům s jinými rozšířeními.
constant řetězec Název konstanty, kterou kód rozšíření používá k odkazování na ID jmenného prostoru.
name řetězec Název jmenného prostoru, jak se používá v názvech.
gender objekt pohlaví Vlastnosti jsou buď "mužské" nebo "ženské". Viz podpora pohlaví.
subpages boolean Podívejte se na stránku Příručka:$wgNamespacesWithSubpages . false
content boolean Podívejte se na stránku Příručka:$wgContentNamespaces . false
defaultcontentmodel řetězec Podívejte se na stránku ContentHandler .
protection pole nebo řetězec k úpravám v tomto jmenném prostoru jsou vyžadována uživatelská práva.
capitallinkoverride boolean Nastavte $wgCapitalLinks na bázi jmenného prostoru.
conditional boolean zda je jmenný prostor podmíněn konfigurací a neměl by být registrován (vyžaduje samostatnou registraci pomocí háčku, například CanonicalNamespaces ). false
movable boolean Zda je možné přesouvat stránky v tomto jmenném prostoru. (zavedeno od 1.35.2) true

TrackingCategories

Verze MediaWiki:
1.25
Gerrit change 166705

Sledování tlačítek zpráv kategorií.

Tato volba přímo koresponduje s globální proměnnou $wgTrackingCategories . Informace o konfiguraci naleznete v příslušné dokumentaci.


DefaultUserOptions

Verze MediaWiki:
1.25
Gerrit change 166705


Tato volba přímo koresponduje s globální proměnnou $wgDefaultUserOptions . Informace o konfiguraci naleznete v příslušné dokumentaci.

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

HiddenPrefs

Verze MediaWiki:
1.25
Gerrit change 166705

Předvolby uživatelé nemohou nastavit.

Tato volba přímo koresponduje s globální proměnnou $wgHiddenPrefs . Informace o konfiguraci naleznete v příslušné dokumentaci.


GroupPermissions

Verze MediaWiki:
1.25
Gerrit change 166705

Výchozí oprávnění k udělení uživatelských skupin.

Tato volba přímo koresponduje s globální proměnnou $wgGroupPermissions . Informace o konfiguraci naleznete v příslušné dokumentaci.


PrivilegedGroups

Verze MediaWiki:
1.41
Gerrit change 954742

Skupiny uživatelů, které by měly být považovány za privilegované.

Tato volba přímo koresponduje s globální proměnnou $wgPrivilegedGroups . Informace o konfiguraci naleznete v příslušné dokumentaci.


RevokePermissions

Verze MediaWiki:
1.25
Gerrit change 166705

Výchozí oprávnění k odebrání ze skupin uživatelů.

Tato volba přímo koresponduje s globální proměnnou $wgRevokePermissions . Informace o konfiguraci naleznete v příslušné dokumentaci.


GrantPermissions

Mapa oprávnění udělených oprávněným spotřebitelům k jejich balíčkům, nazývaných 'granty'.

Tato volba přímo koresponduje s globální proměnnou $wgGrantPermissions . Informace o konfiguraci naleznete v příslušné dokumentaci.


GrantPermissionGroups

Mapa grantů k jejich seskupení uživatelského rozhraní.

Tato volba přímo koresponduje s globální proměnnou $wgGrantPermissionGroups . Informace o konfiguraci naleznete v příslušné dokumentaci.


ImplicitGroups

Implicitní skupiny.

Tato volba přímo koresponduje s globální proměnnou $wgImplicitGroups . Informace o konfiguraci naleznete v příslušné dokumentaci.


GroupsAddToSelf

Skupiny, které si uživatel může přidat.

Tato volba přímo koresponduje s globální proměnnou $wgGroupsAddToSelf . Informace o konfiguraci naleznete v příslušné dokumentaci.


GroupsRemoveFromSelf

Skupiny, které může uživatel ze sebe odebrat.

Tato volba přímo koresponduje s globální proměnnou $wgGroupsRemoveFromSelf . Informace o konfiguraci naleznete v příslušné dokumentaci.


AddGroups

Skupiny, které může uživatel přidat k uživatelům.

Tato volba přímo koresponduje s globální proměnnou $wgAddGroups . Informace o konfiguraci naleznete v příslušné dokumentaci.


RemoveGroups

Skupiny, které může uživatel odstranit z uživatelů.

Tato volba přímo koresponduje s globální proměnnou $wgRemoveGroups . Informace o konfiguraci naleznete v příslušné dokumentaci.


AvailableRights

Uživatelská práva přidaná rozšířením.

Tato volba přímo koresponduje s globální proměnnou $wgAvailableRights . Informace o konfiguraci naleznete v příslušné dokumentaci.


ContentHandlers

Mapování ID modelu na název třídy.

Tato volba přímo koresponduje s globální proměnnou $wgContentHandlers . Informace o konfiguraci naleznete v příslušné dokumentaci.


RateLimits

Jednoduché možnosti omezovače rychlosti pro brzdění úprav floods.

Tato volba přímo koresponduje s globální proměnnou $wgRateLimits . Informace o konfiguraci naleznete v příslušné dokumentaci.


RecentChangesFlags

Příznaky (symboly písmen) zobrazené v posledních změnách a seznamu sledovaných označující určité typy úprav.

Tato volba přímo koresponduje s globální proměnnou $wgRecentChangesFlags . Informace o konfiguraci naleznete v příslušné dokumentaci.


MediaHandlers

Pluginy pro manipulaci s typy souborů médií. Každá položka v mapě pole mapuje typ MIME na název třídy PHP.

Tato volba přímo koresponduje s globální proměnnou $wgMediaHandlers . Informace o konfiguraci naleznete v příslušné dokumentaci.


ExtensionFunctions

Funkce pro volání po dokončení nastavení.

Tato volba přímo koresponduje s globální proměnnou $wgExtensionFunctions . Informace o konfiguraci naleznete v příslušné dokumentaci.


Všimněte si, že funkce rozšíření nelze použít k programové aktualizaci konfiguračních proměnných nebo k registraci háčků. Pro tento účel by se místo toho mělo použít zpětné volání registrace.

ExtensionMessagesFiles

Cesty k souborům obsahujícím soubory internacionalizace PHP pro magická slova (včetně funkcí analyzátoru), aliasy speciálních stránek a nebo názvy jmenných prostorů .

Tato volba přímo koresponduje s globální proměnnou $wgExtensionMessagesFiles . Informace o konfiguraci naleznete v příslušné dokumentaci.


MessagesDirs

Cesty adresáře obsahující data o internacionalizaci JSON.

Tato volba přímo koresponduje s globální proměnnou $wgMessagesDirs . Informace o konfiguraci naleznete v příslušné dokumentaci.


Pokud používáte výchozí rozložení adresáře s lokalizovanými zprávami v adresáři i18n/, můžete zadat:

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

ExtensionEntryPointListFiles

Pole souborů se seznamem(y) vstupních bodů rozšíření, které mají být použity v maintenance/mergeMessageFileList.php

Tato volba přímo koresponduje s globální proměnnou $wgExtensionEntryPointListFiles . Informace o konfiguraci naleznete v příslušné dokumentaci.


SpecialPages

SpecialPages implementované v tomto rozšíření (mapování názvu stránky na název třídy).

Tato volba přímo koresponduje s globální proměnnou $wgSpecialPages . Informace o konfiguraci naleznete v příslušné dokumentaci.


AutoloadClasses

Pole mapující názvy tříd na názvy souborů pro automatické načítání.

Tato volba přímo koresponduje s globální proměnnou $wgAutoloadClasses . Informace o konfiguraci naleznete v příslušné dokumentaci.

Příklad:

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

AutoloadNamespaces

Verze MediaWiki:
1.31
Gerrit change 373626

Pole obsahující mapování jmenných prostorů na adresáře způsobem kompatibilním s PSR-4. Zde je příklad:

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

V tomto případě jsou všechny třídy PHP pod jmenným prostorem MediaWiki\Extension\BetaFeatures\ a pojmenování tříd se přímo mapuje na soubory umístěné v adresáři includes/ (vzhledem k souboru extension.json). Všimněte si, že část jmenného prostoru musí končit \\.

Rozšíření využívající tuto funkci by měla vyžadovat alespoň MediaWiki 1.31 v souboru extension.json:

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

Viz například změna Gerrit 468385.

TestAutoloadClasses a TestAutoloadNamespaces

Verze MediaWiki:
1.35
Gerrit change 556181

Oba jsou stejné jako AutoloadClasses a AutoloadNamespaces, kromě toho, že se používají pouze při spouštění testů.

Viz například změna Gerrit 556240.

Hooks

Háčky, které toto rozšíření používá (mapování názvu háčku na zpětné volání).

Tato volba přímo koresponduje s globální proměnnou $wgHooks . Informace o konfiguraci naleznete v příslušné dokumentaci.


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

Je možné zaregistrovat více zpětných volání pro stejnou událost háčku:

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

HookHandlers

Verze MediaWiki:
1.35
Gerrit change 596914

Specifikace ObjectFactory pro háčkové manipulátory nového stylu.

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

Rozdíl oproti předchozímu přístupu je v tom, že:

  • Váš HookHandler musí importovat háčky s klíčovým slovem use.
  • Třída HookHandler je také musí implementovat.
  • Funkce používající tyto háčky ve vaší třídě HookHandler nelze volat staticky, tj. jsou spíše dynamické než statické.

DeprecatedHooks

Verze MediaWiki:
1.35
Gerrit change 596914

Zastaralé háčky (viz Zásady stabilního rozhraní). Mapuje název zavěšení na pole pomocí deprecatedVersion (verze MediaWiki) a component (volitelné, obvykle se vynechává).

JobClasses

Typy úloh, které toto rozšíření implementuje (mapování typů úloh na název třídy).

Tato volba přímo koresponduje s globální proměnnou $wgJobClasses . Informace o konfiguraci naleznete v příslušné dokumentaci.


LogTypes

Seznam nových typů protokolů, které toto rozšíření používá.

Tato volba přímo koresponduje s globální proměnnou $wgLogTypes . Informace o konfiguraci naleznete v příslušné dokumentaci.


LogRestrictions

Omezuje přístup k logu těm, kteří mají určité právo.

Tato volba přímo koresponduje s globální proměnnou $wgLogRestrictions . Informace o konfiguraci naleznete v příslušné dokumentaci.


FilterLogTypes

Objekt.

Tato volba přímo koresponduje s globální proměnnou $wgFilterLogTypes . Informace o konfiguraci naleznete v příslušné dokumentaci.


ActionFilteredLogs

Seznam typů protokolů, které lze filtrovat podle akcí protokolu.

Tato volba přímo koresponduje s globální proměnnou $wgActionFilteredLogs . Informace o konfiguraci naleznete v příslušné dokumentaci.


LogNames

Uvádí řetězec klíče zprávy pro každý typ protokolu.

Tato volba přímo koresponduje s globální proměnnou $wgLogNames . Informace o konfiguraci naleznete v příslušné dokumentaci.


LogHeaders

Uvádí řetězec klíče zprávy pro popisný text, který se zobrazí v horní části každého typu protokolu.

Tato volba přímo koresponduje s globální proměnnou $wgLogHeaders . Informace o konfiguraci naleznete v příslušné dokumentaci.


LogActions

Uvádí řetězec klíče zprávy pro formátování jednotlivých událostí každého typu a akce, pokud jsou uvedeny v protokolech.

Tato volba přímo koresponduje s globální proměnnou $wgLogActions . Informace o konfiguraci naleznete v příslušné dokumentaci.


LogActionsHandlers

Stejné jako $wgLogActions , ale hodnoty jsou zpětná volání funkcí.

Tato volba přímo koresponduje s globální proměnnou $wgLogActionsHandlers . Informace o konfiguraci naleznete v příslušné dokumentaci.


Actions

Pole povolených hodnot pro parametr "action" pro normální stránky.

Tato volba přímo koresponduje s globální proměnnou $wgActions . Informace o konfiguraci naleznete v příslušné dokumentaci.


APIModules

Rozšíření modulů API.

Tato volba přímo koresponduje s globální proměnnou $wgAPIModules . Informace o konfiguraci naleznete v příslušné dokumentaci.


APIFormatModules

Rozšíření modulu formátu API.

Tato volba přímo koresponduje s globální proměnnou $wgAPIFormatModules . Informace o konfiguraci naleznete v příslušné dokumentaci.


APIMetaModules

Rozšíření meta modulu API Query.

Tato volba přímo koresponduje s globální proměnnou $wgAPIMetaModules . Informace o konfiguraci naleznete v příslušné dokumentaci.


APIPropModules

Rozšíření prop modulu API Query.

Tato volba přímo koresponduje s globální proměnnou $wgAPIPropModules . Informace o konfiguraci naleznete v příslušné dokumentaci.


APIListModules

Rozšíření modulu seznamu dotazů API.

Tato volba přímo koresponduje s globální proměnnou $wgAPIListModules . Informace o konfiguraci naleznete v příslušné dokumentaci.


RestRoutes

Verze MediaWiki:
1.35
Gerrit change 508972

Seznam specifikací trasy, které mají být přidány do REST API. Podívejte se na stránku API:REST API/Extensions.

ValidSkinNames

Seznam platných názvů vzhledů. Vzhledy mohou volitelně použít tuto proměnnou k tomu, aby MediaWiki sdělily, že jsou dostupné.

Tato volba přímo koresponduje s globální proměnnou $wgValidSkinNames . Informace o konfiguraci naleznete v příslušné dokumentaci.


FeedClasses

Dostupné objekty kanálů.

Tato volba přímo koresponduje s globální proměnnou $wgFeedClasses . Informace o konfiguraci naleznete v příslušné dokumentaci.


SkinOOUIThemes

Mapa názvů vzhledů k tématům OOUI k použití.

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

OOUIThemePaths

Mapa vlastních názvů motivů OOUI na cesty, ze kterých je lze načíst.

{
	"OOUIThemePaths": {
		"YourTheme": {
			"scripts": "resources/ooui/oojs-ui-yourtheme.js",
			"styles": "resources/ooui/oojs-ui-{module}-yourtheme.css",
			"images": "resources/ooui/{module}.json"
		}
	},
}
scripts
Cesta k souboru skriptu.
styles
Cesta k souborům stylů. {module} bude nahrazeno názvem modulu.
images
Cesta k souborům definice obrázku. {module} bude nahrazeno názvem modulu. Pokud soubory neexistují, použijí se místo nich obrázky výchozího motivu.

PasswordPolicy

Zásady hesel.

Tato volba přímo koresponduje s globální proměnnou $wgPasswordPolicy . Informace o konfiguraci naleznete v příslušné dokumentaci.


FileExtensions

Preferované přípony souborů pro nahrávání.

Tato volba přímo koresponduje s globální proměnnou $wgFileExtensions . Informace o konfiguraci naleznete v příslušné dokumentaci.


RawHtmlMessages

Seznam zpráv, které mohou obsahovat raw HTML.

Tato volba přímo koresponduje s globální proměnnou $wgRawHtmlMessages . Informace o konfiguraci naleznete v příslušné dokumentaci.


LateJSConfigVarNames

Názvy proměnných konfigurací JS (jak se používají v MakeGlobalVariablesScript háčku nebo ParserOutput::setJsConfigVar ), které lze nastavit z konce těla HTML namísto hlavy HTML, aby se zlepšila doba načítání stránky. V JavaScriptu by se k těmto proměnným mělo přistupovat přes mw.hook( 'wikipage.content' ).

DatabaseVirtualDomains

Názvy virtuálních domén, které se používají k získání připojení db. Podívejte se na stránku $wgVirtualDomainsMapping .

ReauthenticateTime

Časový rámec pro opětovné ověření.

Tato volba přímo koresponduje s globální proměnnou $wgReauthenticateTime . Informace o konfiguraci naleznete v příslušné dokumentaci.


ForeignResourcesDir

Verze MediaWiki:
1.41
Gerrit change 911307

Adresář obsahující zahraniční zdroje rozšíření (a soubor foreign-resources.yaml, který je definuje). Mělo by být uvedeno relativně ke kořenu rozšíření.

callback

Někdy rozšíření potřebují při registraci dělat nestandardní věci nebo jsou prostě velmi složité. Pokud potřebujete spustit nějaký PHP kód, můžete do extension.json zadat klíč callback. Hodnota by měla být nastavena na platný volatelný PHP, například: FooBarHooks::onRegistration. ExtensionRegistry provede toto zpětné volání poté, co zpracuje soubor extension.json a nastaví všechna ostatní globální a konfigurační nastavení. K tomu dojde po LocalSettings, takže jsou dostupné všechny konfigurace specifikované uživatelem, ale některé výchozí hodnoty nastavené MediaWiki možná ještě nebyly inicializovány.

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

Zpětné volání má dva parametry, pole obsahující informace o rozšíření (podmnožina extension.json) a instanci SettingsBuilder MW 1.40+.

Zpětné volání není normální funkce zavěšení, běží v časné inicializaci. Informace o tom, jaké věci mohou vyžadovat vlastní registraci, najdete na stránce Příručka:Registrace/Omezení rozšíření.

Registrační zpětná volání jsou preferovaným způsobem, jak rozšíření dynamicky nastavovat konfiguraci. To by mělo být provedeno prostřednictvím objektu SettingsBuilder předaného zpětnému volání pomocí metod getConfig() a overrideConfigValue().

Registrační zpětná volání nemají přístup k objektům služeb přes MediaWikiServices a nemohou využívat hlavní RequestContext. Žádný z nich nebyl inicializován v době provedení zpětného volání. Rozšíření, která potřebují přistupovat ke kontextu požadavku nebo interagovat s objektem služby během inicializace, by místo toho měla zaregistrovat ExtensionFunction.

config

Verze MediaWiki:
1.25

Sekce config je místo, kde můžete definovat nastavení konfigurace, které mohou správci systému změnit, aby nakonfigurovali rozšíření. Tato sekce by se měla používat pouze pro věci, které jsou nakonfigurovány v LocalSettings.php – pokud má být upravena jinými rozšířeními, měli byste použít attributy, nebo pokud se jedná pouze o metadata třídy, použijte soukromou statickou proměnnou nebo něco takového. Formát konfigurace se změnil v manifest_version 2.

Manifest version 1

Jednoduchý příklad:

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

To je ekvivalentní zápisu $wgFooBarUseExtraFeature = false; v PHP. Všimněte si, že typický "wg" prefix není zahrnut, protože bude přidán ve výchozím nastavení. Pokud vaše nastavení začíná jinou předponou, například $eg, můžete použít magický klíč _prefix:

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

To je nyní ekvivalentní zápisu $egFooBarUseExtraFeature = false; v PHP.

Složitější příklad:

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

První nastavení, $wgFooBarEnabledNamespaces, má klíče, které jsou čísla, takže je PHP převede na celá čísla, i když jsou to řetězce v JSON. Vzhledem k tomu, jak PHP zachází s celočíselnými klíči při slučování polí, musíme zde použít jiný typ sloučení, takže pomocí magického klíče nastavíme jinou "strategii sloučení". Ve druhém příkladu máme vnořené pole, které vyžaduje jiný typ sloučení, protože chceme lidem umožnit, aby do svých LocalSettings.php zapisovali $wgFooBarCoolStuff['user']['foo'] = true;.

Změny v manifestu verze 2

Verze MediaWiki:
1.29

S MediaWiki 1.29 byla představena nová verze manifestu (2). V této verzi je konfigurační sekce vylepšena několika způsoby. Pro podporu těchto změn se trochu změnil podpis sady konfiguračních voleb a konfigurační hodnoty. Klíčem objektu config je stále název konfigurace; hodnota tohoto klíče je však objekt, který popisuje tuto možnost konfigurace, kde jedna z hodnot je hodnota. Informace o tom, jaké jsou konkrétní klíče a hodnoty pro volbu konfigurace, můžete najít na stránce dokumentace k registraci rozšíření. Jednoduchý příklad nového schématu, které je jednoduše jednou konfigurační možností a její hodnotou, by vypadal takto:

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

Složitější by vypadalo takto:

{
	"config_prefix": "eg",
	"config": {
		"MyExtSetting": {
			"value": true,
			"path": false,
			"description": "Popis konfigurace",
			"descriptionmsg": "myextension-config-myextsetting",
			"public": true
		},
		"FooBarCoolStuff": {
			"value": {
				"sysop": {
					"foo": true,
					"bar": false
				}
			},
		    "merge_strategy": "array_plus_2d"
		}
	},
	"manifest_version": 2
}
Verze 2 schématu je nekompatibilní s verzí 1. Budete tedy muset převést svůj stávající soubor "extension.json" do nového formátu pomocí skriptu updateExtensionJsonSchema.php .

path

Jak je ukázáno v příkladu výše, možnost konfigurace může mít definovaný klíč path. Je-li přítomen a nastaven na true, bude hodnota nastavení interpretována jako místní cesta k rozšíření. Rozšíření může například definovat svou konfiguraci jako

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

Hodnota pro možnost konfigurace "Setting" bude převedena na $wgExtensionDirectory/FooBar/some_file.txt.

strategie slučování

Strategie sloučení definuje, jak sloučit výchozí hodnotu nastavení konfigurace s globální hodnotou (hodnota globální proměnné $wgXXX). To má smysl pouze pro nastavení konfigurace s hodnotou pole. K dispozici jsou následující strategie sloučení:

  • array_merge – používá příkaz PHP array_merge: Prvky pole s numerickými klíči budou interpretovány jako neasociativní položky seznamu a zřetězeny do pole (v případě potřeby budou klíče přečíslovány), prvky pole s nenumerickými klíči budou interpretovány jako položky hashmap a přepsány položky se stejným klíčem.
  • array_plus – používá PHP operátor +, takže pole s výchozí hodnotou budou použita pouze v případě, že odpovídající pole není nastaveno v globální hodnotě. To je užitečné pro asociativní pole s celočíselnými klíči (jako jsou ID jmenného prostoru).
  • array_plus_2d – používá wfArrayPlus2d ke správnému zpracování vnořených polí do hloubky 2 (např. $wgGroupPermissions ).
  • array_merge_recursive – zvládá pole ještě hlubší než 2 s array_merge_recursive. Vzhledem k neintuitivnímu chování této metody (příklad) se tato strategie nedoporučuje. Nastavení konfigurace, které je více než 2 úrovně hluboké, naznačuje, že se v jednom nastavení konfiguruje příliš mnoho věcí a rozdělení do více nastavení může být dobrý nápad.
  • array_replace_recursive – používá array_replace_recursive, v podstatě rekurzivní verzi array_plus. Na rozdíl od array_merge_recursive to bude pracovat s poli bez pole tak, jak by se dalo očekávat.
  • provide_default (od MW 1.35.3) – žádné slučování. Výchozí hodnota se použije pouze v případě, že není nastavena žádná globální hodnota.

Pokud to není explicitně nastaveno, výchozí strategie sloučení je array_merge. Pokud alespoň jedna z globálních hodnot a výchozích hodnot není pole, strategie sloučení je ignorována a globální hodnota jednoduše přepíše výchozí.

config_prefix

Verze MediaWiki:
1.28

Předpona, která se má umístit před konfigurační nastavení při exportu do $GLOBALS.

Výchozí hodnota je "wg", takže konfigurační nastavení "Example" odpovídá globálnímu PHP $wgExample. Upozorňujeme, že výběr jiné předpony konfigurace může ztížit nalezení nastavení rozšíření odpovídající danému globálnímu.

ParsoidModules

Verze MediaWiki:
1.35
Gerrit change 597639

Pole Parsoid specifikátorů rozšiřujícího modulu. Rozšiřující modul Parsoid je třída implementující Wikimedia\Parsoid\Ext\ExtensionModule

Rozšiřující modul Parsoid lze specifikovat třemi způsoby:

  • Přímý odkaz na třídu implementující třídu ExtensionModule (která je součástí Parsoid-PHP, nikoli jádra MediaWiki). Příklad viz rozšíření Kartograf.
  • Ekvivalentní zastoupení ObjectFactory v JSON. Příklad viz rozšíření Cite.
  • Specifikace modulu specifická pro Parsoid.


TODO: document


ParserTestFiles

Soubory testovací sady analyzátoru, které má spustit parserTests.php, když mu není předán žádný konkrétní název souboru.

Tato volba přímo koresponduje s globální proměnnou $wgParserTestFiles . Informace o konfiguraci naleznete v příslušné dokumentaci.


ServiceWiringFiles

Pole názvů souborů servisních kabelových souborů, které mají být načteny výchozí instancí MediaWikiServices.

Tato volba přímo koresponduje s globální proměnnou $wgServiceWiringFiles . Informace o konfiguraci naleznete v příslušné dokumentaci.


attributes

Registrační informace pro další rozšíření. To umožňuje jednomu rozšíření registrovat věci s jinými rozšířeními. Hodnoty atributů musí být pole nebo objekty JSON a při načtení v PHP budou sloučeny dohromady.

V manifest_version 1 to byly klíče nejvyšší úrovně, které mohly být libovolně pojmenovány:

"EventLoggingSchemas": {
    "MySchema": 123
}

V manifest_version 2 jsou nyní pod klíčem attributes nejvyšší úrovně a pak jsou vnořeny pod názvem rozšíření, ke kterému atribut patří.

Úplný název atributu je zřetězením názvu rozšíření a názvu atributu (EventLoggingSchemas v příkladu níže). Každý klíč nastavený přímo pod attributes musí odpovídat názvu rozšíření (libovolné klíče atributů nejvyšší úrovně nejsou podporovány). Pokud rozšíření (v tomto příkladu EventLogging) není nainstalováno, atributy se do registru nenačtou.

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

Pro přístup k hodnotě atributu v PHP můžete použít ExtensionRegistry:

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

load_composer_autoloader

Načtěte autoloader composeru pro toto rozšíření, pokud je k dispozici. Toto by se mělo použít, pokud má rozšíření závislosti na knihovnách, které jsou specifikovány v composer.json. V zásadě je ekvivalentní následujícímu kódu:

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