This extension is a part of the CommunityConfigurationExample as an example usage of Community configuration in a feature.
An end to end setup of Community configuration depends on three components:
- This extension,
CommunityConfiguration
- The example usage in
CommunityConfigurationExample
To set up Community configuration 2.0, please follow those instructions:
# clone the necessary extensions
core $ git clone https://gitlab.wikimedia.org/repos/growth/community-configuration-example extensions/CommunityConfigurationExample
core $ git clone https://gitlab.wikimedia.org/repos/growth/community-configuration extensions/CommunityConfiguration
# enable extensions in LocalSettings.php
core $ echo "wfLoadExtensions( ['CommunityConfiguration', 'CommunityConfigurationExample' ] );" >> LocalSettings.php
Once done, you should be able to access CommunityConfiguration from Special:CommunityConfigurationExample
. Interacting with the Community configuration interface should be also working:
core $ php maintenance/run.php shell
> $config = \MediaWiki\MediaWikiServices::getInstance()->get('CommunityConfiguration.ProviderFactory')->newProvider('static-example')->loadValidConfiguration()
= StatusValue {#5739
+value: [
"wgFooBar" => 42,
],
+success: [],
+successCount: 0,
+failCount: 0,
}
> $config->isOK()
= true
> $config->getValue()
= [
"wgFooBar" => 42,
]
>
For a given JSON schema defintion, eg: community-configuration-example/src/Schemas/schema_draft-07.json
core $ php maintenance/run.php shell
> $provider = \MediaWiki\MediaWikiServices::getInstance()->get('CommunityConfiguration.ProviderFactory')->newProvider('FooBar');
= MediaWiki\Extension\CommunityConfiguration\Provider\DataConfigurationProvider {#5696}
> $provider->getValidator()->validate( [ 'FooBar' => 1 ] )->isOk();
= false
> $provider->getValidator()->validate( [ 'FooBar' => 1 ] )->getErrors();
= [
[
"type" => "error",
"message" => "communityconfiguration-schema-validation-error",
"params" => [
"/FooBar",
"The data (integer) must match the type: string",
Opis\JsonSchema\Errors\ValidationError {#6802},
],
],
]
>