[BUGFIX] Support plugins in namespaced extensions
authorAske Ertmann <aertmann@gmail.com>
Tue, 9 Oct 2012 13:16:21 +0000 (15:16 +0200)
committerIngo Pfennigstorf <i.pfennigstorf@gmail.com>
Tue, 30 Oct 2012 09:40:23 +0000 (10:40 +0100)
The function registerPlugin doesn't handle namespaced extension keys
differently than normal extension keys, leading to being unable to
read the configuration set in the configurePlugin function.
In the configurePlugin the vendor name is stripped from the extension name,
but the same is not done in registerPlugin. This leads to it being
impossible to select the plugin in the backend when inserting/editing a
plugin content element.

Change-Id: I5fda7631e59262c93ca4955eb262a824ed9e8231
Fixes: #41785
Releases: 6.0
Reviewed-on: http://review.typo3.org/15440
Reviewed-by: Aske Ertmann
Tested-by: Aske Ertmann
Reviewed-by: Ingo Pfennigstorf
Tested-by: Ingo Pfennigstorf
typo3/sysext/extbase/Classes/Utility/ExtensionUtility.php

index 2a887e5..8cbe7db 100644 (file)
@@ -161,6 +161,9 @@ tt_content.' . $pluginSignature . ' {
                if (empty($extensionName)) {
                        throw new \InvalidArgumentException('The extension name was invalid (must not be empty and must match /[A-Za-z][_A-Za-z0-9]/)', 1239891989);
                }
+               if (FALSE !== $delimiterPosition = strrpos($extensionName, '.')) {
+                       $extensionName = substr($extensionName, $delimiterPosition + 1);
+               }
                $extensionName = str_replace(' ', '', ucwords(str_replace('_', ' ', $extensionName)));
                $pluginSignature = strtolower($extensionName) . '_' . strtolower($pluginName);
                \TYPO3\CMS\Core\Extension\ExtensionManager::addPlugin(array($pluginTitle, $pluginSignature, $pluginIconPathAndFilename), $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions'][$extensionName]['plugins'][$pluginName]['pluginType']);
@@ -508,4 +511,4 @@ tt_content.' . $pluginSignature . ' {
 }
 
 
-?>
\ No newline at end of file
+?>