summaryrefslogtreecommitdiff
path: root/includes/registration/ExtensionProcessor.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/registration/ExtensionProcessor.php')
-rw-r--r--includes/registration/ExtensionProcessor.php27
1 files changed, 25 insertions, 2 deletions
diff --git a/includes/registration/ExtensionProcessor.php b/includes/registration/ExtensionProcessor.php
index 0b594b42..a286f6bf 100644
--- a/includes/registration/ExtensionProcessor.php
+++ b/includes/registration/ExtensionProcessor.php
@@ -62,6 +62,8 @@ class ExtensionProcessor implements Processor {
'wgExtraGenderNamespaces' => 'array_plus',
'wgNamespacesWithSubpages' => 'array_plus',
'wgNamespaceContentModels' => 'array_plus',
+ 'wgNamespaceProtection' => 'array_plus',
+ 'wgCapitalLinkOverrides' => 'array_plus',
);
/**
@@ -144,9 +146,10 @@ class ExtensionProcessor implements Processor {
/**
* @param string $path
* @param array $info
+ * @param int $version manifest_version for info
* @return array
*/
- public function extractInfo( $path, array $info ) {
+ public function extractInfo( $path, array $info, $version ) {
$this->extractConfig( $info );
$this->extractHooks( $info );
$dir = dirname( $path );
@@ -189,6 +192,16 @@ class ExtensionProcessor implements Processor {
);
}
+ public function getRequirements( array $info ) {
+ $requirements = array();
+ $key = ExtensionRegistry::MEDIAWIKI_CORE;
+ if ( isset( $info['requires'][$key] ) ) {
+ $requirements[$key] = $info['requires'][$key];
+ }
+
+ return $requirements;
+ }
+
protected function extractHooks( array $info ) {
if ( isset( $info['Hooks'] ) ) {
foreach ( $info['Hooks'] as $name => $value ) {
@@ -222,6 +235,12 @@ class ExtensionProcessor implements Processor {
if ( isset( $ns['defaultcontentmodel'] ) ) {
$this->globals['wgNamespaceContentModels'][$id] = $ns['defaultcontentmodel'];
}
+ if ( isset( $ns['protection'] ) ) {
+ $this->globals['wgNamespaceProtection'][$id] = $ns['protection'];
+ }
+ if ( isset( $ns['capitallinkoverride'] ) ) {
+ $this->globals['wgCapitalLinkOverrides'][$id] = $ns['capitallinkoverride'];
+ }
}
}
}
@@ -320,10 +339,14 @@ class ExtensionProcessor implements Processor {
/**
* @param string $name
- * @param mixed $value
+ * @param array $value
* @param array &$array
+ * @throws InvalidArgumentException
*/
protected function storeToArray( $name, $value, &$array ) {
+ if ( !is_array( $value ) ) {
+ throw new InvalidArgumentException( "The value for '$name' should be an array" );
+ }
if ( isset( $array[$name] ) ) {
$array[$name] = array_merge_recursive( $array[$name], $value );
} else {