Pwirth has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/393564 )
Change subject: BSFoundation: Used extension attributes for registration and added support for manifest v2 ...................................................................... BSFoundation: Used extension attributes for registration and added support for manifest v2 Change-Id: I1b5704528e964de10911bb5e1540e96ce1dd9f0e --- M extension.json M includes/DefaultSettings.php M includes/ExtensionManager.class.php M src/DynamicFileDispatcher/Factory.php M src/EntityRegistry.php 5 files changed, 76 insertions(+), 28 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BlueSpiceFoundation refs/changes/64/393564/1 diff --git a/extension.json b/extension.json index 7e45d74..eeaf919 100644 --- a/extension.json +++ b/extension.json @@ -8,6 +8,24 @@ "url": "http://bluespice.com", "descriptionmsg": "bluespicefoundation-desc", "type": "other", + "attributes": { + "BlueSpiceFoundation": { + "bsgExtensions": { + "BlueSpiceFoundation": { + "configDefinitions": { + "Logo": "\\BlueSpice\\ConfigDefinition\\Logo::getInstance", + "FileExtensions": "\\BlueSpice\\ConfigDefinition\\FileExtensions::getInstance", + "ImageExtensions": "\\BlueSpice\\ConfigDefinition\\ImageExtensions::getInstance", + "Favicon": "\\BlueSpice\\ConfigDefinition\\Favicon::getInstance" + } + } + }, + "bsgDynamicFileRegistry": { + "userprofileimage": "\\BlueSpice\\DynamicFileDispatcher\\UserProfileImage" + }, + "bsgEntityRegistry": {} + } + }, "ExtensionFunctions": [ "BsCoreHooks::setup" ], @@ -458,14 +476,6 @@ } }, "ConfigFiles": { - "value": [] - }, - "DynamicFileRegistry": { - "value": { - "userprofileimage": "\\BlueSpice\\DynamicFileDispatcher\\UserProfileImage" - } - }, - "EntityRegistry": { "value": [] } }, diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 716ce55..59a8529 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -318,20 +318,6 @@ ) ); /** - * BsExtensionManager extension registration - */ -$GLOBALS['bsgExtensions'] = [ - "BlueSpiceFoundation" => [ - "configDefinitions" => [ - "Logo" => "\\BlueSpice\\ConfigDefinition\\Logo::getInstance", - "FileExtensions" => "\\BlueSpice\\ConfigDefinition\\FileExtensions::getInstance", - "ImageExtensions" => "\\BlueSpice\\ConfigDefinition\\ImageExtensions::getInstance", - "Favicon" => "\\BlueSpice\\ConfigDefinition\\Favicon::getInstance", - ] - ] -]; - -/** * BsTemplateHelper template directory overwrite * $bsgTemplates = array( * BSExtension.Template.Name": "$wgExtensionsDirectory/MyExtension/PathToTemplateDir", diff --git a/includes/ExtensionManager.class.php b/includes/ExtensionManager.class.php index 051ccc6..92b0f17 100644 --- a/includes/ExtensionManager.class.php +++ b/includes/ExtensionManager.class.php @@ -205,14 +205,30 @@ */ public static function initialiseExtensions( $oCore ) { wfProfileIn( 'Performance: ' . __METHOD__ ); - $aBSExtFromJSON = ExtensionRegistry::getInstance()->getAttribute( + $extRegistry = ExtensionRegistry::getInstance(); + $aBSExtFromJSON = $extRegistry->getAttribute( 'bsgExtensions' ); + foreach( $extRegistry->getAllThings() as $sExtName => $aDefinition ) { + //attributes in manifest version 2+ + $attrName = "{$sExtName}bsgExtensions"; + if( empty( $extRegistry->getAttribute( $attrName ) ) ) { + continue; + } + + $aBSExtFromJSON[$sExtName] = $extRegistry->getAttribute( + $attrName + ); + } + + if( empty( $GLOBALS['bsgExtensions'] ) ) { + $GLOBALS['bsgExtensions'] = []; + } if( !empty( $aBSExtFromJSON ) ) { - $GLOBALS['bsgExtensions'] = array_replace_recursive( - $aBSExtFromJSON, - $GLOBALS['bsgExtensions'] + $GLOBALS['bsgExtensions'] = array_merge( + $GLOBALS['bsgExtensions'], + $aBSExtFromJSON ); } diff --git a/src/DynamicFileDispatcher/Factory.php b/src/DynamicFileDispatcher/Factory.php index 34d26e2..29e61a5 100644 --- a/src/DynamicFileDispatcher/Factory.php +++ b/src/DynamicFileDispatcher/Factory.php @@ -73,7 +73,25 @@ return $this->modules; } - $this->modules = $this->config->get( 'DynamicFileRegistry' ); + $extRegistry = \ExtensionRegistry::getInstance(); + $this->modules = $extRegistry->getAttribute( + 'bsgDynamicFileRegistry' + ); + foreach( $extRegistry->getAllThings() as $sExtName => $aDefinition ) { + //attributes in manifest version 2+ + $attrName = "{$sExtName}bsgDynamicFileRegistry"; + if( empty( $extRegistry->getAttribute( $attrName ) ) ) { + continue; + } + + $this->modules = array_merge( + $this->modules, + $extRegistry->getAttribute( + $attrName + ) + ); + } + return $this->modules; } } \ No newline at end of file diff --git a/src/EntityRegistry.php b/src/EntityRegistry.php index 55189ca..f1f157c 100644 --- a/src/EntityRegistry.php +++ b/src/EntityRegistry.php @@ -53,7 +53,25 @@ if( $this->entitydefinitions && !$bForceReload ) { return true; } - $this->entitydefinitions = $this->config->get( 'EntityRegistry' ); + + $extRegistry = \ExtensionRegistry::getInstance(); + $this->entitydefinitions = $extRegistry->getAttribute( + 'bsgEntityRegistry' + ); + foreach( $extRegistry->getAllThings() as $sExtName => $aDefinition ) { + //attributes in manifest version 2+ + $attrName = "{$sExtName}bsgEntityRegistry"; + if( empty( $extRegistry->getAttribute( $attrName ) ) ) { + continue; + } + + $this->entitydefinitions = array_merge( + $this->entitydefinitions, + $extRegistry->getAttribute( + $attrName + ) + ); + } //This hook is deprecated - Use config mechanism in extension.json to //register entities -- To view, visit https://gerrit.wikimedia.org/r/393564 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1b5704528e964de10911bb5e1540e96ce1dd9f0e Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/BlueSpiceFoundation Gerrit-Branch: master Gerrit-Owner: Pwirth <wi...@hallowelt.biz> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits