registration: Support conditionally registered namespaces
Some extensions (e.g. EventLogging) conditionally register a namespace depending upon the wiki's configuration using the CanonicalNamespaces hook. Since the "namespaces" key automatically registers the namespace, we need an option to not register it and let the extension take care of that manually using the hook. All of the other namespace related settings are safe to unconditionally set since they won't do anything if the namespace doesn't actually exist. Bug: T141604 Change-Id: Ie8c217fdc8bd783b30f98210309ea56fef39c0da
This commit is contained in:
parent
519e92e1e0
commit
93aed1e7eb
3 changed files with 14 additions and 1 deletions
|
|
@ -625,6 +625,11 @@
|
|||
"capitallinkoverride": {
|
||||
"type": "boolean",
|
||||
"description": "Set $wgCapitalLinks on a per-namespace basis"
|
||||
},
|
||||
"conditional": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the namespace is conditional upon configuration and should not be registered (requires separate registration via a hook)",
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
"required": ["id", "constant", "name"]
|
||||
|
|
|
|||
|
|
@ -615,6 +615,11 @@
|
|||
"capitallinkoverride": {
|
||||
"type": "boolean",
|
||||
"description": "Set $wgCapitalLinks on a per-namespace basis"
|
||||
},
|
||||
"conditional": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the namespace is conditional upon configuration and should not be registered (requires separate registration via a hook)",
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
"required": ["id", "constant", "name"]
|
||||
|
|
|
|||
|
|
@ -243,7 +243,10 @@ class ExtensionProcessor implements Processor {
|
|||
foreach ( $info['namespaces'] as $ns ) {
|
||||
$id = $ns['id'];
|
||||
$this->defines[$ns['constant']] = $id;
|
||||
$this->attributes['ExtensionNamespaces'][$id] = $ns['name'];
|
||||
if ( !( isset( $ns['conditional'] ) && $ns['conditional'] ) ) {
|
||||
// If it is not conditional, register it
|
||||
$this->attributes['ExtensionNamespaces'][$id] = $ns['name'];
|
||||
}
|
||||
if ( isset( $ns['gender'] ) ) {
|
||||
$this->globals['wgExtraGenderNamespaces'][$id] = $ns['gender'];
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue