[BUGFIX] Make Import/Export work with Package Manager 83/28183/4
authorBenjamin Mack <benni@typo3.org>
Sat, 8 Mar 2014 11:29:56 +0000 (12:29 +0100)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Sat, 8 Mar 2014 12:30:21 +0000 (13:30 +0100)
When displaying the import/export backend module
there are warnings and an empty extension list,
because the extension Selector does not use the
API to fetch the extension list, but does a raw
$TYPO3_LOADED_EXT instead.

Resolves: #56670
Releases: 6.2
Change-Id: I851cc1f7e01acd9f743559a9400340364280ba7e
Reviewed-on: https://review.typo3.org/28183
Reviewed-by: Markus Klein
Tested-by: Markus Klein
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
typo3/sysext/impexp/Classes/Controller/ImportExportController.php

index a0bc870..14ace2b 100644 (file)
@@ -1217,16 +1217,17 @@ class ImportExportController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
         * @todo Define visibility
         */
        public function extensionSelector($prefix, $value) {
-               global $TYPO3_LOADED_EXT;
-               $extTrav = array_keys($TYPO3_LOADED_EXT);
+               $loadedExtensions = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getLoadedExtensionListArray();
+
                // make box:
                $opt = array();
                $opt[] = '<option value=""></option>';
-               foreach ($extTrav as $v) {
+               foreach ($loadedExtensions as $extensionKey) {
+                       $sel = '';
                        if (is_array($value)) {
-                               $sel = in_array($v, $value) ? ' selected="selected"' : '';
+                               $sel = in_array($extensionKey, $value) ? ' selected="selected"' : '';
                        }
-                       $opt[] = '<option value="' . htmlspecialchars($v) . '"' . $sel . '>' . htmlspecialchars($v) . '</option>';
+                       $opt[] = '<option value="' . htmlspecialchars($extensionKey) . '"' . $sel . '>' . htmlspecialchars($extensionKey) . '</option>';
                }
                return '<select name="' . $prefix . '[]" multiple="multiple" size="' . \TYPO3\CMS\Core\Utility\MathUtility::forceIntegerInRange(count($opt), 5, 10) . '">' . implode('', $opt) . '</select>';
        }