[!!!][TASK] Remove internal_type=file/file_reference 61/59361/11
authorBenni Mack <benni@typo3.org>
Mon, 7 Jan 2019 18:40:30 +0000 (19:40 +0100)
committerGeorg Ringer <georg.ringer@gmail.com>
Mon, 14 Jan 2019 13:19:12 +0000 (14:19 +0100)
This drops TCA type=group with internal_type=file and
internal_type=file_reference handling.
This patch is rather huge since detail handling of this
stuff is spread throughout the core. Additionally, some
further methods become unused and oboselete along the way.
Most of them - except DataHandler->process_uploads() - have
been used internally only and can be safetly dropped,
while process_uploads() which has always been part of the
externally called API is substituted with a no-op method.

Resolves: #87428
Releases: master
Change-Id: Ia60b5d0e021b34adf4b4187a5f1fe4475b0070b4
Reviewed-on: https://review.typo3.org/59361
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: TYPO3com <noreply@typo3.com>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
69 files changed:
typo3/sysext/backend/Classes/Controller/EditDocumentController.php
typo3/sysext/backend/Classes/Controller/SimpleDataHandlerController.php
typo3/sysext/backend/Classes/Form/Element/GroupElement.php
typo3/sysext/backend/Classes/Form/FieldControl/InsertClipboard.php
typo3/sysext/backend/Classes/Form/FieldWizard/FileThumbnails.php [deleted file]
typo3/sysext/backend/Classes/Form/FieldWizard/FileTypeList.php [deleted file]
typo3/sysext/backend/Classes/Form/FieldWizard/FileUpload.php [deleted file]
typo3/sysext/backend/Classes/Form/FieldWizard/OtherLanguageContent.php
typo3/sysext/backend/Classes/Form/FormDataProvider/TcaGroup.php
typo3/sysext/backend/Classes/Form/NodeFactory.php
typo3/sysext/backend/Classes/History/RecordHistory.php
typo3/sysext/backend/Classes/Utility/BackendUtility.php
typo3/sysext/backend/Tests/Unit/Form/FormDataProvider/TcaGroupTest.php
typo3/sysext/core/Classes/DataHandling/DataHandler.php
typo3/sysext/core/Classes/DataHandling/TableColumnSubType.php
typo3/sysext/core/Classes/Database/ReferenceIndex.php
typo3/sysext/core/Classes/Database/SoftReferenceIndex.php
typo3/sysext/core/Classes/Migrations/TcaMigration.php
typo3/sysext/core/Classes/Tree/TableConfiguration/TreeDataProviderFactory.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-87193-DeprecatedFunctionalityRemoved.rst
typo3/sysext/core/Tests/Unit/Migrations/TcaMigrationTest.php
typo3/sysext/core/Tests/Unit/Tree/TableConfiguration/TreeDataProviderFactoryTest.php
typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/Configuration/TCA/tx_blogexample_domain_model_blog.php
typo3/sysext/extbase/Tests/Unit/Persistence/Generic/Mapper/DataMapFactoryTest.php
typo3/sysext/feedit/Classes/DataHandling/FrontendEditDataHandler.php
typo3/sysext/impexp/Classes/Export.php
typo3/sysext/impexp/Classes/Import.php
typo3/sysext/impexp/Tests/Functional/Export/GroupFileAndFileReferenceItemInFlexFormTest.php [deleted file]
typo3/sysext/impexp/Tests/Functional/Export/GroupFileAndFileReferenceItemTest.php [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItem.csv [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemInFlexForm.csv [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemWithRootLevelAndPagesAllowed.csv [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemWithRootLevelNotAllowed.csv [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemWithRootLevelOnlyAllowed.csv [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseImports/tx_impexpgroupfiles_item.xml [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Configuration/TCA/tx_impexpgroupfiles_item.php [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Private/Language/locallang_db.xml [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Public/Icons/Extension.gif [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Public/Icons/icon_tx_impextgroupfiles_item.gif [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/ext_emconf.php [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/ext_tables.php [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/ext_tables.sql [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/Folders/uploads/tx_impexpgroupfiles/typo3_image4.jpg [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/impexp-group-file-and-file_reference-item-but-images-not-included.xml [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/impexp-group-file-and-file_reference-item-in-ff.xml [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/impexp-group-file-and-file_reference-item.xml [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-corrupt-image.xml
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-image-but-not-included.xml
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/pages-and-ttcontent-with-image.xml
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/impexp-group-file-and-file_reference-item-but-images-not-included.xml [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/impexp-group-file-and-file_reference-item-in-ff.xml [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/impexp-group-file-and-file_reference-item-on-pid-zero.xml [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/impexp-group-file-and-file_reference-item.xml [deleted file]
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-existing-different-image.xml
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-existing-same-image.xml
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image-but-not-included.xml
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image-with-forced-uids.xml
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-image.xml
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-rte-image-n-file-link.xml
typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/pages-and-ttcontent-with-two-images.xml
typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItemInFlexFormTest.php [deleted file]
typo3/sysext/impexp/Tests/Functional/Import/GroupFileAndFileReferenceItemTest.php [deleted file]
typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php
typo3/sysext/lowlevel/Classes/Command/CleanFlexFormsCommand.php
typo3/sysext/lowlevel/Classes/Controller/DatabaseIntegrityController.php
typo3/sysext/lowlevel/Classes/Integrity/DatabaseIntegrityCheck.php
typo3/sysext/recycler/Classes/Task/CleanerTask.php
typo3/sysext/workspaces/Classes/Controller/Remote/RemoteServer.php

index fbf37a5..2a103fa 100644 (file)
@@ -533,8 +533,6 @@ class EditDocumentController
 
         // Perform the saving operation with DataHandler:
         if ($this->doSave === true) {
-            // @todo: Make DataHandler understand UploadedFileInterface and submit $request->getUploadedFiles() instead of $_FILES here
-            $tce->process_uploads($_FILES);
             $tce->process_datamap();
             $tce->process_cmdmap();
         }
index 0cc7c1f..c7a9909 100644 (file)
@@ -293,8 +293,6 @@ class SimpleDataHandlerController
         if (is_array($this->mirror)) {
             $this->tce->setMirror($this->mirror);
         }
-        // Register uploaded files
-        $this->tce->process_uploads($_FILES);
         // Execute actions:
         $this->tce->process_datamap();
         $this->tce->process_cmdmap();
index 3efb5c1..2c4e949 100644 (file)
@@ -77,25 +77,13 @@ class GroupElement extends AbstractFormElement
         'tableList' => [
             'renderType' => 'tableList',
         ],
-        'fileTypeList' => [
-            'renderType' => 'fileTypeList',
-            'after' => [ 'tableList' ],
-        ],
-        'fileThumbnails' => [
-            'renderType' => 'fileThumbnails',
-            'after' => [ 'fileTypeList' ],
-        ],
         'recordsOverview' => [
             'renderType' => 'recordsOverview',
-            'after' => [ 'fileThumbnails' ],
-        ],
-        'fileUpload' => [
-            'renderType' => 'fileUpload',
-            'after' => [ 'recordsOverview' ],
+            'after' => [ 'tableList' ],
         ],
         'localizationStateSelector' => [
             'renderType' => 'localizationStateSelector',
-            'after' => [ 'fileUpload' ],
+            'after' => [ 'recordsOverview' ],
         ],
         'otherLanguageContent' => [
             'renderType' => 'otherLanguageContent',
@@ -145,19 +133,7 @@ class GroupElement extends AbstractFormElement
 
         $listOfSelectedValues = [];
         $selectorOptionsHtml = [];
-        if ($internalType === 'file_reference' || $internalType === 'file') {
-            // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-            foreach ($selectedItems as $selectedItem) {
-                $uidOrPath = $selectedItem['uidOrPath'];
-                $listOfSelectedValues[] = $uidOrPath;
-                $title = $selectedItem['title'];
-                $shortenedTitle = GeneralUtility::fixed_lgd_cs($title, $maxTitleLength);
-                $selectorOptionsHtml[] =
-                    '<option value="' . htmlspecialchars($uidOrPath) . '" title="' . htmlspecialchars($title) . '">'
-                        . htmlspecialchars($this->appendValueToLabelInDebugMode($shortenedTitle, $uidOrPath))
-                    . '</option>';
-            }
-        } elseif ($internalType === 'folder') {
+        if ($internalType === 'folder') {
             foreach ($selectedItems as $selectedItem) {
                 $folder = $selectedItem['folder'];
                 $listOfSelectedValues[] = $folder;
index a35e8f8..e813842 100644 (file)
@@ -18,7 +18,6 @@ namespace TYPO3\CMS\Backend\Form\FieldControl;
 use TYPO3\CMS\Backend\Form\AbstractNode;
 use TYPO3\CMS\Core\Localization\LanguageService;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Core\Utility\PathUtility;
 use TYPO3\CMS\Core\Utility\StringUtility;
 
 /**
@@ -53,16 +52,7 @@ class InsertClipboard extends AbstractNode
             'element' => $elementName,
             'clipboardItems' => [],
         ];
-        if ($internalType === 'file_reference' || $internalType === 'file') {
-            // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-            $title = sprintf($languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.clipInsert_file'), count($clipboardElements));
-            foreach ($clipboardElements as $clipboardElement) {
-                $dataAttributes['clipboardItems'][] = [
-                    'title' => rawurlencode(PathUtility::basename($clipboardElement['title'])),
-                    'value' => $clipboardElement['value'],
-                ];
-            }
-        } elseif ($internalType === 'db') {
+        if ($internalType === 'db') {
             $title = sprintf($languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.clipInsert_db'), count($clipboardElements));
             foreach ($clipboardElements as $clipboardElement) {
                 $dataAttributes['clipboardItems'][] = [
diff --git a/typo3/sysext/backend/Classes/Form/FieldWizard/FileThumbnails.php b/typo3/sysext/backend/Classes/Form/FieldWizard/FileThumbnails.php
deleted file mode 100644 (file)
index 80c45fa..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-declare(strict_types = 1);
-namespace TYPO3\CMS\Backend\Form\FieldWizard;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Backend\Form\AbstractNode;
-use TYPO3\CMS\Backend\Utility\BackendUtility;
-use TYPO3\CMS\Core\Messaging\FlashMessage;
-use TYPO3\CMS\Core\Messaging\FlashMessageService;
-use TYPO3\CMS\Core\Resource\ProcessedFile;
-use TYPO3\CMS\Core\Resource\ResourceFactory;
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Core\Utility\MathUtility;
-
-/**
- * Render thumbnails of selected files,
- * typically used with type=group and internal_type=file and file_reference.
- */
-class FileThumbnails extends AbstractNode
-{
-    /**
-     * Render thumbnails of selected files
-     *
-     * @return array
-     */
-    public function render(): array
-    {
-        $result = $this->initializeResultArray();
-
-        $table = $this->data['tableName'];
-        $fieldName = $this->data['fieldName'];
-        $row = $this->data['databaseRow'];
-        $parameterArray = $this->data['parameterArray'];
-        $config = $parameterArray['fieldConf']['config'];
-        $selectedItems = $parameterArray['itemFormElValue'];
-
-        if (!isset($config['internal_type'])
-            || ($config['internal_type'] !== 'file' && $config['internal_type'] !== 'file_reference')
-        ) {
-            // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-            // Thumbnails only make sense on file and file_reference
-            return $result;
-        }
-
-        $fileFactory = ResourceFactory::getInstance();
-        $thumbnailsHtml = [];
-        foreach ($selectedItems as $selectedItem) {
-            $uidOrPath = $selectedItem['uidOrPath'];
-            if (MathUtility::canBeInterpretedAsInteger($uidOrPath)) {
-                $fileObject = $fileFactory->getFileObject($uidOrPath);
-                if (!$fileObject->isMissing()) {
-                    $extension = $fileObject->getExtension();
-                    if (GeneralUtility::inList(
-                        $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
-                        $extension
-                    )
-                    ) {
-                        $thumbnailsHtml[] = '<li>';
-                        $thumbnailsHtml[] =     '<span class="thumbnail">';
-                        $thumbnailsHtml[] =         $fileObject->process(ProcessedFile::CONTEXT_IMAGEPREVIEW, [])->getPublicUrl(true);
-                        $thumbnailsHtml[] =     '</span>';
-                        $thumbnailsHtml[] = '</li>';
-                    }
-                }
-            } else {
-                $rowCopy = [];
-                $rowCopy[$fieldName] = $uidOrPath;
-                try {
-                    $icon = BackendUtility::thumbCode(
-                        $rowCopy,
-                        $table,
-                        $fieldName,
-                        '',
-                        '',
-                        $config['uploadfolder'],
-                        0,
-                        ' align="middle"'
-                    );
-                    $thumbnailsHtml[] =
-                        '<li>'
-                        . '<span class="thumbnail">'
-                        . $icon
-                        . '</span>'
-                        . '</li>';
-                } catch (\Exception $exception) {
-                    $message = $exception->getMessage();
-                    $flashMessage = GeneralUtility::makeInstance(
-                        FlashMessage::class,
-                        $message,
-                        '',
-                        FlashMessage::ERROR,
-                        true
-                    );
-                    $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
-                    $defaultFlashMessageQueue = $flashMessageService->getMessageQueueByIdentifier();
-                    $defaultFlashMessageQueue->enqueue($flashMessage);
-                    $this->logger->warning($message, ['table' => $table, 'row' => $row]);
-                }
-            }
-        }
-
-        $html = [];
-        if (!empty($thumbnailsHtml)) {
-            $html[] = '<ul class="list-inline">';
-            $html[] =   implode(LF, $thumbnailsHtml);
-            $html[] = '</ul>';
-        }
-
-        $result['html'] = implode(LF, $html);
-        return $result;
-    }
-}
diff --git a/typo3/sysext/backend/Classes/Form/FieldWizard/FileTypeList.php b/typo3/sysext/backend/Classes/Form/FieldWizard/FileTypeList.php
deleted file mode 100644 (file)
index dc3d7e4..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-declare(strict_types = 1);
-namespace TYPO3\CMS\Backend\Form\FieldWizard;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Backend\Form\AbstractNode;
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-
-/**
- * Render list of allowed / disalowwed file types,
- * typically used with type=group and internal_type=file.
- */
-class FileTypeList extends AbstractNode
-{
-    /**
-     * Render list of allowed and disallowed file types
-     *
-     * @return array
-     */
-    public function render(): array
-    {
-        $result = $this->initializeResultArray();
-
-        $parameterArray = $this->data['parameterArray'];
-        $config = $parameterArray['fieldConf']['config'];
-
-        if (!isset($config['allowed']) || !is_string($config['allowed']) || empty($config['allowed'])
-            || !isset($config['internal_type']) || $config['internal_type'] !== 'file'
-        ) {
-            // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-            // No handling if the field has no, or funny "allowed" setting, and if internal_type is not "file"
-            return $result;
-        }
-
-        $allowed = GeneralUtility::trimExplode(',', $config['allowed'], true);
-        $disallowed = isset($config['disallowed']) ? GeneralUtility::trimExplode(',', $config['disallowed'], true) : [];
-
-        $allowedHtml = [];
-        foreach ($allowed as $item) {
-            $allowedHtml[] = '<span class="label label-success">' . htmlspecialchars(strtoupper($item)) . '</span> ';
-        }
-        $disallowedHtml = [];
-        foreach ($disallowed as $item) {
-            $disallowedHtml[] = '<span class="label label-danger">' . htmlspecialchars(strtoupper($item)) . '</span> ';
-        }
-        $html = [];
-        if (!empty($allowedHtml) || !empty($disallowedHtml)) {
-            $html[] = '<div class="help-block">';
-            $html[] =   implode(LF, $allowedHtml);
-            $html[] =   implode(LF, $disallowedHtml);
-            $html[] = '</div>';
-        }
-
-        $result['html'] = implode(LF, $html);
-        return $result;
-    }
-}
diff --git a/typo3/sysext/backend/Classes/Form/FieldWizard/FileUpload.php b/typo3/sysext/backend/Classes/Form/FieldWizard/FileUpload.php
deleted file mode 100644 (file)
index b9ce9ed..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-declare(strict_types = 1);
-namespace TYPO3\CMS\Backend\Form\FieldWizard;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Backend\Form\AbstractNode;
-use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-
-/**
- * Render file upload,
- * typically used with type=group and internal_type=file and file_reference.
- */
-class FileUpload extends AbstractNode
-{
-    /**
-     * Render file upload
-     *
-     * @return array
-     */
-    public function render(): array
-    {
-        $backendUser = $this->getBackendUserAuthentication();
-        $result = $this->initializeResultArray();
-
-        $parameterArray = $this->data['parameterArray'];
-        $itemName = $parameterArray['itemFormElName'];
-        $uploadFieldId = $parameterArray['itemFormElID'] . '_files';
-        $config = $parameterArray['fieldConf']['config'];
-        $maxItems = $config['maxitems'];
-        $isDirectFileUploadEnabled = (bool)$backendUser->uc['edit_docModuleUpload'];
-
-        if (!isset($config['internal_type'])
-            || $config['internal_type'] !== 'file'
-            || !$isDirectFileUploadEnabled
-            || empty($config['uploadfolder'])
-        ) {
-            // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-            // No upload if disabled for user or upload folder missing
-            return $result;
-        }
-
-        if ($maxItems === 1) {
-            // If maxItems = 1 then automatically replace the current item file selector
-            $resultArray['additionalJavaScriptPost'][] =
-                'TBE_EDITOR.clearBeforeSettingFormValueFromBrowseWin[' . GeneralUtility::quoteJSvalue($itemName) . '] = {'
-                    . 'itemFormElID_file: ' . GeneralUtility::quoteJSvalue($uploadFieldId)
-                . '}';
-        }
-
-        // Insert the multiple attribute to enable HTML5 multiple file upload
-        $selectorMultipleAttribute = '';
-        $multipleFilenameSuffix = '';
-        if ($maxItems > 1) {
-            $selectorMultipleAttribute = ' multiple="multiple"';
-            $multipleFilenameSuffix = '[]';
-        }
-
-        $html= [];
-        $html[] = '<div id="' . $uploadFieldId . '">';
-        $html[] =   '<input';
-        $html[] =       ' type="file"';
-        $html[] =       $selectorMultipleAttribute;
-        $html[] =       ' name="data_files' . $this->data['elementBaseName'] . $multipleFilenameSuffix . '"';
-        $html[] =       ' size="35"';
-        $html[] =       ' onchange="' . implode('', $parameterArray['fieldChangeFunc']) . '"';
-        $html[] =   '/>';
-        $html[] = '</div>';
-
-        $result['html'] = implode(LF, $html);
-        return $result;
-    }
-
-    /**
-     * @return BackendUserAuthentication
-     */
-    protected function getBackendUserAuthentication()
-    {
-        return $GLOBALS['BE_USER'];
-    }
-}
index 3f2f928..702a726 100644 (file)
@@ -70,7 +70,7 @@ class OtherLanguageContent extends AbstractNode
         if ($defaultLanguageValue !== '') {
             $html[] = '<div class="t3-form-original-language">';
             $html[] =   $iconFactory->getIcon($this->data['systemLanguageRows'][0]['flagIconIdentifier'], Icon::SIZE_SMALL)->render();
-            $html[] =   $this->previewFieldValue($defaultLanguageValue, $fieldConfig, $fieldName);
+            $html[] =   $this->previewFieldValue($defaultLanguageValue);
             $html[] = '</div>';
         }
         $additionalPreviewLanguages = $this->data['additionalLanguageRows'];
@@ -85,7 +85,7 @@ class OtherLanguageContent extends AbstractNode
             if ($defaultLanguageValue !== '') {
                 $html[] = '<div class="t3-form-original-language">';
                 $html[] =   $iconFactory->getIcon($this->data['systemLanguageRows'][$previewLanguage['sys_language_uid']]['flagIconIdentifier'], Icon::SIZE_SMALL)->render();
-                $html[] =   $this->previewFieldValue($defaultLanguageValue, $fieldConfig, $fieldName);
+                $html[] =   $this->previewFieldValue($defaultLanguageValue);
                 $html[] = '</div>';
             }
         }
@@ -97,57 +97,10 @@ class OtherLanguageContent extends AbstractNode
      * Rendering preview output of a field value which is not shown as a form field but just outputted.
      *
      * @param string $value The value to output
-     * @param array $config Configuration for field.
-     * @param string $field Name of field.
      * @return string HTML formatted output
      */
-    protected function previewFieldValue($value, $config, $field = '')
+    protected function previewFieldValue($value)
     {
-        // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-        $value = (string)$value;
-        if ($config['config']['type'] === 'group'
-            && ($config['config']['internal_type'] === 'file' || $config['config']['internal_type'] === 'file_reference')
-        ) {
-            // Ignore upload folder if internal_type is file_reference
-            if ($config['config']['internal_type'] === 'file_reference') {
-                $config['config']['uploadfolder'] = '';
-            }
-            $table = 'tt_content';
-            // Making the array of file items:
-            $itemArray = GeneralUtility::trimExplode(',', $value, true);
-            // Showing thumbnails:
-            $imgs = [];
-            $iconFactory = GeneralUtility::makeInstance(IconFactory::class);
-            foreach ($itemArray as $imgRead) {
-                $imgParts = explode('|', $imgRead);
-                $imgPath = rawurldecode($imgParts[0]);
-                $rowCopy = [];
-                $rowCopy[$field] = $imgPath;
-                // Icon + click menu:
-                $absFilePath = GeneralUtility::getFileAbsFileName($config['config']['uploadfolder'] ? $config['config']['uploadfolder'] . '/' . $imgPath : $imgPath);
-                $fileInformation = pathinfo($imgPath);
-                $title = $fileInformation['basename'] . ($absFilePath && @is_file($absFilePath))
-                    ? ' (' . GeneralUtility::formatSize(filesize($absFilePath)) . ')'
-                    : ' - FILE NOT FOUND!';
-                $fileIcon = '<span title="' . htmlspecialchars($title) . '">' . $iconFactory->getIconForFileExtension($fileInformation['extension'], Icon::SIZE_SMALL)->render() . '</span>';
-                $imgs[] =
-                    '<span class="text-nowrap">' .
-                    BackendUtility::thumbCode(
-                        $rowCopy,
-                        $table,
-                        $field,
-                        '',
-                        '',
-                        $config['config']['uploadfolder'],
-                        0,
-                        ' align="middle"'
-                    ) .
-                    ($absFilePath ? BackendUtility::wrapClickMenuOnIcon($fileIcon, $absFilePath) : $fileIcon) .
-                    $imgPath .
-                    '</span>';
-            }
-            return implode('<br />', $imgs);
-        }
-        return nl2br(htmlspecialchars($value));
+        return nl2br(htmlspecialchars((string)$value));
     }
 }
index a32e510..2b6e2dd 100644 (file)
@@ -65,64 +65,7 @@ class TcaGroup implements FormDataProviderInterface
             $items = [];
             $sanitizedClipboardElements = [];
             $internalType = $fieldConfig['config']['internal_type'];
-
-            if ($internalType === 'file_reference' || $internalType === 'file') {
-                // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-                // Set 'allowed' config to "*" if not set
-                if (empty($fieldConfig['config']['allowed'])) {
-                    $result['processedTca']['columns'][$fieldName]['config']['allowed'] = '*';
-                }
-                // Force empty uploadfolder for file_reference type
-                if ($internalType === 'file_reference') {
-                    $result['processedTca']['columns'][$fieldName]['config']['uploadfolder'] = '';
-                }
-
-                // Simple list of files
-                $fileList = GeneralUtility::trimExplode(',', $databaseRowFieldContent, true);
-                $fileFactory = ResourceFactory::getInstance();
-                foreach ($fileList as $uidOrPath) {
-                    $item = [
-                        'uidOrPath' => $uidOrPath,
-                        'title' => $uidOrPath,
-                    ];
-                    try {
-                        if (MathUtility::canBeInterpretedAsInteger($uidOrPath)) {
-                            $fileObject = $fileFactory->getFileObject($uidOrPath);
-                            $item['title'] = $fileObject->getName();
-                        }
-                    } catch (Exception $exception) {
-                        continue;
-                    }
-                    $items[] = $item;
-                }
-
-                // Register elements from clipboard
-                $allowed = GeneralUtility::trimExplode(',', $result['processedTca']['columns'][$fieldName]['config']['allowed'], true);
-                $clipboard = GeneralUtility::makeInstance(Clipboard::class);
-                $clipboard->initializeClipboard();
-                $clipboardElements = $clipboard->elFromTable('_FILE');
-                if ($allowed[0] !== '*') {
-                    // If there are a set of allowed extensions, filter the content
-                    foreach ($clipboardElements as $elementValue) {
-                        $pathInfo = pathinfo($elementValue);
-                        if (in_array(strtolower($pathInfo['extension']), $allowed)) {
-                            $sanitizedClipboardElements[] = [
-                                'title' => $elementValue,
-                                'value' => $elementValue,
-                            ];
-                        }
-                    }
-                } else {
-                    // If all is allowed, insert all. This does NOT respect any disallowed extensions,
-                    // but those will be filtered away by the DataHandler
-                    foreach ($clipboardElements as $elementValue) {
-                        $sanitizedClipboardElements[] = [
-                            'title' => $elementValue,
-                            'value' => $elementValue,
-                        ];
-                    }
-                }
-            } elseif ($internalType === 'db') {
+            if ($internalType === 'db') {
                 if (empty($fieldConfig['config']['allowed'])) {
                     throw new \RuntimeException(
                         'Mandatory TCA config setting "allowed" missing in field "' . $fieldName . '" of table "' . $result['tableName'] . '"',
@@ -204,7 +147,7 @@ class TcaGroup implements FormDataProviderInterface
             } else {
                 throw new \UnexpectedValueException(
                     'TCA internal_type of field "' . $fieldName . '" in table ' . $result['tableName']
-                    . ' must be set to either "db", "file" or "file_reference"',
+                    . ' must be set to "db" or "folder".',
                     1438780511
                 );
             }
index a08a000..c2d8c3c 100644 (file)
@@ -108,9 +108,6 @@ class NodeFactory
 
         // Element wizards
         'defaultLanguageDifferences' => FieldWizard\DefaultLanguageDifferences::class,
-        'fileThumbnails' => FieldWizard\FileThumbnails::class,
-        'fileTypeList' => FieldWizard\FileTypeList::class,
-        'fileUpload' => FieldWizard\FileUpload::class,
         'localizationStateSelector' => FieldWizard\LocalizationStateSelector::class,
         'otherLanguageContent' => FieldWizard\OtherLanguageContent::class,
         'recordsOverview' => FieldWizard\RecordsOverview::class,
index 979c6a8..5bb672d 100644 (file)
@@ -237,8 +237,6 @@ class RecordHistory
                     $data[$rollbackData[0]][$rollbackData[1]][$rollbackData[2]] = $diffModified[$rollbackData[0]][$rollbackData[1]][$rollbackData[2]];
                     break;
             }
-            // Removing fields:
-            $data = $this->removeFilefields($rollbackData[0], $data);
             // Writes the data:
             $tce = GeneralUtility::makeInstance(DataHandler::class);
             $tce->dontProcessTransformations = true;
@@ -401,28 +399,6 @@ class RecordHistory
      *******************************/
 
     /**
-     * Will traverse the field names in $dataArray and look in $GLOBALS['TCA'] if the fields are of types which cannot
-     * be handled by the sys_history (that is currently group types with internal_type set to "file")
-     *
-     * @param string $table Table name
-     * @param array $dataArray The data array
-     * @return array The modified data array
-     * @internal
-     */
-    protected function removeFilefields($table, $dataArray)
-    {
-        // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-        if ($GLOBALS['TCA'][$table]) {
-            foreach ($GLOBALS['TCA'][$table]['columns'] as $field => $config) {
-                if ($config['config']['type'] === 'group' && $config['config']['internal_type'] === 'file') {
-                    unset($dataArray[$field]);
-                }
-            }
-        }
-        return $dataArray;
-    }
-
-    /**
      * Convert input element reference to workspace version if any.
      *
      * @param string $table Table of input element
index f487890..1483c52 100644 (file)
@@ -36,10 +36,7 @@ use TYPO3\CMS\Core\Imaging\IconFactory;
 use TYPO3\CMS\Core\Imaging\ImageManipulation\CropVariantCollection;
 use TYPO3\CMS\Core\Localization\LanguageService;
 use TYPO3\CMS\Core\Log\LogManager;
-use TYPO3\CMS\Core\Resource\AbstractFile;
-use TYPO3\CMS\Core\Resource\Exception\ResourceDoesNotExistException;
 use TYPO3\CMS\Core\Resource\File;
-use TYPO3\CMS\Core\Resource\ProcessedFile;
 use TYPO3\CMS\Core\Resource\ResourceFactory;
 use TYPO3\CMS\Core\Routing\InvalidRouteArgumentsException;
 use TYPO3\CMS\Core\Routing\RouterInterface;
@@ -1077,16 +1074,16 @@ class BackendUtility
     }
 
     /**
-     * Returns a linked image-tag for thumbnail(s)/fileicons/truetype-font-previews from a database row with a list of image files in a field
+     * Returns a linked image-tag for thumbnail(s)/fileicons/truetype-font-previews from a database row with sys_file_references
      * All $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] extension are made to thumbnails + ttf file (renders font-example)
-     * Thumbsnails are linked to the show_item.php script which will display further details.
+     * Thumbsnails are linked to ShowItemController (/thumbnails route)
      *
      * @param array $row Row is the database row from the table, $table.
      * @param string $table Table name for $row (present in TCA)
-     * @param string $field Field is pointing to the list of image files
+     * @param string $field Field is pointing to the connecting field of sys_file_references
      * @param string $backPath Back path prefix for image tag src="" field
      * @param string $thumbScript UNUSED since FAL
-     * @param string $uploaddir Optional: $uploaddir is the directory relative to Environment::getPublicPath() where the image files from the $field value is found (Is by default set to the entry in $GLOBALS['TCA'] for that field! so you don't have to!)
+     * @param string $uploaddir UNUSED since FAL
      * @param int $abs UNUSED
      * @param string $tparams Optional: $tparams is additional attributes for the image tags
      * @param int|string $size Optional: $size is [w]x[h] of the thumbnail. 64 is default.
@@ -1178,73 +1175,6 @@ class BackendUtility
                     $thumbData .= $imgTag;
                 }
             }
-        } else {
-            // Find uploaddir automatically
-            if ($uploaddir === null) {
-                $uploaddir = $GLOBALS['TCA'][$table]['columns'][$field]['config']['uploadfolder'];
-            }
-            $uploaddir = rtrim($uploaddir, '/');
-            // Traverse files:
-            $thumbs = GeneralUtility::trimExplode(',', $row[$field], true);
-            $thumbData = '';
-            foreach ($thumbs as $theFile) {
-                if ($theFile) {
-                    $fileName = trim($uploaddir . '/' . $theFile, '/');
-                    try {
-                        /** @var File $fileObject */
-                        $fileObject = ResourceFactory::getInstance()->retrieveFileOrFolderObject($fileName);
-                        // Skip the resource if it's not of type AbstractFile. One case where this can happen if the
-                        // storage has been externally modified and the field value now points to a folder
-                        // instead of a file.
-                        if (!$fileObject instanceof AbstractFile) {
-                            continue;
-                        }
-                        if ($fileObject->isMissing()) {
-                            $thumbData .= '<span class="label label-danger">'
-                                . htmlspecialchars(static::getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:warning.file_missing'))
-                                . '</span>&nbsp;' . htmlspecialchars($fileObject->getName()) . '<br />';
-                            continue;
-                        }
-                    } catch (ResourceDoesNotExistException $exception) {
-                        $thumbData .= '<span class="label label-danger">'
-                            . htmlspecialchars(static::getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:warning.file_missing'))
-                            . '</span>&nbsp;' . htmlspecialchars($fileName) . '<br />';
-                        continue;
-                    }
-
-                    $fileExtension = $fileObject->getExtension();
-                    if ($fileExtension === 'ttf'
-                        || GeneralUtility::inList($GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'], $fileExtension)
-                    ) {
-                        $imageUrl = $fileObject->process(
-                            ProcessedFile::CONTEXT_IMAGEPREVIEW,
-                            [
-                                'width' => $sizeParts[0],
-                                'height' => $sizeParts[1]
-                            ]
-                        )->getPublicUrl(true);
-
-                        $image = '<img src="' . htmlspecialchars($imageUrl) . '" hspace="2" border="0" title="' . htmlspecialchars($fileObject->getName()) . '"' . $tparams . ' alt="" />';
-                        if ($linkInfoPopup) {
-                            $onClick = 'top.TYPO3.InfoWindow.showItem(\'_FILE\', ' . GeneralUtility::quoteJSvalue($fileName) . ',\'\');return false;';
-                            $thumbData .= '<a href="#" onclick="' . htmlspecialchars($onClick) . '">' . $image . '</a> ';
-                        } else {
-                            $thumbData .= $image;
-                        }
-                    } else {
-                        // Gets the icon
-                        $fileIcon = '<span title="' . htmlspecialchars($fileObject->getName()) . '">'
-                            . $iconFactory->getIconForResource($fileObject, Icon::SIZE_SMALL)->render()
-                            . '</span>';
-                        if ($linkInfoPopup) {
-                            $onClick = 'top.TYPO3.InfoWindow.showItem(\'_FILE\', ' . GeneralUtility::quoteJSvalue($fileName) . ',\'\'); return false;';
-                            $thumbData .= '<a href="#" onclick="' . htmlspecialchars($onClick) . '">' . $fileIcon . '</a> ';
-                        } else {
-                            $thumbData .= $fileIcon;
-                        }
-                    }
-                }
-            }
         }
         return $thumbData;
     }
index 4ebeeae..3b3bff4 100644 (file)
@@ -83,85 +83,6 @@ class TcaGroupTest extends UnitTestCase
     /**
      * @test
      */
-    public function addDataSetsUploadFolderForFileReference()
-    {
-        $input = [
-            'databaseRow' => [
-                'aField' => '',
-            ],
-            'processedTca' => [
-                'columns' => [
-                    'aField' => [
-                        'config' => [
-                            'type' => 'group',
-                            'internal_type' => 'file_reference',
-                            'maxitems' => 99999,
-                        ],
-                    ],
-                ],
-            ],
-        ];
-
-        $expected = $input;
-        $expected['databaseRow']['aField'] = [];
-        $expected['processedTca']['columns']['aField']['config']['allowed'] = '*';
-        $expected['processedTca']['columns']['aField']['config']['clipboardElements'] = [];
-        $expected['processedTca']['columns']['aField']['config']['uploadfolder'] = '';
-
-        $clipboardProphecy = $this->prophesize(Clipboard::class);
-        GeneralUtility::addInstance(Clipboard::class, $clipboardProphecy->reveal());
-        $clipboardProphecy->initializeClipboard()->shouldBeCalled();
-        $clipboardProphecy->elFromTable('_FILE')->shouldBeCalled()->willReturn([]);
-
-        $this->assertEquals($expected, (new TcaGroup)->addData($input));
-    }
-
-    /**
-     * @test
-     */
-    public function addDataSetsFileData()
-    {
-        $input = [
-            'databaseRow' => [
-                'aField' => '/aDir/aFile.txt,/anotherDir/anotherFile.css',
-            ],
-            'processedTca' => [
-                'columns' => [
-                    'aField' => [
-                        'config' => [
-                            'type' => 'group',
-                            'internal_type' => 'file',
-                            'maxitems' => 99999,
-                        ],
-                    ],
-                ],
-            ],
-        ];
-
-        $clipboardProphecy = $this->prophesize(Clipboard::class);
-        GeneralUtility::addInstance(Clipboard::class, $clipboardProphecy->reveal());
-        $clipboardProphecy->initializeClipboard()->shouldBeCalled();
-        $clipboardProphecy->elFromTable('_FILE')->shouldBeCalled()->willReturn([]);
-
-        $expected = $input;
-        $expected['databaseRow']['aField'] = [
-            [
-                'uidOrPath' => '/aDir/aFile.txt',
-                'title' => '/aDir/aFile.txt',
-            ],
-            [
-                'uidOrPath' => '/anotherDir/anotherFile.css',
-                'title' => '/anotherDir/anotherFile.css',
-            ],
-        ];
-        $expected['processedTca']['columns']['aField']['config']['clipboardElements'] = [];
-        $expected['processedTca']['columns']['aField']['config']['allowed'] = '*';
-        $this->assertEquals($expected, (new TcaGroup)->addData($input));
-    }
-
-    /**
-     * @test
-     */
     public function addDataSetsFolderData()
     {
         $input = [
index 9174191..b409539 100644 (file)
@@ -32,7 +32,6 @@ use TYPO3\CMS\Core\Configuration\FlexForm\Exception\InvalidParentRowRootExceptio
 use TYPO3\CMS\Core\Configuration\FlexForm\Exception\InvalidPointerFieldValueException;
 use TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools;
 use TYPO3\CMS\Core\Configuration\Richtext;
-use TYPO3\CMS\Core\Core\Environment;
 use TYPO3\CMS\Core\Crypto\PasswordHashing\InvalidPasswordHashException;
 use TYPO3\CMS\Core\Crypto\PasswordHashing\PasswordHashFactory;
 use TYPO3\CMS\Core\Database\Connection;
@@ -55,10 +54,8 @@ use TYPO3\CMS\Core\Service\OpcodeCacheService;
 use TYPO3\CMS\Core\Type\Bitmask\Permission;
 use TYPO3\CMS\Core\Utility\ArrayUtility;
 use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
-use TYPO3\CMS\Core\Utility\File\BasicFileUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Core\Utility\MathUtility;
-use TYPO3\CMS\Core\Utility\PathUtility;
 use TYPO3\CMS\Core\Utility\StringUtility;
 use TYPO3\CMS\Core\Versioning\VersionState;
 
@@ -175,14 +172,6 @@ class DataHandler implements LoggerAwareInterface
     public $bypassWorkspaceRestrictions = false;
 
     /**
-     * If TRUE, file handling of attached files (addition, deletion etc) is bypassed - the value is saved straight away.
-     * YOU MUST KNOW what you are doing with this feature!
-     *
-     * @var bool
-     */
-    public $bypassFileHandling = false;
-
-    /**
      * If TRUE, access check, check for deleted etc. for records is bypassed.
      * YOU MUST KNOW what you are doing if you use this feature!
      *
@@ -227,22 +216,6 @@ class DataHandler implements LoggerAwareInterface
     public $overrideValues = [];
 
     /**
-     * [filename]=alternative_filename: Use this array to force another name onto a file.
-     * Eg. if you set ['/tmp/blablabal'] = 'my_file.txt' and '/tmp/blablabal' is set for a certain file-field,
-     * then 'my_file.txt' will be used as the name instead.
-     *
-     * @var array
-     */
-    public $alternativeFileName = [];
-
-    /**
-     * Array [filename]=alternative_filepath: Same as alternativeFileName but with relative path to the file
-     *
-     * @var array
-     */
-    public $alternativeFilePath = [];
-
-    /**
      * If entries are set in this array corresponding to fields for update, they are ignored and thus NOT updated.
      * You could set this array from a series of checkboxes with value=0 and hidden fields before the checkbox with 1.
      * Then an empty checkbox will disable the field.
@@ -316,20 +289,6 @@ class DataHandler implements LoggerAwareInterface
     protected $deletedRecords = [];
 
     /**
-     * A map between input file name and final destination for files being attached to records.
-     *
-     * @var array
-     */
-    public $copiedFileMap = [];
-
-    /**
-     * Contains [table][id][field] of fiels where RTEmagic images was copied. Holds old filename as key and new filename as value.
-     *
-     * @var array
-     */
-    public $RTEmagic_copyIndex = [];
-
-    /**
      * Errors are collected in this variable.
      *
      * @var array
@@ -510,20 +469,6 @@ class DataHandler implements LoggerAwareInterface
     public $dbAnalysisStore = [];
 
     /**
-     * For accumulation of files which must be deleted after processing of all input content
-     *
-     * @var array
-     */
-    public $removeFilesStore = [];
-
-    /**
-     * Uploaded files, set by process_uploads()
-     *
-     * @var array
-     */
-    public $uploadedFileArray = [];
-
-    /**
      * Used for tracking references that might need correction after operations
      *
      * @var array
@@ -601,13 +546,6 @@ class DataHandler implements LoggerAwareInterface
     public $callFromImpExp = false;
 
     // Various
-    /**
-     * basicFileFunctions object
-     * For "singleton" file-manipulation object
-     *
-     * @var BasicFileUtility
-     */
-    public $fileFunc;
 
     /**
      * Set to "currentRecord" during checking of values.
@@ -617,13 +555,6 @@ class DataHandler implements LoggerAwareInterface
     public $checkValue_currentRecord = [];
 
     /**
-     * A signal flag used to tell file processing that auto versioning has happened and hence certain action should be applied.
-     *
-     * @var bool
-     */
-    public $autoVersioningUpdate = false;
-
-    /**
      * Disable delete clause
      *
      * @var bool
@@ -796,55 +727,13 @@ class DataHandler implements LoggerAwareInterface
     }
 
     /**
-     * Processing of uploaded files.
-     * It turns out that some versions of PHP arranges submitted data for files different if sent in an array. This function will unify this so the internal array $this->uploadedFileArray will always contain files arranged in the same structure.
+     * Dummy method formerly used for file handling.
      *
-     * @param array $postFiles $_FILES array
+     * @deprecated since TYPO3 v10.0, will be removed in TYPO3 v11.0.
      */
-    public function process_uploads($postFiles)
+    public function process_uploads()
     {
-        if (!is_array($postFiles)) {
-            return;
-        }
-
-        // Editing frozen:
-        if ($this->BE_USER->workspace !== 0 && $this->BE_USER->workspaceRec['freeze']) {
-            $this->newlog('All editing in this workspace has been frozen!', 1);
-            return;
-        }
-        $subA = reset($postFiles);
-        if (is_array($subA)) {
-            if (is_array($subA['name']) && is_array($subA['type']) && is_array($subA['tmp_name']) && is_array($subA['size'])) {
-                // Initialize the uploadedFilesArray:
-                $this->uploadedFileArray = [];
-                // For each entry:
-                foreach ($subA as $key => $values) {
-                    $this->process_uploads_traverseArray($this->uploadedFileArray, $values, $key);
-                }
-            } else {
-                $this->uploadedFileArray = $subA;
-            }
-        }
-    }
-
-    /**
-     * Traverse the upload array if needed to rearrange values.
-     *
-     * @param array $outputArr $this->uploadedFileArray passed by reference
-     * @param array $inputArr Input array  ($_FILES parts)
-     * @param string $keyToSet The current $_FILES array key to set on the outermost level.
-     * @internal
-     * @see process_uploads()
-     */
-    public function process_uploads_traverseArray(&$outputArr, $inputArr, $keyToSet)
-    {
-        if (is_array($inputArr)) {
-            foreach ($inputArr as $key => $value) {
-                $this->process_uploads_traverseArray($outputArr[$key], $inputArr[$key], $keyToSet);
-            }
-        } else {
-            $outputArr[$keyToSet] = $inputArr;
-        }
+        trigger_error('DataHandler->process_uploads() will be removed in TYPO3 v11.0.', E_USER_DEPRECATED);
     }
 
     /*********************************************
@@ -987,7 +876,6 @@ class DataHandler implements LoggerAwareInterface
                 $createNewVersion = false;
                 $recordAccess = false;
                 $old_pid_value = '';
-                $this->autoVersioningUpdate = false;
                 // Is it a new record? (Then Id is a string)
                 if (!MathUtility::canBeInterpretedAsInteger($id)) {
                     // Get a fieldArray with default values
@@ -1087,7 +975,6 @@ class DataHandler implements LoggerAwareInterface
                             // Use the new id of the copied/versionized record:
                             $id = $this->autoVersionIdMap[$table][$id];
                             $recordAccess = true;
-                            $this->autoVersioningUpdate = true;
                         } elseif (!$this->bypassWorkspaceRestrictions && ($errorCode = $this->BE_USER->workspaceCannotEditRecord($table, $tempdata))) {
                             $recordAccess = false;
                             // Versioning is required and it must be offline version!
@@ -1117,12 +1004,9 @@ class DataHandler implements LoggerAwareInterface
                                 if (!empty($tce->copyMappingArray[$table][$id])) {
                                     foreach ($tce->copyMappingArray as $origTable => $origIdArray) {
                                         foreach ($origIdArray as $origId => $newId) {
-                                            $this->uploadedFileArray[$origTable][$newId] = $this->uploadedFileArray[$origTable][$origId];
                                             $this->autoVersionIdMap[$origTable][$origId] = $newId;
                                         }
                                     }
-                                    ArrayUtility::mergeRecursiveWithOverrule($this->RTEmagic_copyIndex, $tce->RTEmagic_copyIndex);
-                                    // See where RTEmagic_copyIndex is used inside fillInFieldArray() for more information...
                                     // Update registerDBList, that holds the copied relations to child records:
                                     $registerDBList = array_merge($registerDBList, $tce->registerDBList);
                                     // For the reason that creating a new version of this record, automatically
@@ -1131,7 +1015,6 @@ class DataHandler implements LoggerAwareInterface
                                     // Use the new id of the copied/versionized record:
                                     $id = $this->autoVersionIdMap[$table][$id];
                                     $recordAccess = true;
-                                    $this->autoVersioningUpdate = true;
                                 } else {
                                     $this->newlog('Could not be edited in offline workspace in the branch where found (failure state: \'' . $errorCode . '\'). Auto-creation of version failed!', 1);
                                 }
@@ -1163,7 +1046,7 @@ class DataHandler implements LoggerAwareInterface
                     // create a placeholder array with already processed field content
                     $newVersion_placeholderFieldArray = $fieldArray;
                 }
-                // NOTICE! All manipulation beyond this point bypasses both "excludeFields" AND possible "MM" relations / file uploads to field!
+                // NOTICE! All manipulation beyond this point bypasses both "excludeFields" AND possible "MM" relations to field!
                 // Forcing some values unto field array:
                 // NOTICE: This overriding is potentially dangerous; permissions per field is not checked!!!
                 $fieldArray = $this->overrideFieldArray($table, $fieldArray);
@@ -1205,7 +1088,7 @@ class DataHandler implements LoggerAwareInterface
                     }
                 }
                 // Performing insert/update. If fieldArray has been unset by some userfunction (see hook above), don't do anything
-                // Kasper: Unsetting the fieldArray is dangerous; MM relations might be saved already and files could have been uploaded that are now "lost"
+                // Kasper: Unsetting the fieldArray is dangerous; MM relations might be saved already
                 if (is_array($fieldArray)) {
                     if ($status === 'new') {
                         if ($table === 'pages') {
@@ -1265,7 +1148,6 @@ class DataHandler implements LoggerAwareInterface
         // Process the stack of relations to remap/correct
         $this->processRemapStack();
         $this->dbAnalysisStoreExec();
-        $this->removeRegisteredFiles();
         // Hook: processDatamap_afterAllOperations
         // Note: When this hook gets called, all operations on the submitted data have been finished.
         foreach ($hookObjectsArr as $hookObj) {
@@ -1516,18 +1398,6 @@ class DataHandler implements LoggerAwareInterface
                             $originalLanguage_diffStorage[$field] = $originalLanguageRecord[$field];
                             $diffStorageFlag = true;
                         }
-                        // If autoversioning is happening we need to perform a nasty hack. The case is parallel to a similar hack inside checkValue_group_select_file().
-                        // When a copy or version is made of a record, a search is made for any RTEmagic* images in fields having the "images" soft reference parser applied.
-                        // That should be TRUE for RTE fields. If any are found they are duplicated to new names and the file reference in the bodytext is updated accordingly.
-                        // However, with auto-versioning the submitted content of the field will just overwrite the corrected values. This leaves a) lost RTEmagic files and b) creates a double reference to the old files.
-                        // The only solution I can come up with is detecting when auto versioning happens, then see if any RTEmagic images was copied and if so make a stupid string-replace of the content !
-                        if ($this->autoVersioningUpdate === true) {
-                            if (is_array($this->RTEmagic_copyIndex[$table][$id][$field])) {
-                                foreach ($this->RTEmagic_copyIndex[$table][$id][$field] as $oldRTEmagicName => $newRTEmagicName) {
-                                    $fieldArray[$field] = str_replace(' src="' . $oldRTEmagicName . '"', ' src="' . $newRTEmagicName . '"', $fieldArray[$field]);
-                                }
-                            }
-                        }
                     } elseif ($GLOBALS['TCA'][$table]['ctrl']['origUid'] === $field) {
                         // Allow value for original UID to pass by...
                         $fieldArray[$field] = $fieldValue;
@@ -1564,7 +1434,7 @@ class DataHandler implements LoggerAwareInterface
     /**
      * Evaluates a value according to $table/$field settings.
      * This function is for real database fields - NOT FlexForm "pseudo" fields.
-     * NOTICE: Calling this function expects this: 1) That the data is saved! (files are copied and so on) 2) That files registered for deletion IS deleted at the end (with ->removeRegisteredFiles() )
+     * NOTICE: Calling this function expects this: 1) That the data is saved!
      *
      * @param string $table Table name
      * @param string $field Field name
@@ -1651,18 +1521,14 @@ class DataHandler implements LoggerAwareInterface
         $tcaFieldConf = $GLOBALS['TCA'][$table]['columns'][$field]['config'];
 
         // Create $recFID only for those types that need it
-        if (
-            $tcaFieldConf['type'] === 'flex'
-            || $tcaFieldConf['type'] === 'group' && ($tcaFieldConf['internal_type'] === 'file' || $tcaFieldConf['internal_type'] === 'file_reference')
-        ) {
-            // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class. Remove type=group handling.
+        if ($tcaFieldConf['type'] === 'flex') {
             $recFID = $table . ':' . $id . ':' . $field;
         } else {
             $recFID = null;
         }
 
         // Perform processing:
-        $res = $this->checkValue_SW($res, $value, $tcaFieldConf, $table, $id, $curValue, $status, $realPid, $recFID, $field, $this->uploadedFileArray[$table][$id][$field], $tscPID, ['incomingFieldArray' => $incomingFieldArray]);
+        $res = $this->checkValue_SW($res, $value, $tcaFieldConf, $table, $id, $curValue, $status, $realPid, $recFID, $field, [], $tscPID, ['incomingFieldArray' => $incomingFieldArray]);
         return $res;
     }
 
@@ -2149,12 +2015,6 @@ class DataHandler implements LoggerAwareInterface
                 return [];
             }
         }
-        // For group types:
-        if ($tcaFieldConf['type'] === 'group'
-            && in_array($tcaFieldConf['internal_type'], ['file', 'file_reference'], true)) {
-            // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-            $valueArray = $this->checkValue_group_select_file($valueArray, $tcaFieldConf, $curValue, $uploadedFiles, $status, $table, $id, $recFID);
-        }
         // For select types which has a foreign table attached:
         $unsetResult = false;
         if (
@@ -2214,284 +2074,6 @@ class DataHandler implements LoggerAwareInterface
     }
 
     /**
-     * Handling files for group/select function
-     *
-     * @param array $valueArray Array of incoming file references. Keys are numeric, values are files (basically, this is the exploded list of incoming files)
-     * @param array $tcaFieldConf Configuration array from TCA of the field
-     * @param string $curValue Current value of the field
-     * @param array $uploadedFileArray Array of uploaded files, if any
-     * @param string $status 'update' or 'new' flag
-     * @param string $table tablename of record
-     * @param int $id UID of record
-     * @param string $recFID Field identifier [table:uid:field] for flexforms
-     * @return array Modified value array
-     *
-     * @throws \RuntimeException
-     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-     */
-    public function checkValue_group_select_file($valueArray, $tcaFieldConf, $curValue, $uploadedFileArray, $status, $table, $id, $recFID)
-    {
-        // If file handling should NOT be bypassed, do processing:
-        if (!$this->bypassFileHandling) {
-            // If any files are uploaded, add them to value array
-            // Numeric index means that there are multiple files
-            if (isset($uploadedFileArray[0])) {
-                $uploadedFiles = $uploadedFileArray;
-            } else {
-                // There is only one file
-                $uploadedFiles = [$uploadedFileArray];
-            }
-            foreach ($uploadedFiles as $uploadedFileArray) {
-                if (!empty($uploadedFileArray['name']) && $uploadedFileArray['tmp_name'] !== 'none') {
-                    $valueArray[] = $uploadedFileArray['tmp_name'];
-                    $this->alternativeFileName[$uploadedFileArray['tmp_name']] = $uploadedFileArray['name'];
-                }
-            }
-            // Creating fileFunc object.
-            if (!$this->fileFunc) {
-                $this->fileFunc = GeneralUtility::makeInstance(BasicFileUtility::class);
-            }
-            // Setting permitted extensions.
-            $this->fileFunc->setFileExtensionPermissions($tcaFieldConf['allowed'], $tcaFieldConf['disallowed'] ?: '*');
-        }
-        // If there is an upload folder defined:
-        if ($tcaFieldConf['uploadfolder'] && $tcaFieldConf['internal_type'] === 'file') {
-            $currentFilesForHistory = null;
-            // If filehandling should NOT be bypassed, do processing:
-            if (!$this->bypassFileHandling) {
-                // For logging..
-                $propArr = $this->getRecordProperties($table, $id);
-                // Get destination path:
-                $dest = Environment::getPublicPath() . '/' . $tcaFieldConf['uploadfolder'];
-                // If we are updating:
-                if ($status === 'update') {
-                    // Traverse the input values and convert to absolute filenames in case the update happens to an autoVersionized record.
-                    // Background: This is a horrible workaround! The problem is that when a record is auto-versionized the files of the record get copied and therefore get new names which is overridden with the names from the original record in the incoming data meaning both lost files and double-references!
-                    // The only solution I could come up with (except removing support for managing files when autoversioning) was to convert all relative files to absolute names so they are copied again (and existing files deleted). This should keep references intact but means that some files are copied, then deleted after being copied _again_.
-                    // Actually, the same problem applies to database references in case auto-versioning would include sub-records since in such a case references are remapped - and they would be overridden due to the same principle then.
-                    // Illustration of the problem comes here:
-                    // We have a record 123 with a file logo.gif. We open and edit the files header in a workspace. So a new version is automatically made.
-                    // The versions uid is 456 and the file is copied to "logo_01.gif". But the form data that we sent was based on uid 123 and hence contains the filename "logo.gif" from the original.
-                    // The file management code below will do two things: First it will blindly accept "logo.gif" as a file attached to the record (thus creating a double reference) and secondly it will find that "logo_01.gif" was not in the incoming filelist and therefore should be deleted.
-                    // If we prefix the incoming file "logo.gif" with its absolute path it will be seen as a new file added. Thus it will be copied to "logo_02.gif". "logo_01.gif" will still be deleted but since the files are the same the difference is zero - only more processing and file copying for no reason. But it will work.
-                    if ($this->autoVersioningUpdate === true) {
-                        foreach ($valueArray as $key => $theFile) {
-                            // If it is an already attached file...
-                            if ($theFile === PathUtility::basename($theFile)) {
-                                $valueArray[$key] = Environment::getPublicPath() . '/' . $tcaFieldConf['uploadfolder'] . '/' . $theFile;
-                            }
-                        }
-                    }
-                    // Finding the CURRENT files listed, either from MM or from the current record.
-                    $theFileValues = [];
-                    // If MM relations for the files also!
-                    if ($tcaFieldConf['MM']) {
-                        $dbAnalysis = $this->createRelationHandlerInstance();
-                        /** @var RelationHandler $dbAnalysis */
-                        $dbAnalysis->start('', 'files', $tcaFieldConf['MM'], $id);
-                        foreach ($dbAnalysis->itemArray as $item) {
-                            if ($item['id']) {
-                                $theFileValues[] = $item['id'];
-                            }
-                        }
-                    } else {
-                        $theFileValues = GeneralUtility::trimExplode(',', $curValue, true);
-                    }
-                    $currentFilesForHistory = implode(',', $theFileValues);
-                    // DELETE files: If existing files were found, traverse those and register files for deletion which has been removed:
-                    if (!empty($theFileValues)) {
-                        // Traverse the input values and for all input values which match an EXISTING value, remove the existing from $theFileValues array (this will result in an array of all the existing files which should be deleted!)
-                        foreach ($valueArray as $key => $theFile) {
-                            if ($theFile && strpos(GeneralUtility::fixWindowsFilePath($theFile), '/') === false) {
-                                $theFileValues = ArrayUtility::removeArrayEntryByValue($theFileValues, $theFile);
-                            }
-                        }
-                        // This array contains the filenames in the uploadfolder that should be deleted:
-                        foreach ($theFileValues as $key => $theFile) {
-                            $theFile = trim($theFile);
-                            if (@is_file($dest . '/' . $theFile)) {
-                                $this->removeFilesStore[] = $dest . '/' . $theFile;
-                            } elseif ($theFile) {
-                                $this->log($table, $id, 5, 0, 1, 'Could not delete file \'%s\' (does not exist). (%s)', 10, [$dest . '/' . $theFile, $recFID], $propArr['event_pid']);
-                            }
-                        }
-                    }
-                }
-                // Traverse the submitted values:
-                foreach ($valueArray as $key => $theFile) {
-                    // Init:
-                    $maxSize = (int)$tcaFieldConf['max_size'];
-                    // Must be cleared. Else a faulty fileref may be inserted if the below code returns an error!
-                    $theDestFile = '';
-                    // a FAL file was added, now resolve the file object and get the absolute path
-                    // @todo in future versions this needs to be modified to handle FAL objects natively
-                    if (!empty($theFile) && MathUtility::canBeInterpretedAsInteger($theFile)) {
-                        $fileObject = ResourceFactory::getInstance()->getFileObject($theFile);
-                        $theFile = $fileObject->getForLocalProcessing(false);
-                    }
-                    // NEW FILES? If the value contains '/' it indicates, that the file
-                    // is new and should be added to the uploadsdir (whether its absolute or relative does not matter here)
-                    if (strpos(GeneralUtility::fixWindowsFilePath($theFile), '/') !== false) {
-                        // Check various things before copying file:
-                        // File and destination must exist
-                        if (@is_dir($dest) && (@is_file($theFile) || @is_uploaded_file($theFile))) {
-                            // Finding size.
-                            if (is_uploaded_file($theFile) && $theFile == $uploadedFileArray['tmp_name']) {
-                                $fileSize = $uploadedFileArray['size'];
-                            } else {
-                                $fileSize = filesize($theFile);
-                            }
-                            // Check file size:
-                            if (!$maxSize || $fileSize <= $maxSize * 1024) {
-                                // Prepare filename:
-                                $theEndFileName = $this->alternativeFileName[$theFile] ?? $theFile;
-                                $fI = GeneralUtility::split_fileref($theEndFileName);
-                                // Check for allowed extension:
-                                if ($this->fileFunc->checkIfAllowed($fI['fileext'], $dest, $theEndFileName)) {
-                                    $theDestFile = $this->fileFunc->getUniqueName($this->fileFunc->cleanFileName($fI['file']), $dest);
-                                    // If we have a unique destination filename, then write the file:
-                                    if ($theDestFile) {
-                                        GeneralUtility::upload_copy_move($theFile, $theDestFile);
-                                        // Hook for post-processing the upload action
-                                        foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processUpload'] ?? [] as $className) {
-                                            $hookObject = GeneralUtility::makeInstance($className);
-                                            if (!$hookObject instanceof DataHandlerProcessUploadHookInterface) {
-                                                throw new \UnexpectedValueException($className . ' must implement interface ' . DataHandlerProcessUploadHookInterface::class, 1279962349);
-                                            }
-                                            $hookObject->processUpload_postProcessAction($theDestFile, $this);
-                                        }
-                                        $this->copiedFileMap[$theFile] = $theDestFile;
-                                        clearstatcache();
-                                        if (!@is_file($theDestFile)) {
-                                            $this->log($table, $id, 5, 0, 1, 'Copying file \'%s\' failed!: The destination path (%s) may be write protected. Please make it write enabled!. (%s)', 16, [$theFile, PathUtility::dirname($theDestFile), $recFID], $propArr['event_pid']);
-                                        }
-                                    } else {
-                                        $this->log($table, $id, 5, 0, 1, 'Copying file \'%s\' failed!: No destination file (%s) possible!. (%s)', 11, [$theFile, $theDestFile, $recFID], $propArr['event_pid']);
-                                    }
-                                } else {
-                                    $this->log($table, $id, 5, 0, 1, 'File extension \'%s\' not allowed. (%s)', 12, [$fI['fileext'], $recFID], $propArr['event_pid']);
-                                }
-                            } else {
-                                $this->log($table, $id, 5, 0, 1, 'Filesize (%s) of file \'%s\' exceeds limit (%s). (%s)', 13, [GeneralUtility::formatSize($fileSize), $theFile, GeneralUtility::formatSize($maxSize * 1024), $recFID], $propArr['event_pid']);
-                            }
-                        } else {
-                            $this->log($table, $id, 5, 0, 1, 'The destination (%s) or the source file (%s) does not exist. (%s)', 14, [$dest, $theFile, $recFID], $propArr['event_pid']);
-                        }
-                        // If the destination file was created, we will set the new filename in the value array, otherwise unset the entry in the value array!
-                        if (@is_file($theDestFile)) {
-                            $info = GeneralUtility::split_fileref($theDestFile);
-                            // The value is set to the new filename
-                            $valueArray[$key] = $info['file'];
-                        } else {
-                            // The value is set to the new filename
-                            unset($valueArray[$key]);
-                        }
-                    }
-                }
-            }
-            // If MM relations for the files, we will set the relations as MM records and change the valuearray to contain a single entry with a count of the number of files!
-            if ($tcaFieldConf['MM']) {
-                /** @var RelationHandler $dbAnalysis */
-                $dbAnalysis = $this->createRelationHandlerInstance();
-                // Dummy
-                $dbAnalysis->tableArray['files'] = [];
-                foreach ($valueArray as $key => $theFile) {
-                    // Explode files
-                    $dbAnalysis->itemArray[]['id'] = $theFile;
-                }
-                if ($status === 'update') {
-                    $dbAnalysis->writeMM($tcaFieldConf['MM'], $id, 0);
-                    $newFiles = implode(',', $dbAnalysis->getValueArray());
-                    list(, , $recFieldName) = explode(':', $recFID);
-                    if ($currentFilesForHistory != $newFiles) {
-                        $this->mmHistoryRecords[$table . ':' . $id]['oldRecord'][$recFieldName] = $currentFilesForHistory;
-                        $this->mmHistoryRecords[$table . ':' . $id]['newRecord'][$recFieldName] = $newFiles;
-                    } else {
-                        $this->mmHistoryRecords[$table . ':' . $id]['oldRecord'][$recFieldName] = '';
-                        $this->mmHistoryRecords[$table . ':' . $id]['newRecord'][$recFieldName] = '';
-                    }
-                } else {
-                    $this->dbAnalysisStore[] = [$dbAnalysis, $tcaFieldConf['MM'], $id, 0];
-                }
-                $valueArray = $dbAnalysis->countItems();
-            }
-        } else {
-            if (!empty($valueArray)) {
-                // If filehandling should NOT be bypassed, do processing:
-                if (!$this->bypassFileHandling) {
-                    // For logging..
-                    $propArr = $this->getRecordProperties($table, $id);
-                    foreach ($valueArray as &$theFile) {
-                        // FAL handling: it's a UID, thus it is resolved to the absolute path
-                        if (!empty($theFile) && MathUtility::canBeInterpretedAsInteger($theFile)) {
-                            $fileObject = ResourceFactory::getInstance()->getFileObject($theFile);
-                            $theFile = $fileObject->getForLocalProcessing(false);
-                        }
-                        if ($this->alternativeFilePath[$theFile]) {
-                            // If alternative File Path is set for the file, then it was an import
-                            // don't import the file if it already exists
-                            if (@is_file(Environment::getPublicPath() . '/' . $this->alternativeFilePath[$theFile])) {
-                                $theFile = Environment::getPublicPath() . '/' . $this->alternativeFilePath[$theFile];
-                            } elseif (@is_file($theFile)) {
-                                $dest = PathUtility::dirname(Environment::getPublicPath() . '/' . $this->alternativeFilePath[$theFile]);
-                                if (!@is_dir($dest)) {
-                                    GeneralUtility::mkdir_deep($dest);
-                                }
-                                // Init:
-                                $maxSize = (int)$tcaFieldConf['max_size'];
-                                // Must be cleared. Else a faulty fileref may be inserted if the below code returns an error!
-                                $theDestFile = '';
-                                $fileSize = filesize($theFile);
-                                // Check file size:
-                                if (!$maxSize || $fileSize <= $maxSize * 1024) {
-                                    // Prepare filename:
-                                    $theEndFileName = $this->alternativeFileName[$theFile] ?? $theFile;
-                                    $fI = GeneralUtility::split_fileref($theEndFileName);
-                                    // Check for allowed extension:
-                                    if ($this->fileFunc->checkIfAllowed($fI['fileext'], $dest, $theEndFileName)) {
-                                        $theDestFile = Environment::getPublicPath() . '/' . $this->alternativeFilePath[$theFile];
-                                        // Write the file:
-                                        if ($theDestFile) {
-                                            GeneralUtility::upload_copy_move($theFile, $theDestFile);
-                                            $this->copiedFileMap[$theFile] = $theDestFile;
-                                            clearstatcache();
-                                            if (!@is_file($theDestFile)) {
-                                                $this->log($table, $id, 5, 0, 1, 'Copying file \'%s\' failed!: The destination path (%s) may be write protected. Please make it write enabled!. (%s)', 16, [$theFile, PathUtility::dirname($theDestFile), $recFID], $propArr['event_pid']);
-                                            }
-                                        } else {
-                                            $this->log($table, $id, 5, 0, 1, 'Copying file \'%s\' failed!: No destination file (%s) possible!. (%s)', 11, [$theFile, $theDestFile, $recFID], $propArr['event_pid']);
-                                        }
-                                    } else {
-                                        $this->log($table, $id, 5, 0, 1, 'File extension \'%s\' not allowed. (%s)', 12, [$fI['fileext'], $recFID], $propArr['event_pid']);
-                                    }
-                                } else {
-                                    $this->log($table, $id, 5, 0, 1, 'Filesize (%s) of file \'%s\' exceeds limit (%s). (%s)', 13, [GeneralUtility::formatSize($fileSize), $theFile, GeneralUtility::formatSize($maxSize * 1024), $recFID], $propArr['event_pid']);
-                                }
-                                // If the destination file was created, we will set the new filename in the value array, otherwise unset the entry in the value array!
-                                if (@is_file($theDestFile)) {
-                                    // The value is set to the new filename
-                                    $theFile = $theDestFile;
-                                } else {
-                                    // The value is set to the new filename
-                                    unset($theFile);
-                                }
-                            }
-                        }
-                        if (!empty($theFile)) {
-                            $theFile = GeneralUtility::fixWindowsFilePath($theFile);
-                            if (GeneralUtility::isFirstPartOfStr($theFile, Environment::getPublicPath())) {
-                                $theFile = PathUtility::stripPathSitePrefix($theFile);
-                            }
-                        }
-                    }
-                    unset($theFile);
-                }
-            }
-        }
-        return $valueArray;
-    }
-
-    /**
      * Evaluates 'flex' type values.
      *
      * @param array $res The result array. The processed value (if any!) is set in the 'value' key.
@@ -3623,7 +3205,6 @@ class DataHandler implements LoggerAwareInterface
         // Getting the new UID:
         $theNewSQLID = $copyTCE->substNEWwithIDs[$theNewID];
         if ($theNewSQLID) {
-            $this->copyRecord_fixRTEmagicImages($table, BackendUtility::wsMapId($table, $theNewSQLID));
             $this->copyMappingArray[$table][$origUid] = $theNewSQLID;
             // Keep automatically versionized record information:
             if (isset($copyTCE->autoVersionIdMap[$table][$theNewSQLID])) {
@@ -3905,7 +3486,6 @@ class DataHandler implements LoggerAwareInterface
         if ($theNewSQLID) {
             $this->dbAnalysisStoreExec();
             $this->dbAnalysisStore = [];
-            $this->copyRecord_fixRTEmagicImages($table, BackendUtility::wsMapId($table, $theNewSQLID));
             return $this->copyMappingArray[$table][$uid] = $theNewSQLID;
         }
         return null;
@@ -3975,8 +3555,6 @@ class DataHandler implements LoggerAwareInterface
      */
     public function copyRecord_procBasedOnFieldType($table, $uid, $field, $value, $row, $conf, $realDestPid, $language = 0, array $workspaceOptions = [])
     {
-        // Process references and files, currently that means only the files, prepending absolute paths (so the DataHandler engine will detect the file as new and one that should be made into a copy)
-        $value = $this->copyRecord_procFilesRefs($conf, $uid, $value);
         $inlineSubType = $this->getInlineFieldType($conf);
         // Get the localization mode for the current (parent) record (keep|select):
         // Register if there are references to take care of or MM is used on an inline field (no change to value):
@@ -4160,8 +3738,6 @@ class DataHandler implements LoggerAwareInterface
     {
         // Extract parameters:
         list($table, $uid, $field, $realDestPid) = $pParams;
-        // Process references and files, currently that means only the files, prepending absolute paths:
-        $dataValue = $this->copyRecord_procFilesRefs($dsConf, $uid, $dataValue);
         // If references are set for this field, set flag so they can be corrected later (in ->remapListedDBRecords())
         if (($this->isReferenceField($dsConf) || $this->getInlineFieldType($dsConf) !== false) && (string)$dataValue !== '') {
             $dataValue = $this->copyRecord_procBasedOnFieldType($table, $uid, $field, $dataValue, [], $dsConf, $realDestPid, 0, $workspaceOptions);
@@ -4172,160 +3748,6 @@ class DataHandler implements LoggerAwareInterface
     }
 
     /**
-     * Modifying a field value for any situation regarding files/references:
-     * For attached files: take current file names and prepend absolute paths so they get copied.
-     * For DB references: Nothing done.
-     *
-     * @param array $conf TCE field config
-     * @param int $uid Record UID
-     * @param string $value Field value (eg. list of files)
-     * @return string The (possibly modified) value
-     * @see copyRecord(), copyRecord_flexFormCallBack()
-     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-     */
-    public function copyRecord_procFilesRefs($conf, $uid, $value)
-    {
-        if ($conf['type'] !== 'group' || ($conf['internal_type'] !== 'file' && $conf['internal_type'] !== 'file_reference')) {
-            return $value;
-        }
-
-        // Get an array with files as values:
-        if ($conf['MM']) {
-            $theFileValues = [];
-            /** @var RelationHandler $dbAnalysis */
-            $dbAnalysis = $this->createRelationHandlerInstance();
-            $dbAnalysis->start('', 'files', $conf['MM'], $uid);
-            foreach ($dbAnalysis->itemArray as $somekey => $someval) {
-                if ($someval['id']) {
-                    $theFileValues[] = $someval['id'];
-                }
-            }
-        } else {
-            $theFileValues = GeneralUtility::trimExplode(',', $value, true);
-        }
-        // Traverse this array of files:
-        $uploadFolder = $conf['internal_type'] === 'file' ? $conf['uploadfolder'] : '';
-        // Prepend absolute paths to files
-        $dest = Environment::getPublicPath() . '/' . $uploadFolder;
-        $newValue = [];
-        foreach ($theFileValues as $file) {
-            if (trim($file)) {
-                $realFile = str_replace('//', '/', $dest . '/' . trim($file));
-                if (@is_file($realFile)) {
-                    $newValue[] = $realFile;
-                }
-            }
-        }
-        // Implode the new filelist into the new value (all files have absolute paths now which means they will get copied when entering DataHandler as new values...)
-        $value = implode(',', $newValue);
-
-        // Return the new value:
-        return $value;
-    }
-
-    /**
-     * Copies any "RTEmagic" image files found in record with table/id to new names.
-     * Usage: After copying a record this function should be called to search for "RTEmagic"-images inside the record. If such are found they should be duplicated to new names so all records have a 1-1 relation to them.
-     * Reason for copying RTEmagic files: a) if you remove an RTEmagic image from a record it will remove the file - any other record using it will have a lost reference! b) RTEmagic images keeps an original and a copy. The copy always is re-calculated to have the correct physical measures as the HTML tag inserting it defines. This is calculated from the original. Two records using the same image could have difference HTML-width/heights for the image and the copy could only comply with one of them. If you don't want a 1-1 relation you should NOT use RTEmagic files but just insert it as a normal file reference to a file inside fileadmin/ folder
-     *
-     * @param string $table Table name
-     * @param int $theNewSQLID Record UID
-     */
-    public function copyRecord_fixRTEmagicImages($table, $theNewSQLID)
-    {
-        // Creating fileFunc object.
-        if (!$this->fileFunc) {
-            $this->fileFunc = GeneralUtility::makeInstance(BasicFileUtility::class);
-        }
-        // Select all RTEmagic files in the reference table from the table/ID
-        $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_refindex');
-        $queryBuilder->getRestrictions()->removeAll();
-        $rteFileRecords = $queryBuilder
-            ->select('*')
-            ->from('sys_refindex')
-            ->where(
-                $queryBuilder->expr()->eq(
-                    'ref_table',
-                    $queryBuilder->createNamedParameter('_FILE', \PDO::PARAM_STR)
-                ),
-                $queryBuilder->expr()->like(
-                    'ref_string',
-                    $queryBuilder->createNamedParameter('%/RTEmagic%', \PDO::PARAM_STR)
-                ),
-                $queryBuilder->expr()->eq(
-                    'softref_key',
-                    $queryBuilder->createNamedParameter('images', \PDO::PARAM_STR)
-                ),
-                $queryBuilder->expr()->eq(
-                    'tablename',
-                    $queryBuilder->createNamedParameter($table, \PDO::PARAM_STR)
-                ),
-                $queryBuilder->expr()->eq(
-                    'recuid',
-                    $queryBuilder->createNamedParameter($theNewSQLID, \PDO::PARAM_INT)
-                )
-            )
-            ->orderBy('sorting', 'DESC')
-            ->execute()
-            ->fetchAll();
-        // Traverse the files found and copy them:
-        if (!is_array($rteFileRecords)) {
-            return;
-        }
-        foreach ($rteFileRecords as $rteFileRecord) {
-            $filename = PathUtility::basename($rteFileRecord['ref_string']);
-            if (!GeneralUtility::isFirstPartOfStr($filename, 'RTEmagicC_')) {
-                continue;
-            }
-            $fileInfo = [];
-            $fileInfo['exists'] = @is_file(Environment::getPublicPath() . '/' . $rteFileRecord['ref_string']);
-            $fileInfo['original'] = mb_substr($rteFileRecord['ref_string'], 0, -mb_strlen($filename)) . 'RTEmagicP_' . preg_replace('/\\.[[:alnum:]]+$/', '', mb_substr($filename, 10));
-            $fileInfo['original_exists'] = @is_file(Environment::getPublicPath() . '/' . $fileInfo['original']);
-            // CODE from tx_impexp and class.rte_images.php adapted for use here:
-            if (!$fileInfo['exists'] || !$fileInfo['original_exists']) {
-                $this->newlog('Trying to copy RTEmagic files (' . $rteFileRecord['ref_string'] . ' / ' . $fileInfo['original'] . ') but one or both were missing', 1);
-                continue;
-            }
-            // Initialize; Get directory prefix for file and set the original name:
-            $dirPrefix = PathUtility::dirname($rteFileRecord['ref_string']) . '/';
-            $rteOrigName = PathUtility::basename($fileInfo['original']);
-            // If filename looks like an RTE file, and the directory is in "uploads/", then process as a RTE file!
-            if ($rteOrigName && GeneralUtility::isFirstPartOfStr($dirPrefix, 'uploads/') && @is_dir(Environment::getPublicPath() . '/' . $dirPrefix)) {
-                // RTE:
-                // From the "original" RTE filename, produce a new "original" destination filename which is unused.
-                $origDestName = $this->fileFunc->getUniqueName($rteOrigName, Environment::getPublicPath() . '/' . $dirPrefix);
-                // Create copy file name:
-                $pI = pathinfo($rteFileRecord['ref_string']);
-                $copyDestName = PathUtility::dirname($origDestName) . '/RTEmagicC_' . mb_substr(PathUtility::basename($origDestName), 10) . '.' . $pI['extension'];
-                if (!@is_file($copyDestName) && !@is_file($origDestName) && $origDestName === GeneralUtility::getFileAbsFileName($origDestName) && $copyDestName === GeneralUtility::getFileAbsFileName($copyDestName)) {
-                    // Making copies:
-                    GeneralUtility::upload_copy_move(Environment::getPublicPath() . '/' . $fileInfo['original'], $origDestName);
-                    GeneralUtility::upload_copy_move(Environment::getPublicPath() . '/' . $rteFileRecord['ref_string'], $copyDestName);
-                    clearstatcache();
-                    // Register this:
-                    $this->RTEmagic_copyIndex[$rteFileRecord['tablename']][$rteFileRecord['recuid']][$rteFileRecord['field']][$rteFileRecord['ref_string']] = PathUtility::stripPathSitePrefix($copyDestName);
-                    // Check and update the record using \TYPO3\CMS\Core\Database\ReferenceIndex
-                    if (@is_file($copyDestName)) {
-                        /** @var ReferenceIndex $sysRefObj */
-                        $sysRefObj = GeneralUtility::makeInstance(ReferenceIndex::class);
-                        $sysRefObj->enableRuntimeCache();
-                        $error = $sysRefObj->setReferenceValue($rteFileRecord['hash'], PathUtility::stripPathSitePrefix($copyDestName), false, true);
-                        if ($error) {
-                            $this->newlog(ReferenceIndex::class . '::setReferenceValue(): ' . $error, 1);
-                        }
-                    } else {
-                        $this->newlog('File "' . $copyDestName . '" was not created!', 1);
-                    }
-                } else {
-                    $this->newlog('Could not construct new unique names for file!', 1);
-                }
-            } else {
-                $this->newlog('Maybe directory of file was not within "uploads/"?', 1);
-            }
-        }
-    }
-
-    /**
      * Find l10n-overlay records and perform the requested copy action for these records.
      *
      * @param string $table Record Table
@@ -5272,54 +4694,6 @@ class DataHandler implements LoggerAwareInterface
                 $databaseErrorMessage = $e->getPrevious()->getMessage();
             }
         } else {
-            // Fetches all fields with flexforms and look for files to delete:
-            foreach ($GLOBALS['TCA'][$table]['columns'] as $fieldName => $cfg) {
-                $conf = $cfg['config'];
-                switch ($conf['type']) {
-                    case 'flex':
-                        $flexObj = GeneralUtility::makeInstance(FlexFormTools::class);
-
-                        $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
-                            ->getQueryBuilderForTable($table);
-                        $queryBuilder->getRestrictions()->removeAll();
-
-                        $files = $queryBuilder
-                            ->select('*')
-                            ->from($table)
-                            ->where(
-                                $queryBuilder->expr()->eq(
-                                    'uid',
-                                    $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT)
-                                )
-                            )
-                            ->execute()
-                            ->fetch();
-
-                        $flexObj->traverseFlexFormXMLData($table, $fieldName, $files, $this, 'deleteRecord_flexFormCallBack');
-                        break;
-                }
-            }
-            // Fetches all fields that holds references to files
-            $fileFieldArr = $this->extFileFields($table);
-            if (!empty($fileFieldArr)) {
-                $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($table);
-                $queryBuilder->getRestrictions()->removeAll();
-                $result = $queryBuilder
-                    ->select(...$fileFieldArr)
-                    ->from($table)
-                    ->where($queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT)))
-                    ->execute();
-                if ($row = $result->fetch()) {
-                    $fArray = $fileFieldArr;
-                    // MISSING: Support for MM file relations!
-                    foreach ($fArray as $theField) {
-                        // This deletes files that belonged to this record.
-                        $this->extFileFunctions($table, $theField, $row[$theField]);
-                    }
-                } else {
-                    $this->log($table, $uid, 3, 0, 100, 'Delete: Zero rows in result when trying to read filenames from record which should be deleted');
-                }
-            }
             // Delete the hard way...:
             try {
                 GeneralUtility::makeInstance(ConnectionPool::class)
@@ -5385,36 +4759,6 @@ class DataHandler implements LoggerAwareInterface
     }
 
     /**
-     * Call back function for deleting file relations for flexform fields in records which are being completely deleted.
-     *
-     * @param array $dsArr
-     * @param string $dataValue
-     * @param array $PA
-     * @param string $structurePath not used
-     * @param object $pObj not used
-     */
-    public function deleteRecord_flexFormCallBack($dsArr, $dataValue, $PA, $structurePath, $pObj)
-    {
-        // Use reference index object to find files in fields:
-        /** @var ReferenceIndex $refIndexObj */
-        $refIndexObj = GeneralUtility::makeInstance(ReferenceIndex::class);
-        $refIndexObj->enableRuntimeCache();
-        $files = $refIndexObj->getRelations_procFiles($dataValue, $dsArr['TCEforms']['config'], $PA['uid']);
-        // Traverse files and delete them if the field is a regular file field (and not a file_reference field)
-        if (is_array($files) && $dsArr['TCEforms']['config']['internal_type'] === 'file') {
-            // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-            foreach ($files as $dat) {
-                if (@is_file($dat['ID_absFile'])) {
-                    $file = $this->getResourceFactory()->retrieveFileOrFolderObject($dat['ID_absFile']);
-                    $file->delete();
-                } else {
-                    $this->log('', 0, 3, 0, 100, 'Delete: Referenced file \'' . $dat['ID_absFile'] . '\' that was supposed to be deleted together with its record which didn\'t exist');
-                }
-            }
-        }
-    }
-
-    /**
      * Used to delete page because it will check for branch below pages and disallowed tables on the page as well.
      *
      * @param int $uid Page id
@@ -8033,19 +7377,6 @@ class DataHandler implements LoggerAwareInterface
     }
 
     /**
-     * Removing files registered for removal before exit
-     */
-    public function removeRegisteredFiles()
-    {
-        foreach ($this->removeFilesStore as $file) {
-            if (@is_file($file)) {
-                $file = $this->getResourceFactory()->retrieveFileOrFolderObject($file);
-                $file->delete();
-            }
-        }
-    }
-
-    /**
      * Returns array, $CPtable, of pages under the $pid going down to $counter levels.
      * Selecting ONLY pages which the user has read-access to!
      *
@@ -8182,26 +7513,6 @@ class DataHandler implements LoggerAwareInterface
     }
 
     /**
-     * Returns all fieldnames from a table which are a list of files
-     *
-     * @param string $table Table name
-     * @return array Array of fieldnames that are either "group" or "file" types.
-     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-     */
-    public function extFileFields($table)
-    {
-        $listArr = [];
-        if (isset($GLOBALS['TCA'][$table]['columns'])) {
-            foreach ($GLOBALS['TCA'][$table]['columns'] as $field => $configArr) {
-                if ($configArr['config']['type'] === 'group' && ($configArr['config']['internal_type'] === 'file' || $configArr['config']['internal_type'] === 'file_reference')) {
-                    $listArr[] = $field;
-                }
-            }
-        }
-        return $listArr;
-    }
-
-    /**
      * Casts a reference value. In case MM relations or foreign_field
      * references are used. All other configurations, as well as
      * foreign_table(!) could be stored as comma-separated-values
@@ -8359,31 +7670,6 @@ class DataHandler implements LoggerAwareInterface
     }
 
     /**
-     * File functions on external file references. eg. deleting files when deleting record
-     *
-     * @param string $table Table name
-     * @param string $field Field name
-     * @param string $filelist List of files to work on from field
-     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-     */
-    public function extFileFunctions($table, $field, $filelist)
-    {
-        $uploadFolder = $GLOBALS['TCA'][$table]['columns'][$field]['config']['uploadfolder'];
-        if ($uploadFolder && trim($filelist) && $GLOBALS['TCA'][$table]['columns'][$field]['config']['internal_type'] === 'file') {
-            $uploadPath = Environment::getPublicPath() . '/' . $uploadFolder;
-            $fileArray = GeneralUtility::trimExplode(',', $filelist, true);
-            foreach ($fileArray as $theFile) {
-                $theFileFullPath = $uploadPath . '/' . $theFile;
-                if (@is_file($theFileFullPath)) {
-                    $this->getResourceFactory()->retrieveFileOrFolderObject($theFileFullPath)->delete();
-                } else {
-                    $this->log($table, 0, 3, 0, 100, 'Delete: Referenced file that was supposed to be deleted together with it\'s record didn\'t exist');
-                }
-            }
-        }
-    }
-
-    /**
      * Check if there are records from tables on the pages to be deleted which the current user is not allowed to
      *
      * @param int[] $pageIds IDs of pages which should be checked
index 74a85e5..3da5cb0 100644 (file)
@@ -29,16 +29,6 @@ final class TableColumnSubType extends Enumeration
     const DEFAULT_TYPE = '';
 
     const DB = 'DB';
-
-    /**
-     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-     */
-    const FILE = 'FILE';
-
-    /**
-     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-     */
-    const FILE_REFERENCE = 'FILE_REFERENCE';
     const FOLDER = 'FOLDER';
 
     /**
index ba1f880..2c5334f 100644 (file)
@@ -20,17 +20,12 @@ use Psr\Log\LoggerAwareTrait;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Cache\CacheManager;
 use TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools;
-use TYPO3\CMS\Core\Core\Environment;
 use TYPO3\CMS\Core\Database\Platform\PlatformInformation;
 use TYPO3\CMS\Core\DataHandling\DataHandler;
 use TYPO3\CMS\Core\Messaging\FlashMessage;
 use TYPO3\CMS\Core\Messaging\FlashMessageRendererResolver;
 use TYPO3\CMS\Core\Registry;
-use TYPO3\CMS\Core\Resource\File;
-use TYPO3\CMS\Core\Resource\Folder;
-use TYPO3\CMS\Core\Resource\ResourceFactory;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Core\Utility\PathUtility;
 use TYPO3\CMS\Extbase\SignalSlot\Dispatcher;
 
 /**
@@ -397,11 +392,6 @@ class ReferenceIndex implements LoggerAwareInterface
                 case 'db':
                     $this->createEntryDataForDatabaseRelationsUsingRecord($tableName, $record, $fieldName, '', $deleted, $fieldRelations['itemArray']);
                     break;
-                case 'file_reference':
-                    // not used (see getRelations()), but fallback to file
-                case 'file':
-                    $this->createEntryDataForFileRelationsUsingRecord($tableName, $record, $fieldName, '', $deleted, $fieldRelations['newValueFiles']);
-                    break;
                 case 'flex':
                     // DB references in FlexForms
                     if (is_array($fieldRelations['flexFormRels']['db'])) {
@@ -409,13 +399,6 @@ class ReferenceIndex implements LoggerAwareInterface
                             $this->createEntryDataForDatabaseRelationsUsingRecord($tableName, $record, $fieldName, $flexPointer, $deleted, $subList);
                         }
                     }
-                    // File references in FlexForms
-                    // @todo #65463 Test correct handling of file references in FlexForms
-                    if (is_array($fieldRelations['flexFormRels']['file'])) {
-                        foreach ($fieldRelations['flexFormRels']['file'] as $flexPointer => $subList) {
-                            $this->createEntryDataForFileRelationsUsingRecord($tableName, $record, $fieldName, $flexPointer, $deleted, $subList);
-                        }
-                    }
                     // Soft references in FlexForms
                     // @todo #65464 Test correct handling of soft references in FlexForms
                     if (is_array($fieldRelations['flexFormRels']['softrefs'])) {
@@ -443,9 +426,9 @@ class ReferenceIndex implements LoggerAwareInterface
      * @param string $field Fieldname of source record (where reference is located)
      * @param string $flexPointer Pointer to location inside FlexForm structure where reference is located in [field]
      * @param int $deleted Whether record is deleted-flagged or not
-     * @param string $ref_table For database references; the tablename the reference points to. Special keyword "_FILE" indicates that "ref_string" is a file reference either absolute or relative to Environment::getPublicPath(). Special keyword "_STRING" indicates some special usage (typ. softreference) where "ref_string" is used for the value.
-     * @param int $ref_uid For database references; The UID of the record (zero "ref_table" is "_FILE" or "_STRING")
-     * @param string $ref_string For "_FILE" or "_STRING" references: The filepath (relative to Environment::getPublicPath() or absolute) or other string.
+     * @param string $ref_table For database references; the tablename the reference points to. Special keyword "_STRING" indicates some special usage (typ. softreference) where "ref_string" is used for the value.
+     * @param int $ref_uid For database references; The UID of the record (zero "ref_table" is "_STRING")
+     * @param string $ref_string For "_STRING" references: The string.
      * @param int $sort The sorting order of references if many (the "group" or "select" TCA types). -1 if no sorting order is specified.
      * @param string $softref_key If the reference is a soft reference, this is the soft reference parser key. Otherwise empty.
      * @param string $softref_id Soft reference ID for key. Might be useful for replace operations.
@@ -480,9 +463,9 @@ class ReferenceIndex implements LoggerAwareInterface
      * @param string $fieldName Fieldname of source record (where reference is located)
      * @param string $flexPointer Pointer to location inside FlexForm structure where reference is located in [$field]
      * @param int $deleted Whether record is deleted-flagged or not
-     * @param string $referencedTable In database references the tablename the reference points to. Keyword "_FILE" indicates that $referenceString is a file reference, keyword "_STRING" indicates special usage (typ. SoftReference) in $referenceString
-     * @param int $referencedUid In database references the UID of the record (zero $referencedTable is "_FILE" or "_STRING")
-     * @param string $referenceString For "_FILE" or "_STRING" references: The filepath (relative to Environment::getPublicPath() or absolute) or other string.
+     * @param string $referencedTable In database references the tablename the reference points to. Keyword "_STRING" indicates special usage (typ. SoftReference) in $referenceString
+     * @param int $referencedUid In database references the UID of the record (zero $referencedTable is "_STRING")
+     * @param string $referenceString For "_STRING" references: The string.
      * @param int $sort The sorting order of references if many (the "group" or "select" TCA types). -1 if no sorting order is specified.
      * @param string $softReferenceKey If the reference is a soft reference, this is the soft reference parser key. Otherwise empty.
      * @param string $softReferenceId Soft reference ID for key. Might be useful for replace operations.
@@ -558,63 +541,6 @@ class ReferenceIndex implements LoggerAwareInterface
     }
 
     /**
-     * Enter file references to ->relations array
-     *
-     * @param string $table Tablename of source record (where reference is located)
-     * @param int $uid UID of source record (where reference is located)
-     * @param string $fieldName Fieldname of source record (where reference is located)
-     * @param string $flexPointer Pointer to location inside FlexForm structure where reference is located in [field]
-     * @param int $deleted Whether record is deleted-flagged or not
-     * @param array $items Data array with file relations
-     */
-    public function createEntryData_fileRels($table, $uid, $fieldName, $flexPointer, $deleted, $items)
-    {
-        $uid = $uid ? (int)$uid : 0;
-        if (!$uid) {
-            return;
-        }
-        $this->createEntryDataForFileRelationsUsingRecord(
-            (string)$table,
-            $this->getRecordRawCached($table, $uid),
-            (string)$fieldName,
-            (string)$flexPointer,
-            $deleted ? (int)$deleted : 0,
-            (array)$items
-        );
-    }
-
-    /**
-     * Add file references to ->relations array based on fetched record
-     *
-     * @param string $tableName Tablename of source record (where reference is located)
-     * @param array $record Record from $tableName
-     * @param string $fieldName Fieldname of source record (where reference is located)
-     * @param string $flexPointer Pointer to location inside FlexForm structure where reference is located in $fieldName
-     * @param int $deleted Whether record is deleted-flagged or not
-     * @param array $items Data array with file relations
-     */
-    protected function createEntryDataForFileRelationsUsingRecord(string $tableName, array $record, string $fieldName, string $flexPointer, int $deleted, array $items)
-    {
-        foreach ($items as $sort => $i) {
-            $filePath = $i['ID_absFile'];
-            if (GeneralUtility::isFirstPartOfStr($filePath, Environment::getPublicPath())) {
-                $filePath = PathUtility::stripPathSitePrefix($filePath);
-            }
-            $this->relations[] = $this->createEntryDataUsingRecord(
-                $tableName,
-                $record,
-                $fieldName,
-                $flexPointer,
-                $deleted,
-                '_FILE',
-                0,
-                $filePath,
-                $sort
-            );
-        }
-    }
-
-    /**
      * Enter softref references to ->relations array
      *
      * @param string $table Tablename of source record (where reference is located)
@@ -661,11 +587,6 @@ class ReferenceIndex implements LoggerAwareInterface
                                 list($referencedTable, $referencedUid) = explode(':', $el['subst']['recordRef']);
                                 $this->relations[] = $this->createEntryDataUsingRecord($tableName, $record, $fieldName, $flexPointer, $deleted, $referencedTable, $referencedUid, '', -1, $spKey, $subKey);
                                 break;
-                            case 'file_reference':
-                                // not used (see getRelations()), but fallback to file
-                            case 'file':
-                                $this->relations[] = $this->createEntryDataUsingRecord($tableName, $record, $fieldName, $flexPointer, $deleted, '_FILE', 0, $el['subst']['relFileName'], -1, $spKey, $subKey);
-                                break;
                             case 'string':
                                 $this->relations[] = $this->createEntryDataUsingRecord($tableName, $record, $fieldName, $flexPointer, $deleted, '_STRING', 0, $el['subst']['tokenValue'], -1, $spKey, $subKey);
                                 break;
@@ -685,7 +606,7 @@ class ReferenceIndex implements LoggerAwareInterface
     /**
      * Returns relation information for a $table/$row-array
      * Traverses all fields in input row which are configured in TCA/columns
-     * It looks for hard relations to files and records in the TCA types "select" and "group"
+     * It looks for hard relations to records in the TCA types "select" and "group"
      *
      * @param string $table Table name
      * @param array $row Row from table
@@ -701,36 +622,6 @@ class ReferenceIndex implements LoggerAwareInterface
         foreach ($row as $field => $value) {
             if ($this->shouldExcludeTableColumnFromReferenceIndex($table, $field, $onlyField) === false) {
                 $conf = $GLOBALS['TCA'][$table]['columns'][$field]['config'];
-                // Add files
-                $resultsFromFiles = $this->getRelations_procFiles($value, $conf, $uid);
-                if (!empty($resultsFromFiles)) {
-                    // We have to fill different arrays here depending on the result.
-                    // internal_type file is still a relation of type file and
-                    // since http://forge.typo3.org/issues/49538 internal_type file_reference
-                    // is a database relation to a sys_file record
-                    $fileResultsFromFiles = [];
-                    $dbResultsFromFiles = [];
-                    foreach ($resultsFromFiles as $resultFromFiles) {
-                        if (isset($resultFromFiles['table']) && $resultFromFiles['table'] === 'sys_file') {
-                            $dbResultsFromFiles[] = $resultFromFiles;
-                        } else {
-                            // Creates an entry for the field with all the files:
-                            $fileResultsFromFiles[] = $resultFromFiles;
-                        }
-                    }
-                    if (!empty($fileResultsFromFiles)) {
-                        $outRow[$field] = [
-                            'type' => 'file',
-                            'newValueFiles' => $fileResultsFromFiles
-                        ];
-                    }
-                    if (!empty($dbResultsFromFiles)) {
-                        $outRow[$field] = [
-                            'type' => 'db',
-                            'itemArray' => $dbResultsFromFiles
-                        ];
-                    }
-                }
                 // Add a softref definition for link fields if the TCA does not specify one already
                 if ($conf['type'] === 'input' && $conf['renderType'] === 'inputLink' && empty($conf['softref'])) {
                     $conf['softref'] = 'typolink';
@@ -744,17 +635,16 @@ class ReferenceIndex implements LoggerAwareInterface
                         'itemArray' => $resultsFromDatabase
                     ];
                 }
-                // For "flex" fieldtypes we need to traverse the structure looking for file and db references of course!
+                // For "flex" fieldtypes we need to traverse the structure looking for db references of course!
                 if ($conf['type'] === 'flex') {
                     // Get current value array:
                     // NOTICE: failure to resolve Data Structures can lead to integrity problems with the reference index. Please look up
                     // the note in the JavaDoc documentation for the function FlexFormTools->getDataStructureIdentifier()
                     $currentValueArray = GeneralUtility::xml2array($value);
-                    // Traversing the XML structure, processing files:
+                    // Traversing the XML structure, processing:
                     if (is_array($currentValueArray)) {
                         $this->temp_flexRelations = [
                             'db' => [],
-                            'file' => [],
                             'softrefs' => []
                         ];
                         // Create and call iterator object:
@@ -795,7 +685,7 @@ class ReferenceIndex implements LoggerAwareInterface
     }
 
     /**
-     * Callback function for traversing the FlexForm structure in relation to finding file and DB references!
+     * Callback function for traversing the FlexForm structure in relation to finding DB references!
      *
      * @param array $dsArr Data structure for the current value
      * @param mixed $dataValue Current value
@@ -814,29 +704,6 @@ class ReferenceIndex implements LoggerAwareInterface
             $PA['uid'],
             $PA['field']
         ];
-        // Add files
-        $resultsFromFiles = $this->getRelations_procFiles($dataValue, $dsConf, $uid);
-        if (!empty($resultsFromFiles)) {
-            // We have to fill different arrays here depending on the result.
-            // internal_type file is still a relation of type file and
-            // since http://forge.typo3.org/issues/49538 internal_type file_reference
-            // is a database relation to a sys_file record
-            $fileResultsFromFiles = [];
-            $dbResultsFromFiles = [];
-            foreach ($resultsFromFiles as $resultFromFiles) {
-                if (isset($resultFromFiles['table']) && $resultFromFiles['table'] === 'sys_file') {
-                    $dbResultsFromFiles[] = $resultFromFiles;
-                } else {
-                    $fileResultsFromFiles[] = $resultFromFiles;
-                }
-            }
-            if (!empty($fileResultsFromFiles)) {
-                $this->temp_flexRelations['file'][$structurePath] = $fileResultsFromFiles;
-            }
-            if (!empty($dbResultsFromFiles)) {
-                $this->temp_flexRelations['db'][$structurePath] = $dbResultsFromFiles;
-            }
-        }
         // Add a softref definition for link fields if the TCA does not specify one already
         if ($dsConf['type'] === 'input' && $dsConf['renderType'] === 'inputLink' && empty($dsConf['softref'])) {
             $dsConf['softref'] = 'typolink';
@@ -872,67 +739,6 @@ class ReferenceIndex implements LoggerAwareInterface
     }
 
     /**
-     * Check field configuration if it is a file relation field and extract file relations if any
-     *
-     * @param string $value Field value
-     * @param array $conf Field configuration array of type "TCA/columns
-     * @param int $uid Field uid
-     * @return bool|array If field type is OK it will return an array with the files inside. Else FALSE
-     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-     */
-    public function getRelations_procFiles($value, $conf, $uid)
-    {
-        if ($conf['type'] !== 'group' || ($conf['internal_type'] !== 'file' && $conf['internal_type'] !== 'file_reference')) {
-            return false;
-        }
-
-        // Collect file values in array:
-        if ($conf['MM']) {
-            $theFileValues = [];
-            $dbAnalysis = GeneralUtility::makeInstance(RelationHandler::class);
-            $dbAnalysis->start('', 'files', $conf['MM'], $uid);
-            foreach ($dbAnalysis->itemArray as $someval) {
-                if ($someval['id']) {
-                    $theFileValues[] = $someval['id'];
-                }
-            }
-        } else {
-            $theFileValues = explode(',', $value);
-        }
-        // Traverse the files and add them:
-        $uploadFolder = $conf['internal_type'] === 'file' ? $conf['uploadfolder'] : '';
-        $destinationFolder = $this->destPathFromUploadFolder($uploadFolder);
-        $newValueFiles = [];
-        foreach ($theFileValues as $file) {
-            if (trim($file)) {
-                $realFile = $destinationFolder . '/' . trim($file);
-                $newValueFile = [
-                    'filename' => PathUtility::basename($file),
-                    'ID' => md5($realFile),
-                    'ID_absFile' => $realFile
-                ];
-                // Set sys_file and id for referenced files
-                if ($conf['internal_type'] === 'file_reference') {
-                    try {
-                        $file = ResourceFactory::getInstance()->retrieveFileOrFolderObject($file);
-                        if ($file instanceof File || $file instanceof Folder) {
-                            // For setting this as sys_file relation later, the keys filename, ID and ID_absFile
-                            // have not to be included, because the are not evaluated for db relations.
-                            $newValueFile = [
-                                'table' => 'sys_file',
-                                'id' => $file->getUid()
-                            ];
-                        }
-                    } catch (\Exception $e) {
-                    }
-                }
-                $newValueFiles[] = $newValueFile;
-            }
-        }
-        return $newValueFiles;
-    }
-
-    /**
      * Check field configuration if it is a DB relation field and extract DB relations if any
      *
      * @param string $value Field value
@@ -1049,14 +855,6 @@ class ReferenceIndex implements LoggerAwareInterface
                                 return $error;
                             }
                             break;
-                        case 'file_reference':
-                            // not used (see getRelations()), but fallback to file
-                        case 'file':
-                            $error = $this->setReferenceValue_fileRels($referenceRecord, $fieldRelation['newValueFiles'], $newValue, $dataArray);
-                            if ($error) {
-                                return $error;
-                            }
-                            break;
                         case 'flex':
                             // DB references in FlexForms
                             if (is_array($fieldRelation['flexFormRels']['db'][$referenceRecord['flexpointer']])) {
@@ -1065,13 +863,6 @@ class ReferenceIndex implements LoggerAwareInterface
                                     return $error;
                                 }
                             }
-                            // File references in FlexForms
-                            if (is_array($fieldRelation['flexFormRels']['file'][$referenceRecord['flexpointer']])) {
-                                $error = $this->setReferenceValue_fileRels($referenceRecord, $fieldRelation['flexFormRels']['file'][$referenceRecord['flexpointer']], $newValue, $dataArray, $referenceRecord['flexpointer']);
-                                if ($error) {
-                                    return $error;
-                                }
-                            }
                             // Soft references in FlexForms
                             if ($referenceRecord['softref_key'] && is_array($fieldRelation['flexFormRels']['softrefs'][$referenceRecord['flexpointer']]['keys'][$referenceRecord['softref_key']])) {
                                 $error = $this->setReferenceValue_softreferences($referenceRecord, $fieldRelation['flexFormRels']['softrefs'][$referenceRecord['flexpointer']], $newValue, $dataArray, $referenceRecord['flexpointer']);
@@ -1096,7 +887,6 @@ class ReferenceIndex implements LoggerAwareInterface
                     $dataHandler = GeneralUtility::makeInstance(DataHandler::class);
                     $dataHandler->dontProcessTransformations = true;
                     $dataHandler->bypassWorkspaceRestrictions = true;
-                    $dataHandler->bypassFileHandling = true;
                     // Otherwise this cannot update things in deleted records...
                     $dataHandler->bypassAccessCheckForRecords = true;
                     // Check has been done previously that there is a backend user which is Admin and also in live workspace
@@ -1156,47 +946,6 @@ class ReferenceIndex implements LoggerAwareInterface
     }
 
     /**
-     * Setting a value for a reference for a FILE field:
-     *
-     * @param array $refRec sys_refindex record
-     * @param array $itemArray Array of references from that field
-     * @param string $newValue Value to substitute current value with (or NULL to unset it)
-     * @param array $dataArray Data array in which the new value is set (passed by reference)
-     * @param string $flexPointer Flexform pointer, if in a flex form field.
-     * @return string Error message if any, otherwise FALSE = OK
-     */
-    public function setReferenceValue_fileRels($refRec, $itemArray, $newValue, &$dataArray, $flexPointer = '')
-    {
-        $ID_absFile = PathUtility::stripPathSitePrefix($itemArray[$refRec['sorting']]['ID_absFile']);
-        if ($ID_absFile === (string)$refRec['ref_string'] && $refRec['ref_table'] === '_FILE') {
-            // Setting or removing value:
-            // Remove value:
-            if ($newValue === null) {
-                unset($itemArray[$refRec['sorting']]);
-            } else {
-                $itemArray[$refRec['sorting']]['filename'] = $newValue;
-            }
-            // Traverse and compile new list of records:
-            $saveValue = [];
-            foreach ($itemArray as $fileInfo) {
-                $saveValue[] = $fileInfo['filename'];
-            }
-            // Set in data array:
-            if ($flexPointer) {
-                $flexFormTools = GeneralUtility::makeInstance(FlexFormTools::class);
-                $dataArray[$refRec['tablename']][$refRec['recuid']][$refRec['field']]['data'] = [];
-                $flexFormTools->setArrayValueByPath(substr($flexPointer, 0, -1), $dataArray[$refRec['tablename']][$refRec['recuid']][$refRec['field']]['data'], implode(',', $saveValue));
-            } else {
-                $dataArray[$refRec['tablename']][$refRec['recuid']][$refRec['field']] = implode(',', $saveValue);
-            }
-        } else {
-            return 'ERROR: either "' . $refRec['ref_table'] . '" was not "_FILE" or file Environment::getPublicPath()+"' . $refRec['ref_string'] . '" did not match that of the record ("' . $itemArray[$refRec['sorting']]['ID_absFile'] . '") in sorting index "' . $refRec['sorting'] . '"';
-        }
-
-        return false;
-    }
-
-    /**
      * Setting a value for a soft reference token
      *
      * @param array $refRec sys_refindex record
@@ -1270,8 +1019,6 @@ class ReferenceIndex implements LoggerAwareInterface
         return
             $this->isDbReferenceField($configuration)
             ||
-            ($configuration['type'] === 'group' && ($configuration['internal_type'] === 'file' || $configuration['internal_type'] === 'file_reference')) // getRelations_procFiles
-            ||
             ($configuration['type'] === 'input' && $configuration['renderType'] === 'inputLink') // getRelations_procDB
             ||
             $configuration['type'] === 'flex'
@@ -1313,17 +1060,6 @@ class ReferenceIndex implements LoggerAwareInterface
     }
 
     /**
-     * Returns destination path to an upload folder given by $folder
-     *
-     * @param string $folder Folder relative to TYPO3's public folder ("site path")
-     * @return string Input folder prefixed with Environment::getPublicPath(). No checking for existence is done. Output must be a folder without trailing slash.
-     */
-    public function destPathFromUploadFolder($folder)
-    {
-        return Environment::getPublicPath() . ($folder ? '/' . $folder : '');
-    }
-
-    /**
      * Updating Index (External API)
      *
      * @param bool $testOnly If set, only a test
index 27a92c2..85eaeaa 100644 (file)
@@ -18,7 +18,6 @@ use TYPO3\CMS\Core\Core\Environment;
 use TYPO3\CMS\Core\LinkHandling\LinkService;
 use TYPO3\CMS\Core\Resource\File;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Core\Utility\PathUtility;
 use TYPO3\CMS\Frontend\Service\TypoLinkCodecService;
 
 /**
@@ -169,33 +168,10 @@ class SoftReferenceIndex
                 $pI = pathinfo($srcRef);
                 // If it looks like a local image, continue. Otherwise ignore it.
                 $absPath = GeneralUtility::getFileAbsFileName(Environment::getPublicPath() . '/' . $srcRef);
-                if (!$pI['scheme'] && !$pI['query'] && $absPath && $srcRef !== 'clear.gif') {
-                    // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
+                if (!$pI['scheme'] && !$pI['query'] && $absPath) {
                     // Initialize the element entry with info text here:
-                    $tokenID = $this->makeTokenID($k);
                     $elements[$k] = [];
                     $elements[$k]['matchString'] = $v;
-                    // If the image seems to be an RTE image, then proceed to set up substitution token:
-                    if (GeneralUtility::isFirstPartOfStr($srcRef, 'uploads/') && preg_match('/^RTEmagicC_/', PathUtility::basename($srcRef))) {
-                        // Token and substitute value:
-                        // Make sure the value we work on is found and will get substituted in the content (Very important that the src-value is not DeHSC'ed)
-                        if (strstr($splitContent[$k], $attribs[0]['src'])) {
-                            // Substitute value with token (this is not be an exact method if the value is in there twice, but we assume it will not)
-                            $splitContent[$k] = str_replace($attribs[0]['src'], '{softref:' . $tokenID . '}', $splitContent[$k]);
-                            $elements[$k]['subst'] = [
-                                'type' => 'file',
-                                'relFileName' => $srcRef,
-                                'tokenID' => $tokenID,
-                                'tokenValue' => $attribs[0]['src']
-                            ];
-                            // Finally, notice if the file does not exist.
-                            if (!@is_file($absPath)) {
-                                $elements[$k]['error'] = 'File does not exist!';
-                            }
-                        } else {
-                            $elements[$k]['error'] = 'Could not substitute image source with token!';
-                        }
-                    }
                 }
             }
         }
index d0eb08c..a87cf1e 100644 (file)
@@ -79,7 +79,6 @@ class TcaMigration
         $tca = $this->migrateInlineOverrideChildTca($tca);
         $tca = $this->migrateLocalizeChildrenAtParentLocalization($tca);
         $tca = $this->migratePagesLanguageOverlayRemoval($tca);
-        $tca = $this->deprecateTypeGroupInternalTypeFile($tca);
         return $tca;
     }
 
@@ -1980,33 +1979,4 @@ class TcaMigration
         }
         return $tca;
     }
-
-    /**
-     * type=group with internal_type=file and internal_type=file_reference have
-     * been deprecated in TYPO3 v9 and will be removed in TYPO3 v10.0. This method scans
-     * for usages. This methods does not modify TCA.
-     *
-     * @param array $tca
-     * @return array
-     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0.
-     */
-    protected function deprecateTypeGroupInternalTypeFile(array $tca): array
-    {
-        foreach ($tca as $table => $tableDefinition) {
-            if (!isset($tableDefinition['columns']) || !is_array($tableDefinition['columns'])) {
-                continue;
-            }
-            foreach ($tableDefinition['columns'] as $fieldName => $fieldConfig) {
-                if (isset($fieldConfig['config']['type'], $fieldConfig['config']['internal_type'])
-                    && $fieldConfig['config']['type'] === 'group'
-                    && ($fieldConfig['config']['internal_type'] === 'file' || $fieldConfig['config']['internal_type'] === 'file_reference')
-                ) {
-                    $this->messages[] = 'The \'internal_type\' = \'' . $fieldConfig['config']['internal_type'] . '\' property value'
-                        . ' from TCA ' . $table . '[\'columns\'][\'' . $fieldName . '\'][\'config\'] is deprecated. It will continue'
-                        . ' to work is TYPO3 v9, but the functionality will be removed in TYPO3 v10.0. Switch to inline FAL instead.';
-                }
-            }
-        }
-        return $tca;
-    }
 }
index e95ee56..6880724 100644 (file)
@@ -90,9 +90,6 @@ class TreeDataProviderFactory
             } else {
                 throw new \InvalidArgumentException('TCA Tree configuration is invalid: neither "childrenField" nor "parentField" is set', 1288215889);
             }
-        } elseif ($tcaConfiguration['internal_type'] === 'file' && $dataProvider === null) {
-            // @deprecated since TYPO3 v9, will be removed in TYPO3 v10.0. Deprecation logged by TcaMigration class.
-            throw new \InvalidArgumentException('TCA Tree configuration is invalid: tree for "internal_type=file" not implemented yet', 1288215891);
         } elseif ($dataProvider === null) {
             throw new \InvalidArgumentException('TCA Tree configuration is invalid: tree for "internal_type=' . $tcaConfiguration['internal_type'] . '" not implemented yet', 1288215892);
         }
index ae73a39..a771352 100644 (file)
@@ -13,6 +13,9 @@ The following PHP classes that have been previously deprecated for v9 have been
 
 * :php:`TYPO3\CMS\Adminpanel\View\AdminPanelView`
 * :php:`TYPO3\CMS\Backend\Controller\LoginFramesetController`
+* :php:`TYPO3\CMS\Backend\Form\Form\FieldWizard\FileThumbnails`
+* :php:`TYPO3\CMS\Backend\Form\Form\FieldWizard\FileTypeList`
+* :php:`TYPO3\CMS\Backend\Form\Form\FieldWizard\FileUpload`
 * :php:`TYPO3\CMS\Backend\Http\AjaxRequestHandler`
 * :php:`TYPO3\CMS\Backend\Module\AbstractFunctionModule`
 * :php:`TYPO3\CMS\Backend\Module\AbstractModule`
@@ -289,9 +292,22 @@ The following PHP class methods that have been previously deprecated for v9 have
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash->setHashCount()`
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash->setMaxHashCount()`
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash->setMinHashCount()`
+* :php:`TYPO3\CMS\Core\Database\ReferenceIndex->createEntryData_fileRels()`
+* :php:`TYPO3\CMS\Core\Database\ReferenceIndex->createEntryDataForFileRelationsUsingRecord()`
+* :php:`TYPO3\CMS\Core\Database\ReferenceIndex->destPathFromUploadFolder()`
+* :php:`TYPO3\CMS\Core\Database\ReferenceIndex->getRelations_procFiles()`
+* :php:`TYPO3\CMS\Core\Database\ReferenceIndex->setReferenceValue_fileRels()`
 * :php:`TYPO3\CMS\Core\Database\SoftReferenceIndex->getPageIdFromAlias()`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->checkValue_group_select_file()`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->copyRecord_fixRTEmagicImages()`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->copyRecord_procFilesRefs()`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->deleteRecord_flexFormCallBack()`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->extFileFields()`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->extFileFunctions()`
 * :php:`TYPO3\CMS\Core\DataHandling\DataHandler->getTCEMAIN_TSconfig()`
 * :php:`TYPO3\CMS\Core\DataHandling\DataHandler->newlog2()`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->process_uploads_traverseArray()`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->removeRegisteredFiles()`
 * :php:`TYPO3\CMS\Core\DataHandling\DataHandler->resorting()`
 * :php:`TYPO3\CMS\Core\Imaging\GraphicalFunctions->init()`
 * :php:`TYPO3\CMS\Core\Html\RteHtmlParser->transformStyledATags()`
@@ -331,7 +347,7 @@ The following PHP class methods that have been previously deprecated for v9 have
 * :php:`TYPO3\CMS\Extbase\Mvc\Controller\Arguments->getValidationResults()`
 * :php:`TYPO3\CMS\Extbase\Service\EnvironmentService->isEnvironmentInCliMode`
 * :php:`TYPO3\CMS\Fluid\Core\Widget\Bootstrap->configureObjectManager()`
-* :php:`TYPO3\CMS\Filelist\FileFacade::getIcon()`
+* :php:`TYPO3\CMS\Filelist\FileFacade->getIcon()`
 * :php:`TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->addParams()`
 * :php:`TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->calcIntExplode()`
 * :php:`TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->currentPageUrl()`
@@ -412,7 +428,10 @@ The following PHP class methods that have been previously deprecated for v9 have
 * :php:`TYPO3\CMS\Install\Service\CoreVersionService->isYoungerPatchDevelopmentReleaseAvailable()`
 * :php:`TYPO3\CMS\Install\Service\CoreVersionService->getYoungestPatchDevelopmentRelease()`
 * :php:`TYPO3\CMS\Install\Service\CoreVersionService->updateVersionMatrix()`
-* :php:`TYPO3\CMS\Rsaauth\RsaEncryptionEncoder->getRsaPublicKeyAjaxHandler()`
+* :php:`TYPO3\CMS\Lowlevel\Integrity\DatabaseIntegrityCheck->getFileFields()`
+* :php:`TYPO3\CMS\Lowlevel\Integrity\DatabaseIntegrityCheck->testFileRefs()`
+* :php:`TYPO3\CMS\Lowlevel\Integrity\DatabaseIntegrityCheck->whereIsFileReferenced()`
+* :php:`TYPO3\CMS\Rsaauth\RsaEncryptionEncode[r->getRsaPublicKeyAjaxHandler()`
 * :php:`TYPO3\CMS\Setup\Controller\SetupModuleController->getFormProtection()`
 * :php:`TYPO3\CMS\Setup\Controller\SetupModuleController->simulateUser()`
 
@@ -442,6 +461,11 @@ The following PHP static class methods that have been previously deprecated for
 * :php:`TYPO3\CMS\Extbase\Mvc\Controller\ActionController::getActionMethodParameters()`
 
 
+The following PHP methods have been additionally deprecated and are a no-op now:
+
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->process_uploads()`
+
+
 The following methods changed signature according to previous deprecations in v9 at the end of the argument list:
 
 * :php:`TYPO3\CMS\Backend\Http\RouteDispatcher->dispatch()` - Second argument dropped
@@ -471,7 +495,6 @@ The following methods changed signature according to previous deprecations in v9
 * :php:`TYPO3\CMS\Recordlist\Controller\RecordListController->main()` - First argument mandatory
 
 
-
 The following public class properties have been dropped:
 
 * :php:`TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->access`
@@ -493,8 +516,17 @@ The following public class properties have been dropped:
 * :php:`TYPO3\CMS\Backend\Template\DocumentTemplate->hasDocheader`
 * :php:`TYPO3\CMS\Core\Authentication\BackendUserAuthentication->userTS_dontGetCached`
 * :php:`TYPO3\CMS\Core\Charset\CharsetConverter->synonyms`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->alternativeFileName`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->alternativeFilePath`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->autoVersioningUpdate`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->bypassFileHandling`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->copiedFileMap`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->filefunc`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->removeFilesStore`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->RTEmagic_copyIndex`
 * :php:`TYPO3\CMS\Core\DataHandling\DataHandler->updateModeL10NdiffData`
 * :php:`TYPO3\CMS\Core\DataHandling\DataHandler->updateModeL10NdiffDataClear`
+* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->uploadedFileArray`
 * :php:`TYPO3\CMS\Core\TypoScript\TemplateService->allowedPaths`
 * :php:`TYPO3\CMS\Core\TypoScript\TemplateService->debug`
 * :php:`TYPO3\CMS\Core\TypoScript\TemplateService->fileCache`
@@ -1006,10 +1038,12 @@ The following class properties have changed visibility:
 * :php:`TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController->localLangFile` changed from public to protected
 * :php:`TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController->pObj` changed from public to protected
 
+
 The following VieHelpers have changed:
 
 * :php:`TYPO3\CMS\Form\ViewHelpers\TranslateElementErrorViewHelper`: The arguments `code`, `arguments` & `defaultValue` have been removed.
 
+
 The following scheduler tasks have been removed:
 
 * EXT:extbase Task
@@ -1090,6 +1124,8 @@ The following class constants have been dropped:
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash::HASH_COUNT`
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash::MAX_HASH_COUNT`
 * :php:`TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash::MIN_HASH_COUNT`
+* :php:`TYPO3\CMS\Core\DataHandling\TableColumnSubType::FILE`
+* :php:`TYPO3\CMS\Core\DataHandling\TableColumnSubType::FILE_REFERENCE`
 * :php:`TYPO3\CMS\Core\Page\PageRenderer::JQUERY_NAMESPACE_NONE`
 * :php:`TYPO3\CMS\Core\Page\PageRenderer::JQUERY_VERSION_LATEST`
 * :php:`TYPO3\CMS\Core\Utility\GeneralUtility::SYSLOG_SEVERITY_ERROR`
@@ -1128,6 +1164,7 @@ The following global variables have been removed:
 
 The following hooks have been removed:
 
+* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processUpload']`
 * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/index_ts.php']['preBeUser']`
 * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/index_ts.php']['postBeUser']`
 * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/index_ts.php']['preprocessRequest']`
@@ -1147,12 +1184,14 @@ The following hooks don't pass the class reference anymore:
 * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['recordlist/Modules/Recordlist/index.php']['drawHeaderHook']`
 * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['recordlist/Modules/Recordlist/index.php']['drawFooterHook']`
 
+
 The following feature is now always enabled:
 
 * Extbase's :php:`consistentTranslationOverlayHandling` - Translations in Extbase are now always consistent
 * :php:`simplifiedControllerActionDispatching` - Backend controller actions do not receive a prepared response object anymore
 * :php:`unifiedPageTranslationHandling` - Page Translations are not within `pages_language_overlay` anymore
 
+
 The following features have been removed:
 
 * Migration from v4 to v5 PackagesStates.php
@@ -1161,6 +1200,7 @@ The following features have been removed:
   `$GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['my_eID'] = 'EXT:benni/Scripts/download.php'` will not work anymore.
   Instead, they must contain a target (callable, class/method, function).
 * TCA auto migration from core v6 to core v7 compatible TCA
+* TCA :php:`type='group'` with :php:`internal_type='file'` and :php:`internal_type='file_reference`
 
 
 The following database tables have been removed:
index eaba40f..1541a22 100644 (file)
@@ -5689,48 +5689,4 @@ class TcaMigrationTest extends UnitTestCase
         $subject = new TcaMigration();
         $this->assertEquals($expected, $subject->migrate($input));
     }
-
-    /**
-     * @test
-     */
-    public function migrateLogsDeprecationWithGroupInternalTypeFile()
-    {
-        $input = [
-            'aTable' => [
-                'columns' => [
-                    'foo' => [
-                        'config' => [
-                            'type' => 'group',
-                            'internal_type' => 'file',
-                        ],
-                    ],
-                ],
-            ],
-        ];
-        $subject = new TcaMigration();
-        $subject->migrate($input);
-        $this->assertNotEmpty($subject->getMessages());
-    }
-
-    /**
-     * @test
-     */
-    public function migrateLogsDeprecationWithGroupInternalTypeFileReference()
-    {
-        $input = [
-            'aTable' => [
-                'columns' => [
-                    'foo' => [
-                        'config' => [
-                            'type' => 'group',
-                            'internal_type' => 'file_reference',
-                        ],
-                    ],
-                ],
-            ],
-        ];
-        $subject = new TcaMigration();
-        $subject->migrate($input);
-        $this->assertNotEmpty($subject->getMessages());
-    }
 }
index a9d84c7..2c99426 100644 (file)
@@ -47,13 +47,6 @@ class TreeDataProviderFactoryTest extends UnitTestCase
     {
         return [
             'Empty Configuration' => [[], 1288215890],
-            'File Configuration' => [
-                [
-                    'internal_type' => 'file',
-                    'treeConfig' => [],
-                ],
-                1288215891
-            ],
             'Unknown Type' => [
                 [
                     'internal_type' => 'foo',
index 12a22f3..26b6628 100644 (file)
@@ -102,7 +102,7 @@ return [
             ]
         ],
         'subtitle' => [
-            'label' => 'LLL:EXT:blog_example/Resources/Private/Language/locallang_db.xml:tx_blogexample_domain_model_blog.subtitle',
+            'label' => 'LLL:EXT:blog_example/Resources/Private/Language/locallang_db.xml:tx_blogexample_domain_model_post.subtitle',
             'config' => [
                 'type' => 'input',
                 'size' => 20,
@@ -123,16 +123,7 @@ return [
         'logo' => [
             'exclude' => true,
             'label' => 'LLL:EXT:blog_example/Resources/Private/Language/locallang_db.xml:tx_blogexample_domain_model_blog.logo',
-            'config' => [
-                'type' => 'group',
-                'internal_type' => 'file',
-                'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
-                'max_size' => 3000,
-                'uploadfolder' => 'uploads/pics',
-                'size' => 1,
-                'maxitems' => 1,
-                'minitems' => 0
-            ]
+            'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('logo')
         ],
         'posts' => [
             'exclude' => true,
index 449c532..6a878ed 100644 (file)
@@ -556,8 +556,6 @@ class DataMapFactoryTest extends UnitTestCase
             [['type' => 'radio'], TableColumnType::RADIO, null],
             [['type' => 'select'], TableColumnType::SELECT, null],
             [['type' => 'group', 'internal_type' => 'db'], TableColumnType::GROUP, TableColumnSubType::DB],
-            [['type' => 'group', 'internal_type' => 'file'], TableColumnType::GROUP, TableColumnSubType::FILE],
-            [['type' => 'group', 'internal_type' => 'file_reference'], TableColumnType::GROUP, TableColumnSubType::FILE_REFERENCE],
             [['type' => 'group', 'internal_type' => 'folder'], TableColumnType::GROUP, TableColumnSubType::FOLDER],
             [['type' => 'none'], TableColumnType::NONE, null],
             [['type' => 'passthrough'], TableColumnType::PASSTHROUGH, null],
index 0529cf2..0483b8d 100644 (file)
@@ -300,7 +300,6 @@ class FrontendEditDataHandler
         if (!empty($data)) {
             $dataHandler = GeneralUtility::makeInstance(DataHandler::class);
             $dataHandler->start($data, []);
-            $dataHandler->process_uploads($_FILES);
             $dataHandler->process_datamap();
             // Save the new UID back into configuration
             $newUID = $dataHandler->substNEWwithIDs['NEW'];
index 25ebe2d..bcae088 100644 (file)
@@ -1012,11 +1012,9 @@ class Export extends ImportExport
                         'relations' => 'element',
                         'filerefs' => 'file',
                         'flexform:db' => 'db_relations',
-                        'flexform:file' => 'file_relations',
                         'flexform:softrefs' => 'softref_relations',
                         'softref_relations' => 'structurePath',
                         'db_relations' => 'path',
-                        'file_relations' => 'path',
                         'path' => 'element',
                         'keys' => 'softref_key',
                         'softref_key' => 'softref_element'
index 299b2ad..cb5c3d1 100644 (file)
@@ -96,16 +96,6 @@ class Import extends ImportExport
     /**
      * @var array
      */
-    protected $alternativeFileName = [];
-
-    /**
-     * @var array
-     */
-    protected $alternativeFilePath = [];
-
-    /**
-     * @var array
-     */
     protected $filePathMap = [];
 
     /**************************
@@ -139,8 +129,6 @@ class Import extends ImportExport
         $this->import_newId_pids = [];
         // Temporary files stack initialized:
         $this->unlinkFiles = [];
-        $this->alternativeFileName = [];
-        $this->alternativeFilePath = [];
 
         $this->initializeStorageObjects();
     }
@@ -953,8 +941,6 @@ class Import extends ImportExport
         $tce = GeneralUtility::makeInstance(DataHandler::class);
         $tce->dontProcessTransformations = 1;
         $tce->enableLogging = $this->enableLogging;
-        $tce->alternativeFileName = $this->alternativeFileName;
-        $tce->alternativeFilePath = $this->alternativeFilePath;
         return $tce;
     }
 
@@ -1060,11 +1046,7 @@ class Import extends ImportExport
         $valArray = [];
         foreach ($itemArray as $relDat) {
             if (is_array($this->import_mapId[$relDat['table']]) && isset($this->import_mapId[$relDat['table']][$relDat['id']])) {
-                // Since non FAL file relation type group internal_type file_reference are handled as reference to
-                // sys_file records Datahandler requires the value as uid of the the related sys_file record only
-                if ($itemConfig['type'] === 'group' && $itemConfig['internal_type'] === 'file_reference') {
-                    $value = $this->import_mapId[$relDat['table']][$relDat['id']];
-                } elseif ($itemConfig['type'] === 'input' && isset($itemConfig['wizards']['link'])) {
+                if ($itemConfig['type'] === 'input' && isset($itemConfig['wizards']['link'])) {
                     // If an input field has a relation to a sys_file record this need to be converted back to
                     // the public path. But use getPublicUrl here, because could normally only be a local file path.
                     $fileUid = $this->import_mapId[$relDat['table']][$relDat['id']];
@@ -1097,7 +1079,7 @@ class Import extends ImportExport
      * Writes the file from import array to temp dir and returns the filename of it.
      *
      * @param array $fI File information with three keys: "filename" = filename without path, "ID_absFile" = absolute filepath to the file (including the filename), "ID" = md5 hash of "ID_absFile
-     * @return string|null Absolute filename of the temporary filename of the file. In ->alternativeFileName the original name is set.
+     * @return string|null Absolute filename of the temporary filename of the file.
      */
     public function import_addFileNameToBeCopied($fI)
     {
@@ -1117,8 +1099,6 @@ class Import extends ImportExport
             clearstatcache();
             if (@is_file($tmpFile)) {
                 $this->unlinkFiles[] = $tmpFile;
-                $this->alternativeFileName[$tmpFile] = $fI['filename'];
-                $this->alternativeFilePath[$tmpFile] = $this->dat['files'][$fI['ID']]['relFileRef'];
                 return $tmpFile;
             }
             $this->error('Error: temporary file ' . $tmpFile . ' was not written as it should have been!');
diff --git a/typo3/sysext/impexp/Tests/Functional/Export/GroupFileAndFileReferenceItemInFlexFormTest.php b/typo3/sysext/impexp/Tests/Functional/Export/GroupFileAndFileReferenceItemInFlexFormTest.php
deleted file mode 100644 (file)
index 0721b26..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-<?php
-namespace TYPO3\CMS\Impexp\Tests\Functional\Export;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Backend\Utility\BackendUtility;
-use TYPO3\CMS\Core\Core\Environment;
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Impexp\Export;
-use TYPO3\CMS\Impexp\Tests\Functional\AbstractImportExportTestCase;
-
-/**
- * Test case
- */
-class GroupFileAndFileReferenceItemInFlexFormTest extends AbstractImportExportTestCase
-{
-    /**
-     * @var array
-     */
-    protected $testExtensionsToLoad = [
-        'typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files'
-    ];
-
-    /**
-     * @var array
-     */
-    protected $pathsToLinkInTestInstance = [
-        'typo3/sysext/impexp/Tests/Functional/Fixtures/Folders/fileadmin/user_upload' => 'fileadmin/user_upload',
-        'typo3/sysext/impexp/Tests/Functional/Fixtures/Folders/uploads/tx_impexpgroupfiles' => 'uploads/tx_impexpgroupfiles'
-    ];
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->importDataSet(__DIR__ . '/../Fixtures/DatabaseImports/pages.xml');
-        $this->importDataSet(__DIR__ . '/../Fixtures/DatabaseImports/sys_file.xml');
-        $this->importDataSet(__DIR__ . '/../Fixtures/DatabaseImports/sys_file_storage.xml');
-        $this->importDataSet(__DIR__ . '/../Fixtures/DatabaseImports/tx_impexpgroupfiles_item.xml');
-    }
-
-    /**
-     * @test
-     */
-    public function exportGroupFileAndFileReferenceItem()
-    {
-        $subject = GeneralUtility::makeInstance(Export::class);
-        $subject->init();
-
-        $subject->setRecordTypesIncludeFields(
-            [
-                'pages' => [
-                    'title',
-                    'deleted',
-                    'doktype',
-                    'hidden',
-                    'perms_everybody'
-                ],
-                'sys_file' => [
-                    'storage',
-                    'type',
-                    'metadata',
-                    'extension',
-                    'identifier',
-                    'identifier_hash',
-                    'folder_hash',
-                    'mime_type',
-                    'name',
-                    'sha1',
-                    'size',
-                    'creation_date',
-                    'modification_date',
-                ],
-                'sys_file_storage' => [
-                    'name',
-                    'description',
-                    'driver',
-                    'configuration',
-                    'is_default',
-                    'is_browsable',
-                    'is_public',
-                    'is_writable',
-                    'is_online'
-                ],
-                'tx_impexpgroupfiles_item' => [
-                    'title',
-                    'deleted',
-                    'hidden',
-                    'images',
-                    'image_references',
-                    'flexform'
-                ],
-
-            ]
-        );
-
-        $subject->relOnlyTables = [
-            'sys_file',
-            'sys_file_storage'
-        ];
-
-        // @todo: Do not rely on BackendUtility::getRecord() in the test case itself
-        $subject->export_addRecord('pages', $this->forceStringsOnRowValues(BackendUtility::getRecord('pages', 2)));
-        $subject->export_addRecord('tx_impexpgroupfiles_item', $this->forceStringsOnRowValues(BackendUtility::getRecord('tx_impexpgroupfiles_item', 2)));
-
-        $this->setPageTree($subject, 2, 0);
-
-        // After adding ALL records we set relations:
-        for ($a = 0; $a < 10; $a++) {
-            $addR = $subject->export_addDBRelations($a);
-            if (empty($addR)) {
-                break;
-            }
-        }
-
-        // Hacky, but the timestamp will change on every clone, so set the file modification timestamp to the asserted value
-        $success = touch(Environment::getPublicPath() . '/uploads/tx_impexpgroupfiles/typo3_image4.jpg', 1393866824);
-        // Early fail if touching failed - indicates a broken functional test setup
-        $this->assertTrue($success, 'Could not set file modification timestamp for a fixture binary file.');
-
-        $subject->export_addFilesFromRelations();
-        $subject->export_addFilesFromSysFilesRecords();
-
-        $out = $subject->compileMemoryToFileContent('xml');
-
-        $this->assertXmlStringEqualsXmlFile(
-            __DIR__ . '/../Fixtures/XmlExports/impexp-group-file-and-file_reference-item-in-ff.xml',
-            $out
-        );
-    }
-}
diff --git a/typo3/sysext/impexp/Tests/Functional/Export/GroupFileAndFileReferenceItemTest.php b/typo3/sysext/impexp/Tests/Functional/Export/GroupFileAndFileReferenceItemTest.php
deleted file mode 100644 (file)
index 78da539..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-namespace TYPO3\CMS\Impexp\Tests\Functional\Export;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-use TYPO3\CMS\Backend\Utility\BackendUtility;
-use TYPO3\CMS\Core\Core\Environment;
-use TYPO3\CMS\Core\Utility\GeneralUtility;
-use TYPO3\CMS\Impexp\Export;
-use TYPO3\CMS\Impexp\Tests\Functional\AbstractImportExportTestCase;
-
-/**
- * Test case
- */
-class GroupFileAndFileReferenceItemTest extends AbstractImportExportTestCase
-{
-    /**
-     * @var array
-     */
-    protected $testExtensionsToLoad = [
-        'typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files'
-    ];
-
-    /**
-     * @var array
-     */
-    protected $pathsToLinkInTestInstance = [
-        'typo3/sysext/impexp/Tests/Functional/Fixtures/Folders/fileadmin/user_upload' => 'fileadmin/user_upload',
-        'typo3/sysext/impexp/Tests/Functional/Fixtures/Folders/uploads/tx_impexpgroupfiles' => 'uploads/tx_impexpgroupfiles'
-    ];
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->importDataSet(__DIR__ . '/../Fixtures/DatabaseImports/pages.xml');
-        $this->importDataSet(__DIR__ . '/../Fixtures/DatabaseImports/sys_file.xml');
-        $this->importDataSet(__DIR__ . '/../Fixtures/DatabaseImports/sys_file_storage.xml');
-        $this->importDataSet(__DIR__ . '/../Fixtures/DatabaseImports/tx_impexpgroupfiles_item.xml');
-    }
-
-    /**
-     * @test
-     */
-    public function exportGroupFileAndFileReferenceItem()
-    {
-        $subject = GeneralUtility::makeInstance(Export::class);
-        $subject->init();
-
-        $this->compileExportGroupFileAndFileReferenceItem($subject);
-
-        $out = $subject->compileMemoryToFileContent('xml');
-
-        $this->assertXmlStringEqualsXmlFile(
-            __DIR__ . '/../Fixtures/XmlExports/impexp-group-file-and-file_reference-item.xml',
-            $out
-        );
-    }
-
-    /**
-     * @test
-     */
-    public function exportGroupFileAndFileReferenceItemButImagesNotIncluded()
-    {
-        $subject = GeneralUtility::makeInstance(Export::class);
-        $subject->init();
-
-        $subject->setSaveFilesOutsideExportFile(true);
-
-        $this->compileExportGroupFileAndFileReferenceItem($subject);
-
-        $out = $subject->compileMemoryToFileContent('xml');
-
-        $this->assertXmlStringEqualsXmlFile(
-            __DIR__ . '/../Fixtures/XmlExports/impexp-group-file-and-file_reference-item-but-images-not-included.xml',
-            $out
-        );
-
-        $temporaryFilesDirectory = $subject->getTemporaryFilesPathForExport();
-        $this->assertFileEquals(__DIR__ . '/../Fixtures/Folders/uploads/tx_impexpgroupfiles/typo3_image4.jpg', $temporaryFilesDirectory . 'e1c5c4e1e34e19e2facb438752e06c3f');
-        $this->assertFileEquals(__DIR__ . '/../Fixtures/Folders/fileadmin/user_upload/typo3_image5.jpg', $temporaryFilesDirectory . 'c3511df85d21bc578faf71c6a19eeb3ff44af370');
-    }
-
-    /**
-     * Add default set of records to export
-     *
-     * @param $subject Export
-     */
-    protected function compileExportGroupFileAndFileReferenceItem(Export $subject)
-    {
-        $subject->setRecordTypesIncludeFields(
-            [
-                'pages' => [
-                    'title',
-                    'deleted',
-                    'doktype',
-                    'hidden',
-                    'perms_everybody'
-                ],
-                'sys_file' => [
-                    'storage',
-                    'type',
-                    'metadata',
-                    'extension',
-                    'identifier',
-                    'identifier_hash',
-                    'folder_hash',
-                    'mime_type',
-                    'name',
-                    'sha1',
-                    'size',
-                    'creation_date',
-                    'modification_date',
-                ],
-                'sys_file_storage' => [
-                    'name',
-                    'description',
-                    'driver',
-                    'configuration',
-                    'is_default',
-                    'is_browsable',
-                    'is_public',
-                    'is_writable',
-                    'is_online'
-                ],
-                'tx_impexpgroupfiles_item' => [
-                    'title',
-                    'deleted',
-                    'hidden',
-                    'images',
-                    'image_references'
-                ],
-
-            ]
-        );
-
-        $subject->relOnlyTables = [
-            'sys_file',
-            'sys_file_storage'
-        ];
-
-        // @todo: Do not rely on BackendUtility::getRecord() in the test case itself
-        $subject->export_addRecord('pages', $this->forceStringsOnRowValues(BackendUtility::getRecord('pages', 1)));
-        $subject->export_addRecord('tx_impexpgroupfiles_item', $this->forceStringsOnRowValues(BackendUtility::getRecord('tx_impexpgroupfiles_item', 1)));
-
-        $this->setPageTree($subject, 1, 0);
-
-        // After adding ALL records we set relations:
-        for ($a = 0; $a < 10; $a++) {
-            $addR = $subject->export_addDBRelations($a);
-            if (empty($addR)) {
-                break;
-            }
-        }
-
-        // Hacky, but the timestamp will change on every clone, so set the file modification timestamp to the asserted value
-        $success = touch(Environment::getPublicPath() . '/uploads/tx_impexpgroupfiles/typo3_image4.jpg', 1393866824);
-        // Early fail if touching failed - indicates a broken functional test setup
-        $this->assertTrue($success, 'Could not set file modification timestamp for a fixture binary file.');
-
-        $subject->export_addFilesFromRelations();
-        $subject->export_addFilesFromSysFilesRecords();
-    }
-}
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItem.csv b/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItem.csv
deleted file mode 100644 (file)
index 1758a02..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-"pages",,,,,,,,,,,,
-,"uid","pid","sorting","deleted","title",,,,,,,
-,1,0,256,0,"Root",,,,,,,
-"sys_file_storage",,,,,,,,,,,,
-,"uid","pid","name","driver",,,,,,,,
-,1,0,"fileadmin/ (auto-created)","Local",,,,,,,,
-"sys_file",,,,,,,,,,,,
-,"uid","pid","storage","type","identifier","identifier_hash","folder_hash","extension","mime_type","name","sha1","size"
-,1,0,1,2,"/user_upload/typo3_image5.jpg","8180e85d25c96697ec9d2004683216831b91ffc1","19669f1e02c2f16705ec7587044c66443be70725","jpg","image/jpeg","typo3_image5.jpg","c3511df85d21bc578faf71c6a19eeb3ff44af370",7425
-"tx_impexpgroupfiles_item",,,,,,,,,,,,
-,"uid","pid","title","deleted","hidden","images","image_references",,,,,
-,1,1,"Test item",0,0,"typo3_image4.jpg","fileadmin/user_upload/typo3_image5.jpg",,,,,
-"sys_file_metadata",,,,,,,,,,,,
-,"uid","pid","file","title","width","height","description","alternative","sys_language_uid","l10n_parent",,
-,1,0,1,\NULL,300,200,\NULL,\NULL,0,0,,
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemInFlexForm.csv b/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemInFlexForm.csv
deleted file mode 100644 (file)
index d0c1ac6..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-"pages",,,,,,,,,,,,
-,"uid","pid","sorting","deleted","title",,,,,,,
-,1,0,256,0,"Dummy 1-2",,,,,,,
-"sys_file_storage",,,,,,,,,,,,
-,"uid","pid","name","driver",,,,,,,,
-,1,0,"fileadmin/ (auto-created)","Local",,,,,,,,
-"sys_file",,,,,,,,,,,,
-,"uid","pid","storage","type","identifier","identifier_hash","folder_hash","extension","mime_type","name","sha1","size"
-,1,0,1,2,"/user_upload/typo3_image5.jpg","8180e85d25c96697ec9d2004683216831b91ffc1","19669f1e02c2f16705ec7587044c66443be70725","jpg","image/jpeg","typo3_image5.jpg","c3511df85d21bc578faf71c6a19eeb3ff44af370",7425
-,2,0,1,2,"/user_upload/typo3_image3.jpg","25777b72e5e1cbed2d1b33e4fe5b737304b5bd28","19669f1e02c2f16705ec7587044c66443be70725","jpg","image/jpeg","typo3_image3.jpg","e873c1e2ffd0f191e183a1057de3eef4d62e782d",5565
-"tx_impexpgroupfiles_item",,,,,,,,,,,,
-,"uid","pid","title","deleted","hidden","images","image_references","flexform",,,,
-,1,1,"Test item 2",0,0,,,"<?xml version=""1.0"" encoding=""utf-8"" standalone=""yes"" ?><T3FlexForms><data><sheet index=""sDEF""><language index=""lDEF""><field index=""link""><value index=""vDEF"">file:2</value></field><field index=""images""><value index=""vDEF"">typo3_image4.jpg</value></field><field index=""image_references""><value index=""vDEF"">fileadmin/user_upload/typo3_image5.jpg</value></field></language></sheet></data></T3FlexForms>",,,,
-"sys_file_metadata",,,,,,,,,,,,
-,"uid","pid","file","title","width","height","description","alternative","sys_language_uid","l10n_parent",,
-,1,0,1,\NULL,300,200,\NULL,\NULL,0,0,,
-,2,0,2,\NULL,400,267,\NULL,\NULL,0,0,,
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemWithRootLevelAndPagesAllowed.csv b/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemWithRootLevelAndPagesAllowed.csv
deleted file mode 100644 (file)
index 1758a02..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-"pages",,,,,,,,,,,,
-,"uid","pid","sorting","deleted","title",,,,,,,
-,1,0,256,0,"Root",,,,,,,
-"sys_file_storage",,,,,,,,,,,,
-,"uid","pid","name","driver",,,,,,,,
-,1,0,"fileadmin/ (auto-created)","Local",,,,,,,,
-"sys_file",,,,,,,,,,,,
-,"uid","pid","storage","type","identifier","identifier_hash","folder_hash","extension","mime_type","name","sha1","size"
-,1,0,1,2,"/user_upload/typo3_image5.jpg","8180e85d25c96697ec9d2004683216831b91ffc1","19669f1e02c2f16705ec7587044c66443be70725","jpg","image/jpeg","typo3_image5.jpg","c3511df85d21bc578faf71c6a19eeb3ff44af370",7425
-"tx_impexpgroupfiles_item",,,,,,,,,,,,
-,"uid","pid","title","deleted","hidden","images","image_references",,,,,
-,1,1,"Test item",0,0,"typo3_image4.jpg","fileadmin/user_upload/typo3_image5.jpg",,,,,
-"sys_file_metadata",,,,,,,,,,,,
-,"uid","pid","file","title","width","height","description","alternative","sys_language_uid","l10n_parent",,
-,1,0,1,\NULL,300,200,\NULL,\NULL,0,0,,
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemWithRootLevelNotAllowed.csv b/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemWithRootLevelNotAllowed.csv
deleted file mode 100644 (file)
index f05bbc7..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-"pages",,,,,,,,,,,,
-,"uid","pid","sorting","deleted","title",,,,,,,
-,1,0,256,0,"Root",,,,,,,
-"sys_file_storage",,,,,,,,,,,,
-,"uid","pid","name","driver",,,,,,,,
-,1,0,"fileadmin/ (auto-created)","Local",,,,,,,,
-"sys_file",,,,,,,,,,,,
-,"uid","pid","storage","type","identifier","identifier_hash","folder_hash","extension","mime_type","name","sha1","size"
-,1,0,1,2,"/user_upload/typo3_image5.jpg","8180e85d25c96697ec9d2004683216831b91ffc1","19669f1e02c2f16705ec7587044c66443be70725","jpg","image/jpeg","typo3_image5.jpg","c3511df85d21bc578faf71c6a19eeb3ff44af370",7425
-"sys_file_metadata",,,,,,,,,,,,
-,"uid","pid","file","title","width","height","description","alternative","sys_language_uid","l10n_parent",,
-,1,0,1,\NULL,300,200,\NULL,\NULL,0,0,,
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemWithRootLevelOnlyAllowed.csv b/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseAssertions/importGroupFileAndFileReferenceItemWithRootLevelOnlyAllowed.csv
deleted file mode 100644 (file)
index 0da1aa2..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-"pages",,,,,,,,,,,,
-,"uid","pid","sorting","deleted","title",,,,,,,
-,1,0,256,0,"Root",,,,,,,
-"sys_file_storage",,,,,,,,,,,,
-,"uid","pid","name","driver",,,,,,,,
-,1,0,"fileadmin/ (auto-created)","Local",,,,,,,,
-"sys_file",,,,,,,,,,,,
-,"uid","pid","storage","type","identifier","identifier_hash","folder_hash","extension","mime_type","name","sha1","size"
-,1,0,1,2,"/user_upload/typo3_image5.jpg","8180e85d25c96697ec9d2004683216831b91ffc1","19669f1e02c2f16705ec7587044c66443be70725","jpg","image/jpeg","typo3_image5.jpg","c3511df85d21bc578faf71c6a19eeb3ff44af370",7425
-"tx_impexpgroupfiles_item",,,,,,,,,,,,
-,"uid","pid","title","deleted","hidden","images","image_references",,,,,
-,1,0,"Test item",0,0,"typo3_image4.jpg","fileadmin/user_upload/typo3_image5.jpg",,,,,
-"sys_file_metadata",,,,,,,,,,,,
-,"uid","pid","file","title","width","height","description","alternative","sys_language_uid","l10n_parent",,
-,1,0,1,\NULL,300,200,\NULL,\NULL,0,0,,
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseImports/tx_impexpgroupfiles_item.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/DatabaseImports/tx_impexpgroupfiles_item.xml
deleted file mode 100644 (file)
index cde3a76..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<dataset>
-       <tx_impexpgroupfiles_item>
-               <uid>1</uid>
-               <pid>1</pid>
-               <title>Test item</title>
-               <images>typo3_image4.jpg</images>
-               <image_references>fileadmin/user_upload/typo3_image5.jpg</image_references>
-               <deleted>0</deleted>
-               <flexform></flexform>
-               <t3ver_oid>0</t3ver_oid>
-               <t3ver_wsid>0</t3ver_wsid>
-               <l18n_diffsource></l18n_diffsource>
-       </tx_impexpgroupfiles_item>
-       <tx_impexpgroupfiles_item>
-               <uid>2</uid>
-               <pid>2</pid>
-               <title>Test item 2</title>
-               <images></images>
-               <image_references></image_references>
-               <flexform><![CDATA[<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<T3FlexForms>
-       <data>
-               <sheet index="sDEF">
-                       <language index="lDEF">
-                               <field index="link">
-                                       <value index="vDEF">file:2</value>
-                               </field>
-                               <field index="images">
-                                       <value index="vDEF">typo3_image4.jpg</value>
-                               </field>
-                               <field index="image_references">
-                                       <value index="vDEF">fileadmin/user_upload/typo3_image5.jpg</value>
-                               </field>
-                       </language>
-               </sheet>
-       </data>
-</T3FlexForms>]]></flexform>
-               <deleted>0</deleted>
-               <t3ver_oid>0</t3ver_oid>
-               <t3ver_wsid>0</t3ver_wsid>
-               <l18n_diffsource></l18n_diffsource>
-       </tx_impexpgroupfiles_item>
-</dataset>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Configuration/TCA/tx_impexpgroupfiles_item.php b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Configuration/TCA/tx_impexpgroupfiles_item.php
deleted file mode 100644 (file)
index b95362c..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-<?php
-defined('TYPO3_MODE') or die();
-
-return [
-    'ctrl' => [
-        'title'    => 'LLL:EXT:impexp_group_files/Resources/Private/Language/locallang_db.xlf:tx_impexpgroupfiles_item',
-        'label' => 'title',
-        'tstamp' => 'tstamp',
-        'crdate' => 'crdate',
-        'cruser_id' => 'cruser_id',
-        'sortby' => 'sorting',
-
-        'versioningWS' => true,
-
-        'origUid' => 't3_origuid',
-        'transOrigDiffSourceField' => 'l18n_diffsource',
-        'delete' => 'deleted',
-        'enablecolumns' => [
-            'disabled' => 'hidden',
-            'starttime' => 'starttime',
-            'endtime' => 'endtime',
-        ],
-        'searchFields' => 'price,currency,symbol,',
-        'iconfile' => 'EXT:impexp_group_files/Resources/Public/Icons/icon_tx_impexpgroupfiles_item.gif'
-    ],
-    'interface' => [
-        'showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title, images, image_references, flexform',
-    ],
-    'types' => [
-        '1' => ['showitem' => 'hidden, title, images, image_references, flexform, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access,starttime, endtime'],
-    ],
-    'palettes' => [
-        '1' => ['showitem' => ''],
-    ],
-    'columns' => [
-        'hidden' => [
-            'exclude' => true,
-            'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden',
-            'config' => [
-                'type' => 'check',
-            ],
-        ],
-        'starttime' => [
-            'exclude' => true,
-            'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime',
-            'config' => [
-                'type' => 'input',
-                'renderType' => 'inputDateTime',
-                'size' => 13,
-                'eval' => 'datetime',
-                'default' => 0,
-                'range' => [
-                    'lower' => mktime(0, 0, 0, (int)date('m'), (int)date('d'), (int)date('Y'))
-                ],
-            ],
-        ],
-        'endtime' => [
-            'exclude' => true,
-            'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime',
-            'config' => [
-                'type' => 'input',
-                'renderType' => 'inputDateTime',
-                'size' => 13,
-                'eval' => 'datetime',
-                'default' => 0,
-                'range' => [
-                    'lower' => mktime(0, 0, 0, (int)date('m'), (int)date('d'), (int)date('Y'))
-                ],
-            ],
-        ],
-        'l18n_diffsource' => [
-            'config' => [
-                'type' => 'passthrough',
-                'default' => ''
-            ]
-        ],
-        'title' => [
-            'label' => 'LLL:EXT:impexp_group_files/Resources/Private/Language/locallang_db.xml:tx_impexpgroupfiles_item_title',
-            'config' => [
-                'type' => 'input',
-                'size' => 30,
-                'max' => 255,
-                'eval' => 'required'
-            ]
-        ],
-        'images' => [
-            'label' => 'LLL:EXT:impexp_group_files/Resources/Private/Language/locallang_db.xml:tx_impexpgroupfiles_item_images',
-            'config' => [
-                'type' => 'group',
-                'internal_type' => 'file',
-                'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
-                'disallowed' => 'php',
-                'uploadfolder' => 'uploads/tx_impexpgroupfiles',
-                'size' => 5,
-                'maxitems' => 5,
-            ],
-        ],
-        'image_references' => [
-            'label' => 'LLL:EXT:impexp_group_files/Resources/Private/Language/locallang_db.xml:tx_impexpgroupfiles_item_image_references',
-            'config' => [
-                'type' => 'group',
-                'internal_type' => 'file_reference',
-                'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
-                'disallowed' => 'php',
-                'size' => 5,
-                'maxitems' => 5,
-            ],
-        ],
-        'flexform' => [
-            'label' => 'LLL:EXT:impexp_group_files/Resources/Private/Language/locallang_db.xml:tx_impexpgroupfiles_item_flexform',
-            'config' => [
-                'type' => 'flex',
-                'ds' => [
-                    'default' => '<T3DataStructure>
-                                                       <sheets>
-                                                               <sDEF>
-                                                                       <ROOT>
-                                                                               <TCEforms>
-                                                                                       <sheetTitle>Default</sheetTitle>
-                                                                               </TCEforms>
-                                                                               <type>array</type>
-                                                                               <el>
-                                                                                       <link>
-                                                                                               <TCEforms>
-                                                                                                       <label>Link</label>
-                                                                                                       <config>
-                                                                                                               <type>input</type>
-                                                                                                               <renderType>inputLink</renderType>
-                                                                                                               <size>50</size>
-                                                                                                               <max>256</max>
-                                                                                                               <eval>trim</eval>
-                                                                                                               <softref>typolink</softref>
-                                                                                                       </config>
-                                                                                               </TCEforms>
-                                                                                       </link>
-                                                                                       <images>
-                                                                                               <TCEforms>
-                                                                                                       <label>Images</label>
-                                                                                                       <config>
-                                                                                                               <type>group</type>
-                                                                                                               <internal_type>file</internal_type>
-                                                                                                               <allowed>' . $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] . '</allowed>
-                                                                                                               <disallowed>php</disallowed>
-                                                                                                               <uploadfolder>uploads/tx_impexpgroupfiles</uploadfolder>
-                                                                                                               <size>5</size>
-                                                                                                               <maxitems>5</maxitems>
-                                                                                                       </config>
-                                                                                               </TCEforms>
-                                                                                       </images>
-                                                                                       <image_references>
-                                                                                               <TCEforms>
-                                                                                                       <label>Image References</label>
-                                                                                                       <config>
-                                                                                                               <type>group</type>
-                                                                                                               <internal_type>file_reference</internal_type>
-                                                                                                               <allowed>' . $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] . '</allowed>
-                                                                                                               <disallowed>php</disallowed>
-                                                                                                               <uploadfolder>uploads/tx_impexpgroupfiles</uploadfolder>
-                                                                                                               <size>5</size>
-                                                                                                               <maxitems>5</maxitems>
-                                                                                                       </config>
-                                                                                               </TCEforms>
-                                                                                       </image_references>
-                                                                               </el>
-                                                                       </ROOT>
-                                                               </sDEF>
-                                                       </sheets>
-                                               </T3DataStructure>'
-                ],
-                'default' => ''
-            ]
-        ],
-    ],
-];
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Private/Language/locallang_db.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Private/Language/locallang_db.xml
deleted file mode 100644 (file)
index d742a8b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<T3locallang>
-       <meta type="array">
-               <type>database</type>
-               <description>Language labels for database tables/fields belonging to extension 'impexp_group_files'</description>
-       </meta>
-       <data type="array">
-               <languageKey index="default" type="array">
-                       <label index="tx_impexpgroupfiles_item">Item with group files and file references</label>
-                       <label index="tx_impexpgroupfiles_item_images">Images</label>
-                       <label index="tx_impexpgroupfiles_item_image_references">Image references</label>
-
-               </languageKey>
-       </data>
-</T3locallang>
\ No newline at end of file
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Public/Icons/Extension.gif b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Public/Icons/Extension.gif
deleted file mode 100644 (file)
index 893b87a..0000000
Binary files a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Public/Icons/Extension.gif and /dev/null differ
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Public/Icons/icon_tx_impextgroupfiles_item.gif b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Public/Icons/icon_tx_impextgroupfiles_item.gif
deleted file mode 100644 (file)
index fa6b46c..0000000
Binary files a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Resources/Public/Icons/icon_tx_impextgroupfiles_item.gif and /dev/null differ
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/ext_emconf.php b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/ext_emconf.php
deleted file mode 100644 (file)
index 4c860b4..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-$EM_CONF[$_EXTKEY] = [
-    'title' => 'Impexp test extension',
-    'description' => '',
-    'category' => '',
-    'version' => '10.0.0',
-    'state' => 'beta',
-    'uploadfolder' => 1,
-    'createDirs' => '',
-    'clearCacheOnLoad' => 1,
-    'author' => 'Marc Bastian Heinrichs',
-    'author_email' => 'mbh@mbh-software.de',
-    'author_company' => '',
-    'constraints' => [
-        'depends' => [
-            'typo3' => '10.0.0',
-        ],
-        'conflicts' => [],
-        'suggests' => [],
-    ],
-];
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/ext_tables.php b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/ext_tables.php
deleted file mode 100644 (file)
index 3ad6572..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-defined('TYPO3_MODE') or die();
-
-\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_impexpgroupfiles_item');
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/ext_tables.sql b/typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/ext_tables.sql
deleted file mode 100644 (file)
index e799431..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Table structure for table 'tx_impexpgroupfiles_item'
-#
-CREATE TABLE tx_impexpgroupfiles_item (
-       title tinytext NOT NULL,
-       images text NOT NULL,
-       image_references text NOT NULL,
-       flexform text NOT NULL
-);
-
-
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/Folders/uploads/tx_impexpgroupfiles/typo3_image4.jpg b/typo3/sysext/impexp/Tests/Functional/Fixtures/Folders/uploads/tx_impexpgroupfiles/typo3_image4.jpg
deleted file mode 100644 (file)
index 2e0a9b6..0000000
Binary files a/typo3/sysext/impexp/Tests/Functional/Fixtures/Folders/uploads/tx_impexpgroupfiles/typo3_image4.jpg and /dev/null differ
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/impexp-group-file-and-file_reference-item-but-images-not-included.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/impexp-group-file-and-file_reference-item-but-images-not-included.xml
deleted file mode 100644 (file)
index 5ce240b..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<T3RecordDocument>
-       <header type="array">
-               <records type="array">
-                       <table index="pages" type="array">
-                               <rec index="1" type="array">
-                                       <uid>1</uid>
-                                       <pid>0</pid>
-                                       <title>Root</title>
-                                       <relations index="rels" type="array"></relations>
-                                       <softrefs type="array"></softrefs>
-                               </rec>
-                       </table>
-                       <table index="tx_impexpgroupfiles_item" type="array">
-                               <rec index="1" type="array">
-                                       <uid>1</uid>
-                                       <pid>1</pid>
-                                       <title>Test item</title>
-                                       <relations index="rels" type="array">
-                                               <element index="sys_file:3" type="array">
-                                                       <table>sys_file</table>
-                                                       <id>3</id>
-                                               </element>
-                                       </relations>
-                                       <softrefs type="array"></softrefs>
-                                       <filerefs type="array">
-                                               <file index="0">66a2b7534be9ebf810cd55164c5f085d</file>
-                                       </filerefs>
-                               </rec>
-                       </table>
-                       <table index="sys_file" type="array">
-                               <rec index="3" type="array">
-                                       <uid>3</uid>
-                                       <pid>0</pid>
-                                       <title>typo3_image5.jpg</title>
-                                       <relationLevel>1</relationLevel>
-                                       <relations index="rels" type="array">
-                                               <element index="sys_file_storage:1" type="array">
-                                                       <id>1</id>
-                                                       <table>sys_file_storage</table>
-                                               </element>
-                                       </relations>
-                                       <softrefs type="array"></softrefs>
-                               </rec>
-                       </table>
-                       <table index="sys_file_storage" type="array">
-                               <rec index="1" type="array">
-                                       <uid>1</uid>
-                                       <pid>0</pid>
-                                       <title>fileadmin/ (auto-created)</title>
-                                       <relationLevel>2</relationLevel>
-                                       <relations index="rels" type="array"></relations>
-                                       <softrefs type="array"></softrefs>
-                               </rec>
-                       </table>
-               </records>
-               <pid_lookup type="array">
-                       <page_contents index="0" type="array">
-                               <table index="pages" type="array">
-                                       <item index="1">1</item>
-                               </table>
-                               <table index="sys_file" type="array">
-                                       <item index="3">1</item>
-                               </table>
-                               <table index="sys_file_storage" type="array">
-                                       <item index="1">1</item>
-                               </table>
-                       </page_contents>
-                       <page_contents index="1" type="array">
-                               <table index="tx_impexpgroupfiles_item" type="array">
-                                       <item index="1">1</item>
-                               </table>
-                       </page_contents>
-               </pid_lookup>
-               <pagetree type="array">
-                       <node index="1" type="array">
-                               <uid>1</uid>
-                       </node>
-               </pagetree>
-               <files type="array">
-                       <file index="66a2b7534be9ebf810cd55164c5f085d" type="array">
-                               <filename>typo3_image4.jpg</filename>
-                               <filemtime>1393866824</filemtime>
-                               <relFileRef>uploads/tx_impexpgroupfiles/typo3_image4.jpg</relFileRef>
-                               <record_ref>tx_impexpgroupfiles_item:1/images</record_ref>
-                       </file>
-               </files>
-               <files_fal type="array">
-                       <file index="23116a2a95820388bb7eede903382d4c" type="array">
-                               <filename>typo3_image5.jpg</filename>
-                               <filemtime>1393432183</filemtime>
-                       </file>
-               </files_fal>
-       </header>
-       <records type="array">
-               <tablerow index="pages:1" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">1</field>
-                               <field index="pid">0</field>
-                               <field index="deleted">0</field>
-                               <field index="hidden">0</field>
-                               <field index="perms_everybody">15</field>
-                               <field index="title">Root</field>
-                               <field index="doktype">1</field>
-                       </fieldlist>
-                       <related index="rels" type="array"></related>
-               </tablerow>
-               <tablerow index="tx_impexpgroupfiles_item:1" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">1</field>
-                               <field index="pid">1</field>
-                               <field index="deleted">0</field>
-                               <field index="hidden">0</field>
-                               <field index="title">Test item</field>
-                               <field index="images">typo3_image4.jpg</field>
-                               <field index="image_references">fileadmin/user_upload/typo3_image5.jpg</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="images" type="array">
-                                       <type>file</type>
-                                       <filerefs index="newValueFiles" type="array">
-                                               <file index="0" type="array">
-                                                       <filename>typo3_image4.jpg</filename>
-                                                       <ID>66a2b7534be9ebf810cd55164c5f085d</ID>
-                                               </file>
-                                       </filerefs>
-                               </field>
-                               <field index="image_references" type="array">
-                                       <type>db</type>
-                                       <relations index="itemArray" type="array">
-                                               <element index="0" type="array">
-                                                       <table>sys_file</table>
-                                                       <id>3</id>
-                                               </element>
-                                       </relations>
-                               </field>
-                       </related>
-               </tablerow>
-               <tablerow index="sys_file:3" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">3</field>
-                               <field index="pid">0</field>
-                               <field index="storage">1</field>
-                               <field index="type">2</field>
-                               <field index="metadata">0</field>
-                               <field index="identifier">/user_upload/typo3_image5.jpg</field>
-                               <field index="identifier_hash">8180e85d25c96697ec9d2004683216831b91ffc1</field>
-                               <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                               <field index="extension">jpg</field>
-                               <field index="mime_type">image/jpeg</field>
-                               <field index="name">typo3_image5.jpg</field>
-                               <field index="sha1">c3511df85d21bc578faf71c6a19eeb3ff44af370</field>
-                               <field index="size">7425</field>
-                               <field index="creation_date">1393432184</field>
-                               <field index="modification_date">1393432183</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="storage" type="array">
-                                       <type>db</type>
-                                       <relations index="itemArray" type="array">
-                                               <element index="0" type="array">
-                                                       <id>1</id>
-                                                       <table>sys_file_storage</table>
-                                               </element>
-                                       </relations>
-                               </field>
-                       </related>
-               </tablerow>
-               <tablerow index="sys_file_storage:1" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">1</field>
-                               <field index="pid">0</field>
-                               <field index="description" type="NULL"/>
-                               <field index="name">fileadmin/ (auto-created)</field>
-                               <field index="driver">Local</field>
-                               <field index="configuration">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;yes&quot; ?&gt;
-&lt;T3FlexForms&gt;
-       &lt;data&gt;
-               &lt;sheet index=&quot;sDEF&quot;&gt;
-                       &lt;language index=&quot;lDEF&quot;&gt;
-                               &lt;field index=&quot;basePath&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;fileadmin/&lt;/value&gt;
-                               &lt;/field&gt;
-                               &lt;field index=&quot;pathType&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;relative&lt;/value&gt;
-                               &lt;/field&gt;
-                               &lt;field index=&quot;caseSensitive&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;1&lt;/value&gt;
-                               &lt;/field&gt;
-                       &lt;/language&gt;
-               &lt;/sheet&gt;
-       &lt;/data&gt;
-&lt;/T3FlexForms&gt;</field>
-                               <field index="is_default">0</field>
-                               <field index="is_browsable">1</field>
-                               <field index="is_public">1</field>
-                               <field index="is_writable">1</field>
-                               <field index="is_online">1</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="configuration" type="array">
-                                       <type>flex</type>
-                                       <flexform index="flexFormRels" type="array">
-                                               <db_relations index="db" type="array"></db_relations>
-                                               <file_relations index="file" type="array"></file_relations>
-                                               <softref_relations index="softrefs" type="array"></softref_relations>
-                                       </flexform>
-                               </field>
-                       </related>
-               </tablerow>
-       </records>
-       <files type="array">
-               <file index="66a2b7534be9ebf810cd55164c5f085d" type="array">
-                       <filename>typo3_image4.jpg</filename>
-                       <filemtime>1393866824</filemtime>
-                       <relFileRef>uploads/tx_impexpgroupfiles/typo3_image4.jpg</relFileRef>
-                       <record_ref>tx_impexpgroupfiles_item:1/images</record_ref>
-                       <content_md5>e1c5c4e1e34e19e2facb438752e06c3f</content_md5>
-               </file>
-       </files>
-       <files_fal type="array">
-               <file index="23116a2a95820388bb7eede903382d4c" type="array">
-                       <filename>typo3_image5.jpg</filename>
-                       <filemtime>1393432183</filemtime>
-                       <content_sha1>c3511df85d21bc578faf71c6a19eeb3ff44af370</content_sha1>
-               </file>
-       </files_fal>
-</T3RecordDocument>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/impexp-group-file-and-file_reference-item-in-ff.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/impexp-group-file-and-file_reference-item-in-ff.xml
deleted file mode 100644 (file)
index 20d1e76..0000000
+++ /dev/null
@@ -1,689 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<T3RecordDocument>
-       <header type="array">
-               <records type="array">
-                       <table index="pages" type="array">
-                               <rec index="2" type="array">
-                                       <uid>2</uid>
-                                       <pid>1</pid>
-                                       <title>Dummy 1-2</title>
-                                       <relations index="rels" type="array"></relations>
-                                       <softrefs type="array"></softrefs>
-                               </rec>
-                       </table>
-                       <table index="tx_impexpgroupfiles_item" type="array">
-                               <rec index="2" type="array">
-                                       <uid>2</uid>
-                                       <pid>2</pid>
-                                       <title>Test item 2</title>
-                                       <relations index="rels" type="array">
-                                               <element index="sys_file:3" type="array">
-                                                       <table>sys_file</table>
-                                                       <id>3</id>
-                                               </element>
-                                       </relations>
-                                       <softrefs type="array">
-                                               <softref_element index="flexform:sDEF/lDEF/link/vDEF/:typolink:e9e93f03ab903de1d9b8860afad1cb61:0" type="array">
-                                                       <field>flexform</field>
-                                                       <spKey>typolink</spKey>
-                                                       <structurePath>sDEF/lDEF/link/vDEF/</structurePath>
-                                                       <matchString>file:2</matchString>
-                                                       <subst type="array">
-                                                               <type>db</type>
-                                                               <recordRef>sys_file:2</recordRef>
-                                                               <tokenID>e9e93f03ab903de1d9b8860afad1cb61</tokenID>
-                                                               <tokenValue>file:2</tokenValue>
-                                                       </subst>
-                                               </softref_element>
-                                       </softrefs>
-                                       <filerefs type="array">
-                                               <file index="0">66a2b7534be9ebf810cd55164c5f085d</file>
-                                       </filerefs>
-                               </rec>
-                       </table>
-                       <table index="sys_file" type="array">
-                               <rec index="3" type="array">
-                                       <uid>3</uid>
-                                       <pid>0</pid>
-                                       <title>typo3_image5.jpg</title>
-                                       <relationLevel>1</relationLevel>
-                                       <relations index="rels" type="array">
-                                               <element index="sys_file_storage:1" type="array">
-                                                       <id>1</id>
-                                                       <table>sys_file_storage</table>
-                                               </element>
-                                       </relations>
-                                       <softrefs type="array"></softrefs>
-                               </rec>
-                               <rec index="2" type="array">
-                                       <uid>2</uid>
-                                       <pid>0</pid>
-                                       <title>typo3_image3.jpg</title>
-                                       <relationLevel>1</relationLevel>
-                                       <relations index="rels" type="array">
-                                               <element index="sys_file_storage:1" type="array">
-                                                       <id>1</id>
-                                                       <table>sys_file_storage</table>
-                                               </element>
-                                       </relations>
-                                       <softrefs type="array"></softrefs>
-                               </rec>
-                       </table>
-                       <table index="sys_file_storage" type="array">
-                               <rec index="1" type="array">
-                                       <uid>1</uid>
-                                       <pid>0</pid>
-                                       <title>fileadmin/ (auto-created)</title>
-                                       <relationLevel>2</relationLevel>
-                                       <relations index="rels" type="array"></relations>
-                                       <softrefs type="array"></softrefs>
-                               </rec>
-                       </table>
-               </records>
-               <pid_lookup type="array">
-                       <page_contents index="1" type="array">
-                               <table index="pages" type="array">
-                                       <item index="2">1</item>
-                               </table>
-                       </page_contents>
-                       <page_contents index="2" type="array">
-                               <table index="tx_impexpgroupfiles_item" type="array">
-                                       <item index="2">1</item>
-                               </table>
-                       </page_contents>
-                       <page_contents index="0" type="array">
-                               <table index="sys_file" type="array">
-                                       <item index="3">1</item>
-                                       <item index="2">1</item>
-                               </table>
-                               <table index="sys_file_storage" type="array">
-                                       <item index="1">1</item>
-                               </table>
-                       </page_contents>
-               </pid_lookup>
-               <pagetree type="array">
-                       <node index="2" type="array">
-                               <uid>2</uid>
-                       </node>
-               </pagetree>
-               <files type="array">
-                       <file index="66a2b7534be9ebf810cd55164c5f085d" type="array">
-                               <filename>typo3_image4.jpg</filename>
-                               <filemtime>1393866824</filemtime>
-                               <relFileRef>uploads/tx_impexpgroupfiles/typo3_image4.jpg</relFileRef>
-                               <record_ref>tx_impexpgroupfiles_item:2/flexform</record_ref>
-                       </file>
-               </files>
-               <files_fal type="array">
-                       <file index="23116a2a95820388bb7eede903382d4c" type="array">
-                               <filename>typo3_image5.jpg</filename>
-                               <filemtime>1393432183</filemtime>
-                       </file>
-                       <file index="0e290b0bb4f0b57f7f58fd5c342117fe" type="array">
-                               <filename>typo3_image3.jpg</filename>
-                               <filemtime>1392907534</filemtime>
-                       </file>
-               </files_fal>
-       </header>
-       <records type="array">
-               <tablerow index="pages:2" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">2</field>
-                               <field index="pid">1</field>
-                               <field index="deleted">0</field>
-                               <field index="hidden">0</field>
-                               <field index="perms_everybody">15</field>
-                               <field index="title">Dummy 1-2</field>
-                               <field index="doktype">1</field>
-                       </fieldlist>
-                       <related index="rels" type="array"></related>
-               </tablerow>
-               <tablerow index="tx_impexpgroupfiles_item:2" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">2</field>
-                               <field index="pid">2</field>
-                               <field index="deleted">0</field>
-                               <field index="hidden">0</field>
-                               <field index="title">Test item 2</field>
-                               <field index="images"></field>
-                               <field index="image_references"></field>
-                               <field index="flexform">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;yes&quot; ?&gt;
-&lt;T3FlexForms&gt;
-       &lt;data&gt;
-               &lt;sheet index=&quot;sDEF&quot;&gt;
-                       &lt;language index=&quot;lDEF&quot;&gt;
-                               &lt;field index=&quot;link&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;file:2&lt;/value&gt;
-                               &lt;/field&gt;
-                               &lt;field index=&quot;images&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;typo3_image4.jpg&lt;/value&gt;
-                               &lt;/field&gt;
-                               &lt;field index=&quot;image_references&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;fileadmin/user_upload/typo3_image5.jpg&lt;/value&gt;
-                               &lt;/field&gt;
-                       &lt;/language&gt;
-               &lt;/sheet&gt;
-       &lt;/data&gt;
-&lt;/T3FlexForms&gt;</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="flexform" type="array">
-                                       <type>flex</type>
-                                       <flexform index="flexFormRels" type="array">
-                                               <db_relations index="db" type="array">
-                                                       <path index="sDEF/lDEF/image_references/vDEF/" type="array">
-                                                               <element index="0" type="array">
-                                                                       <table>sys_file</table>
-                                                                       <id>3</id>
-                                                               </element>
-                                                       </path>
-                                               </db_relations>
-                                               <file_relations index="file" type="array">
-                                                       <path index="sDEF/lDEF/images/vDEF/" type="array">
-                                                               <element index="0" type="array">
-                                                                       <filename>typo3_image4.jpg</filename>
-                                                                       <ID>66a2b7534be9ebf810cd55164c5f085d</ID>
-                                                               </element>
-                                                       </path>
-                                               </file_relations>
-                                               <softref_relations index="softrefs" type="array">
-                                                       <structurePath index="sDEF/lDEF/link/vDEF/" type="array">
-                                                               <keys type="array">
-                                                                       <softref_key index="typolink" type="array">
-                                                                               <softref_element index="e9e93f03ab903de1d9b8860afad1cb61:0" type="array">
-                                                                                       <matchString>file:2</matchString>
-                                                                                       <subst type="array">
-                                                                                               <type>db</type>
-                                                                                               <recordRef>sys_file:2</recordRef>
-                                                                                               <tokenID>e9e93f03ab903de1d9b8860afad1cb61</tokenID>
-                                                                                               <tokenValue>file:2</tokenValue>
-                                                                                       </subst>
-                                                                               </softref_element>
-                                                                       </softref_key>
-                                                               </keys>
-                                                               <tokenizedContent>{softref:e9e93f03ab903de1d9b8860afad1cb61}</tokenizedContent>
-                                                       </structurePath>
-                                               </softref_relations>
-                                       </flexform>
-                               </field>
-                       </related>
-               </tablerow>
-               <tablerow index="sys_file:3" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">3</field>
-                               <field index="pid">0</field>
-                               <field index="storage">1</field>
-                               <field index="type">2</field>
-                               <field index="metadata">0</field>
-                               <field index="identifier">/user_upload/typo3_image5.jpg</field>
-                               <field index="identifier_hash">8180e85d25c96697ec9d2004683216831b91ffc1</field>
-                               <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                               <field index="extension">jpg</field>
-                               <field index="mime_type">image/jpeg</field>
-                               <field index="name">typo3_image5.jpg</field>
-                               <field index="sha1">c3511df85d21bc578faf71c6a19eeb3ff44af370</field>
-                               <field index="size">7425</field>
-                               <field index="creation_date">1393432184</field>
-                               <field index="modification_date">1393432183</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="storage" type="array">
-                                       <type>db</type>
-                                       <relations index="itemArray" type="array">
-                                               <element index="0" type="array">
-                                                       <id>1</id>
-                                                       <table>sys_file_storage</table>
-                                               </element>
-                                       </relations>
-                               </field>
-                       </related>
-               </tablerow>
-               <tablerow index="sys_file:2" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">2</field>
-                               <field index="pid">0</field>
-                               <field index="storage">1</field>
-                               <field index="type">2</field>
-                               <field index="metadata">0</field>
-                               <field index="identifier">/user_upload/typo3_image3.jpg</field>
-                               <field index="identifier_hash">25777b72e5e1cbed2d1b33e4fe5b737304b5bd28</field>
-                               <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                               <field index="extension">jpg</field>
-                               <field index="mime_type">image/jpeg</field>
-                               <field index="name">typo3_image3.jpg</field>
-                               <field index="sha1">e873c1e2ffd0f191e183a1057de3eef4d62e782d</field>
-                               <field index="size">5565</field>
-                               <field index="creation_date">1393346082</field>
-                               <field index="modification_date">1392907534</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="storage" type="array">
-                                       <type>db</type>
-                                       <relations index="itemArray" type="array">
-                                               <element index="0" type="array">
-                                                       <id>1</id>
-                                                       <table>sys_file_storage</table>
-                                               </element>
-                                       </relations>
-                               </field>
-                       </related>
-               </tablerow>
-               <tablerow index="sys_file_storage:1" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">1</field>
-                               <field index="pid">0</field>
-                               <field index="description" type="NULL"/>
-                               <field index="name">fileadmin/ (auto-created)</field>
-                               <field index="driver">Local</field>
-                               <field index="configuration">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;yes&quot; ?&gt;
-&lt;T3FlexForms&gt;
-       &lt;data&gt;
-               &lt;sheet index=&quot;sDEF&quot;&gt;
-                       &lt;language index=&quot;lDEF&quot;&gt;
-                               &lt;field index=&quot;basePath&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;fileadmin/&lt;/value&gt;
-                               &lt;/field&gt;
-                               &lt;field index=&quot;pathType&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;relative&lt;/value&gt;
-                               &lt;/field&gt;
-                               &lt;field index=&quot;caseSensitive&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;1&lt;/value&gt;
-                               &lt;/field&gt;
-                       &lt;/language&gt;
-               &lt;/sheet&gt;
-       &lt;/data&gt;
-&lt;/T3FlexForms&gt;</field>
-                               <field index="is_default">0</field>
-                               <field index="is_browsable">1</field>
-                               <field index="is_public">1</field>
-                               <field index="is_writable">1</field>
-                               <field index="is_online">1</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="configuration" type="array">
-                                       <type>flex</type>
-                                       <flexform index="flexFormRels" type="array">
-                                               <db_relations index="db" type="array"></db_relations>
-                                               <file_relations index="file" type="array"></file_relations>
-                                               <softref_relations index="softrefs" type="array"></softref_relations>
-                                       </flexform>
-                               </field>
-                       </related>
-               </tablerow>
-       </records>
-       <files type="array">
-               <file index="66a2b7534be9ebf810cd55164c5f085d" type="array">
-                       <filename>typo3_image4.jpg</filename>
-                       <filemtime>1393866824</filemtime>
-                       <relFileRef>uploads/tx_impexpgroupfiles/typo3_image4.jpg</relFileRef>
-                       <record_ref>tx_impexpgroupfiles_item:2/flexform</record_ref>
-                       <content base64="1">
-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
-bum/HHoj7VbS/qPUTat1yjHHkSpXcl8VZpcorUdVPb3V/lnBd5XddMnwv07D151nm6cm+mL5ryzf
-nk4Rcu8dzLFnT92KXXFr2t/p+KMZpzVW07TvzuTldp9VrlNvUU79PpTe2yLmxuOFzUK22TVfuZrJ
-HDU5Rc+rjwmvP9TKWraVq3N8t8L8Itjjfguvloz4Xi0M47dS9ylf3I4sDShKK233R1zySybTk2nz
-8nDjdTbfdlrjcZ26vxMpc+mTjbafBsMMmytGSkZvRx6umXqVB43Lpi938mjPc4UlSXfuYau1CLXZ
-mGOU5e3my0jj5+TKZeGLp0zUPbbal/k6DVh0/pU3Pqa42Np1YSydvL5cpb0EpP7lZQXs2zlsu449
-RF4cs01cmvZXBobtL57HpSdR6n+lbfBojjV9TVt9zmzni7+DjvP20R6kqlzVGWBb14ZNQ0si3q0Y
-6eT9yvZ870Ze3XuYZSV2fBslJzUW2nsla+DQ76qava7N+LInpvSUY1GVqS+expxdVh+blMpJPhiC
-g6nloCgCAoAgKKtgQGUoyg6kmn4ZiAAAEBQBAUgAAAZgFJVQFAEBQBAUBKFtRabk1XZAyhFStNX4
-RnyTeNWw/puyTjLH0yjN7cpU0acE4QXqNN3s21v4M4427U16a7X/APv+RigvcvUUk+V2RxOlax45
-rJj2jL7klt+TOU1t3vhBN449MY9T7JFjDpu3cny1/ggY50nC1scx05fsa+TnOzh/lhyew4Mk16sm
-tk2d55+qxrFN1w90OWdN/wAXLVrbjyJrpkVxcXa4OPGr5bOic5RS36uxz2PQw/JlnbdJRa91V8mK
-njivY0+3tNM+qeFpfvXc6tDjwegpSg0097lV7duxPirn+V/1jZBycE5Kn4Mish1zqPJztyytoACV
-WGT/AG38swVnoYPp09RFTnL08fN1uzp1mjw4dJKWCG6fub3dfucvL3Xqfi8uPHhq+6+d1mKbljfR
-Lpa5o6dFoHlyJKLaT3lXCPY+mzcsUovlPh7nS4Y+hwUVBS39qoy8k5Z7tuu3z+t1HWp6eGOMIQk1
-t3p8/wBjHS2oyT5+D0830jE3/DySj+dzmh9Py4XJ+2d+Ga4ZTblzlsawZyxzh90HH8oxOpyaQhkA
-IDdg02XUSrHG13b4R6Wn0Wn08l6s4zyvhSdL+hXLORbHC15+HR5Mq6muiHl9/wAHXj00MNUt33fJ
-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
-</content>
-                       <content_md5>e1c5c4e1e34e19e2facb438752e06c3f</content_md5>
-               </file>
-       </files>
-       <files_fal type="array">
-               <file index="23116a2a95820388bb7eede903382d4c" type="array">
-                       <filename>typo3_image5.jpg</filename>
-                       <filemtime>1393432183</filemtime>
-                       <content base64="1">
-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
-oDglIOy49+o2eaEKg//Z
-</content>
-                       <content_sha1>c3511df85d21bc578faf71c6a19eeb3ff44af370</content_sha1>
-               </file>
-               <file index="0e290b0bb4f0b57f7f58fd5c342117fe" type="array">
-                       <filename>typo3_image3.jpg</filename>
-                       <filemtime>1392907534</filemtime>
-                       <content base64="1">
-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
-</content>
-                       <content_sha1>e873c1e2ffd0f191e183a1057de3eef4d62e782d</content_sha1>
-               </file>
-       </files_fal>
-</T3RecordDocument>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/impexp-group-file-and-file_reference-item.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlExports/impexp-group-file-and-file_reference-item.xml
deleted file mode 100644 (file)
index 9d6b2f6..0000000
+++ /dev/null
@@ -1,482 +0,0 @@
-<?xml version="1.0"?>
-<T3RecordDocument>
-       <header type="array">
-               <records type="array">
-                       <table index="pages" type="array">
-                               <rec index="1" type="array">
-                                       <uid>1</uid>
-                                       <pid>0</pid>
-                                       <title>Root</title>
-                                       <relations index="rels" type="array"/>
-                                       <softrefs type="array"/>
-                               </rec>
-                       </table>
-                       <table index="tx_impexpgroupfiles_item" type="array">
-                               <rec index="1" type="array">
-                                       <uid>1</uid>
-                                       <pid>1</pid>
-                                       <title>Test item</title>
-                                       <relations index="rels" type="array">
-                                               <element index="sys_file:3" type="array">
-                                                       <table>sys_file</table>
-                                                       <id>3</id>
-                                               </element>
-                                       </relations>
-                                       <softrefs type="array"/>
-                                       <filerefs type="array">
-                                               <file index="0">66a2b7534be9ebf810cd55164c5f085d</file>
-                                       </filerefs>
-                               </rec>
-                       </table>
-                       <table index="sys_file" type="array">
-                               <rec index="3" type="array">
-                                       <uid>3</uid>
-                                       <pid>0</pid>
-                                       <title>typo3_image5.jpg</title>
-                                       <relationLevel>1</relationLevel>
-                                       <relations index="rels" type="array">
-                                               <element index="sys_file_storage:1" type="array">
-                                                       <id>1</id>
-                                                       <table>sys_file_storage</table>
-                                               </element>
-                                       </relations>
-                                       <softrefs type="array"/>
-                               </rec>
-                       </table>
-                       <table index="sys_file_storage" type="array">
-                               <rec index="1" type="array">
-                                       <uid>1</uid>
-                                       <pid>0</pid>
-                                       <title>fileadmin/ (auto-created)</title>
-                                       <relationLevel>2</relationLevel>
-                                       <relations index="rels" type="array"/>
-                                       <softrefs type="array"/>
-                               </rec>
-                       </table>
-               </records>
-               <pid_lookup type="array">
-                       <page_contents index="0" type="array">
-                               <table index="pages" type="array">
-                                       <item index="1">1</item>
-                               </table>
-                               <table index="sys_file" type="array">
-                                       <item index="3">1</item>
-                               </table>
-                               <table index="sys_file_storage" type="array">
-                                       <item index="1">1</item>
-                               </table>
-                       </page_contents>
-                       <page_contents index="1" type="array">
-                               <table index="tx_impexpgroupfiles_item" type="array">
-                                       <item index="1">1</item>
-                               </table>
-                       </page_contents>
-               </pid_lookup>
-               <pagetree type="array">
-                       <node index="1" type="array">
-                               <uid>1</uid>
-                       </node>
-               </pagetree>
-               <files type="array">
-                       <file index="66a2b7534be9ebf810cd55164c5f085d" type="array">
-                               <filename>typo3_image4.jpg</filename>
-                               <filemtime>1393866824</filemtime>
-                               <relFileRef>uploads/tx_impexpgroupfiles/typo3_image4.jpg</relFileRef>
-                               <record_ref>tx_impexpgroupfiles_item:1/images</record_ref>
-                       </file>
-               </files>
-               <files_fal type="array">
-                       <file index="23116a2a95820388bb7eede903382d4c" type="array">
-                               <filename>typo3_image5.jpg</filename>
-                               <filemtime>1393432183</filemtime>
-                       </file>
-               </files_fal>
-       </header>
-       <records type="array">
-               <tablerow index="pages:1" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">1</field>
-                               <field index="pid">0</field>
-                               <field index="deleted">0</field>
-                               <field index="hidden">0</field>
-                               <field index="perms_everybody">15</field>
-                               <field index="title">Root</field>
-                               <field index="doktype">1</field>
-                       </fieldlist>
-                       <related index="rels" type="array"/>
-               </tablerow>
-               <tablerow index="tx_impexpgroupfiles_item:1" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">1</field>
-                               <field index="pid">1</field>
-                               <field index="deleted">0</field>
-                               <field index="hidden">0</field>
-                               <field index="title">Test item</field>
-                               <field index="images">typo3_image4.jpg</field>
-                               <field index="image_references">fileadmin/user_upload/typo3_image5.jpg</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="images" type="array">
-                                       <type>file</type>
-                                       <filerefs index="newValueFiles" type="array">
-                                               <file index="0" type="array">
-                                                       <filename>typo3_image4.jpg</filename>
-                                                       <ID>66a2b7534be9ebf810cd55164c5f085d</ID>
-                                               </file>
-                                       </filerefs>
-                               </field>
-                               <field index="image_references" type="array">
-                                       <type>db</type>
-                                       <relations index="itemArray" type="array">
-                                               <element index="0" type="array">
-                                                       <table>sys_file</table>
-                                                       <id>3</id>
-                                               </element>
-                                       </relations>
-                               </field>
-                       </related>
-               </tablerow>
-               <tablerow index="sys_file:3" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">3</field>
-                               <field index="pid">0</field>
-                               <field index="storage">1</field>
-                               <field index="type">2</field>
-                               <field index="metadata">0</field>
-                               <field index="identifier">/user_upload/typo3_image5.jpg</field>
-                               <field index="identifier_hash">8180e85d25c96697ec9d2004683216831b91ffc1</field>
-                               <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                               <field index="extension">jpg</field>
-                               <field index="mime_type">image/jpeg</field>
-                               <field index="name">typo3_image5.jpg</field>
-                               <field index="sha1">c3511df85d21bc578faf71c6a19eeb3ff44af370</field>
-                               <field index="size">7425</field>
-                               <field index="creation_date">1393432184</field>
-                               <field index="modification_date">1393432183</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="storage" type="array">
-                                       <type>db</type>
-                                       <relations index="itemArray" type="array">
-                                               <element index="0" type="array">
-                                                       <id>1</id>
-                                                       <table>sys_file_storage</table>
-                                               </element>
-                                       </relations>
-                               </field>
-                       </related>
-               </tablerow>
-               <tablerow index="sys_file_storage:1" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">1</field>
-                               <field index="pid">0</field>
-                               <field index="description" type="NULL"/>
-                               <field index="name">fileadmin/ (auto-created)</field>
-                               <field index="driver">Local</field>
-                               <field index="configuration">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;yes&quot; ?&gt;
-&lt;T3FlexForms&gt;
-       &lt;data&gt;
-               &lt;sheet index=&quot;sDEF&quot;&gt;
-                       &lt;language index=&quot;lDEF&quot;&gt;
-                               &lt;field index=&quot;basePath&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;fileadmin/&lt;/value&gt;
-                               &lt;/field&gt;
-                               &lt;field index=&quot;pathType&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;relative&lt;/value&gt;
-                               &lt;/field&gt;
-                               &lt;field index=&quot;caseSensitive&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;1&lt;/value&gt;
-                               &lt;/field&gt;
-                       &lt;/language&gt;
-               &lt;/sheet&gt;
-       &lt;/data&gt;
-&lt;/T3FlexForms&gt;</field>
-                               <field index="is_default">0</field>
-                               <field index="is_browsable">1</field>
-                               <field index="is_public">1</field>
-                               <field index="is_writable">1</field>
-                               <field index="is_online">1</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="configuration" type="array">
-                                       <type>flex</type>
-                                       <flexform index="flexFormRels" type="array">
-                                               <db_relations index="db" type="array"/>
-                                               <file_relations index="file" type="array"/>
-                                               <softref_relations index="softrefs" type="array"/>
-                                       </flexform>
-                               </field>
-                       </related>
-               </tablerow>
-       </records>
-       <files type="array">
-               <file index="66a2b7534be9ebf810cd55164c5f085d" type="array">
-                       <filename>typo3_image4.jpg</filename>
-                       <filemtime>1393866824</filemtime>
-                       <relFileRef>uploads/tx_impexpgroupfiles/typo3_image4.jpg</relFileRef>
-                       <record_ref>tx_impexpgroupfiles_item:1/images</record_ref>
-                       <content base64="1">
-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
-bum/HHoj7VbS/qPUTat1yjHHkSpXcl8VZpcorUdVPb3V/lnBd5XddMnwv07D151nm6cm+mL5ryzf
-nk4Rcu8dzLFnT92KXXFr2t/p+KMZpzVW07TvzuTldp9VrlNvUU79PpTe2yLmxuOFzUK22TVfuZrJ
-HDU5Rc+rjwmvP9TKWraVq3N8t8L8Itjjfguvloz4Xi0M47dS9ylf3I4sDShKK233R1zySybTk2nz
-8nDjdTbfdlrjcZ26vxMpc+mTjbafBsMMmytGSkZvRx6umXqVB43Lpi938mjPc4UlSXfuYau1CLXZ
-mGOU5e3my0jj5+TKZeGLp0zUPbbal/k6DVh0/pU3Pqa42Np1YSydvL5cpb0EpP7lZQXs2zlsu449
-RF4cs01cmvZXBobtL57HpSdR6n+lbfBojjV9TVt9zmzni7+DjvP20R6kqlzVGWBb14ZNQ0si3q0Y
-6eT9yvZ870Ze3XuYZSV2fBslJzUW2nsla+DQ76qava7N+LInpvSUY1GVqS+expxdVh+blMpJPhiC
-g6nloCgCAoAgKKtgQGUoyg6kmn4ZiAAAEBQBAUgAAAZgFJVQFAEBQBAUBKFtRabk1XZAyhFStNX4
-RnyTeNWw/puyTjLH0yjN7cpU0acE4QXqNN3s21v4M4427U16a7X/APv+RigvcvUUk+V2RxOlax45
-rJj2jL7klt+TOU1t3vhBN449MY9T7JFjDpu3cny1/ggY50nC1scx05fsa+TnOzh/lhyew4Mk16sm
-tk2d55+qxrFN1w90OWdN/wAXLVrbjyJrpkVxcXa4OPGr5bOic5RS36uxz2PQw/JlnbdJRa91V8mK
-njivY0+3tNM+qeFpfvXc6tDjwegpSg0097lV7duxPirn+V/1jZBycE5Kn4Mish1zqPJztyytoACV
-WGT/AG38swVnoYPp09RFTnL08fN1uzp1mjw4dJKWCG6fub3dfucvL3Xqfi8uPHhq+6+d1mKbljfR
-Lpa5o6dFoHlyJKLaT3lXCPY+mzcsUovlPh7nS4Y+hwUVBS39qoy8k5Z7tuu3z+t1HWp6eGOMIQk1
-t3p8/wBjHS2oyT5+D0830jE3/DySj+dzmh9Py4XJ+2d+Ga4ZTblzlsawZyxzh90HH8oxOpyaQhkA
-IDdg02XUSrHG13b4R6Wn0Wn08l6s4zyvhSdL+hXLORbHC15+HR5Mq6muiHl9/wAHXj00MNUt33fJ
-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
-</content>
-                       <content_md5>e1c5c4e1e34e19e2facb438752e06c3f</content_md5>
-               </file>
-       </files>
-       <files_fal type="array">
-               <file index="23116a2a95820388bb7eede903382d4c" type="array">
-                       <filename>typo3_image5.jpg</filename>
-                       <filemtime>1393432183</filemtime>
-                       <content base64="1">
-/9j/4AAQSkZJRgABAQEAZABkAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz
-ODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2Nj
-Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCADIASwDASIA
-AhEBAxEB/8QAGgAAAgMBAQAAAAAAAAAAAAAAAAIDBAUBBv/EADcQAAEEAQIEBAQEBgMAAwAAAAEA
-AgMRBBIhBTFBURMiYXEUMoGRBlKhsSNCwdHh8BUz8UNigv/EABoBAQEBAQEBAQAAAAAAAAAAAAAB
-AgMEBQb/xAAnEQACAgMAAgAGAgMAAAAAAAAAAQIRAxIhBDEFEyJBUWEysSPB8P/aAAwDAQACEQMR
-AD8Ax6XaTUuUvceA5SKTUikBykUmpCAWkUmpFIBaRSakUgFpFJqRSoFpFJqRSA5SKXaRSAWl2l2k
-UgOUil2kUgOUil2l2kAtIpNS5SA5S5SakUgFpFJqRSAWl2l2kUhBaRSakUgFpFJqRSAWkUmpFIBa
-XKT0uUgO0ik1IpQHKRS7S7SAWkUmpFIBaRSakUgOUik1IpCi0ik1IpCC0ik1IpALSKTUikKLSiyZ
-48aLXJ9B3KnpVsvCblNNk6gPIOgKkrrhY1fTuNkxZMYcxwvq29wpqWNFjTYkmsGnj02V8Zzi3UWt
-o+64LOvUj3PwMjVxLVJuI4hi4fDkxzu8R5NsG1dlVOWRtoBvsVqcOzsYYBZK1w8M0RQOoqSzJ+iP
-w8mL+aM/HkMsQc4U7kVJSpS8ZByZGmDyh1NLaG3r6qeLMhkaCTovuukcsfuzi/GyO3FWiakUutLX
-i2ODh6G12l1s87TXGLSKTUilSC0ik1IpALSKTEAc0UsqSbpM04tdaFpFJqRS0ZEpFJqRSAWkUmpF
-IDtIpNSKUBykUmpFIBaRSakUhRaRSal2kAtIpNSKQC0ik1IpALSKTUikAtIpNSKQC0ik1IpAI9jZ
-G09oIVOfCO5iFt7Xur9LtLnPHGfs9GDycmH+L5+DMZG1w2O+3NROx5vMWyUTQu62+is5H8PKIOwd
-uEjztsV8+ScXR+qh8vyMSkZwxy11Or6FTx4r/D8Q34ZBp3OiuPPmFj7LYxm6caMVzbde66Yobtnz
-fJyrx0mlfTzjTPBJcbj7jqvQwF74GOkFOI3TiCIO1CNoPsuTyujLGsjMkj/lbdL1Qjp1s+TlyRyJ
-RghqRSr4ea3Kc9mnS9m5F3atUuqaatHmaadMWkUnpGlUg8mayJgjhx9TyADI800E/usvHyjCXMyX
-AizpcAbdv27KfPeY4W+GQJSaZapwY72QePN8+1CuQ5r58/8AHJpM+phiskE3E0Y3CVgcGubfRwoh
-NSpNeXtEjTTuYKuxuEkbXjrz916MGbfj9nn8rxvlfUvTCkUmpFL0HjEpFJ6XKQh2l2k1IpQotIpN
-SKQC0ik9IpALSKTUikAtIpNSKQC0ik1IpALSKT0ikAlIpNS7SASkUnpFIBKRSekUgKfEWascOrdp
-59lTiHl829dVpZm2HKaum2vPDN0Nc17KP7rx54/VaPufDvIhDHUmTTuFuNgLchcJIY3t5OaCvJPy
-JHdaHYL0fBXGThjLFFpI991rAqZ5vOyxy019i5So8Tgme+OWInygggGldllbEK5u7dlUfK95J1kE
-ciOiubKktV7N+F8OyZKyS4v7KPDYvh84SOGu7GgHmOpCvcT4g3EcfBDXg8i6xd79t0zI3HwnxFjX
-VUhJILiORu1n52C7w3ymXU1gJ0n/AH0WFNpWjnkwvZqS6i3HlnJx2vcQ0kcm8rXGZDmjZ5Hpap4B
-Bg0tOwpdOGzI1j4nwSOV8nLg23L2fajpDx4tQT56NPADeJZXhSHzNFxkfmG/7WnyIZYdUUrwyuZr
-osjGxOIcPyGTxBsgBBtrlq8TzBxLYY5jEAD3lzqcL6DupPHseCOdRdpUvwZ8rWY0pbCXFrhZHOlP
-w6W53xm/MNW/dVpIcaMeM06mtAo3zPspuF1k5PisGlkXMHqSFrBeyoz5TXymmadIpPSKX0j4glIp
-NSKQHaRSekUoBKXaTUikAtIpNS7SASkUnpFIBKXaTUikKLSKTUu0hBKRSekUhRKRSekUgEpFJ6RS
-ASkUnpFICN8YexzHcnAg/VeRzYnRyEOFFpLSvZUvOccZWZJ6gH9FyyrlnbC+0Z+OwBhcdyr+DxAw
-YMkcZAlEhc297BpQsjA4dC+jbnPBP2/yq0cXiTgAHS024+i49R6OP2az8p04BY0uJGonspizQw6n
-MBJqtQv7Ky7Ggw+HzOaS/U35gOfb6KjC5nhgirK4zhr7PveJ5Dzt0+L/ALgSOAbRfpPQ0qmRJKQ4
-CQujft6KTIcNR7BWDEx3BWPLgCXucP2/opFWY8qSclH8lWFzY2itr2IXHylhIewtIVj8Ox+JPkSv
-FhgAaCLon/xWOPQRx4wyNJ1XoNetldPlOtjxLzkpaIyo+IzRA+C9w9On2VZ+TKXlxcdTjuOhHZAH
-kukuOzxcqNlHdwCqVHlyTcnZdlxHYZDpAHDXtR2pbHCDrgkcI9LS/Y99lHlDxZAygQdqK1WsaxoY
-wU1ooALriXbPPmfKEpFJ6RS9B5RKRSekUgO0ik9IpZstCUik9IpLFCUu0npFJYoSkUnpFJYoSl2k
-9IpLFCUik9IpLFCUik9IpLFCUilJpRSlloSkUnpGlLFCUjSn0opLFEdLF/EMbAYX15iCD7D/ANW9
-pWZx+LVgB9WWO59gf9CzPqN4+SK/ARHkcNfBKxrhHJyPrv8A3V2bBjOl0MLBWxAAbY91j/h2bw+I
-OhJ8sreXqN/2tem0qKnGmalcZcKWZC53DHxAAuDRy9CFgRSujIje0Ft/UL1jgPDcXHajfsvNZL4m
-vI8O3VzXDP7R9b4bekpXVP8AsGRxSuLqLgD9FL4Bfw6Z7aEbZg0CutKWeFmDYB/hkamEb2D/AJtS
-tLRwEQtIdJPOC1vuK/ouKTTo92aeOWOEn9x+Bw+Hw4OIp0ji4/t/RLx9hPDxQsCQE/YrUjiEUTI2
-/KxoaPoo82MPwp2uBI8M7D2Xur6aPzV/XZ4sHyEHmkx8gwZLJeek3S7Ma3pRUDuuB6T0uPUmbDZ5
-mwR91sELyPDckslY1xJ0uDmr2RbuuuP0cMq6R0ik+lFLpZxoTSik9IpLFHaRpU3hP0h2h1Hka5od
-DI1upzCB3WNjerIdKNKkpGlWyUR6V3SnpGlSxQmlGlSaUaUsUR6V3SpNKNKWKI9KNKk0o0pYoj0o
-0qTSu6UstEelGlSaUaUsUR6UaVLpRpSxRFpRpUulc0pYoj0qDOxzk4UsLfmcNvdXAwk0ASfRBY5p
-pwIPYhSypV08Vj48uHxmBsjac2QDuCvY6d1mythm4lBGyHTMyUve7rQ7++y1qWYs3PtEL2amObV2
-KpeYy4QWRyN+Zx0lpK9W7ytc7sLWHiYXiytlmBETdwPzH+y5ZmlTPo+C6xTt/j/Y3EeGkyWx1QRM
-a2if2/T7qjwyKJnFXy5DmRsbuxgJIB6LdnIGJKDZc7kDzPVZT8fVZaAT1pco5OtmJpyiot+jba+N
-/wAsjCavYp9K80+N0VhriAeYBQ3ImicPDLgL6Fd1lPK8H7JvxBw5kWF4kEcbWh1kcj9F5qJr3vEb
-GlznHYAWSvV/iTAjLopmzESvjGqM3/fYLGHDs3h8kOS1rfM2279Clp+ipNLog4fLiyj4gBr6sNsW
-Pde0AsA+i8e0B2YDLrbGCLFb0vURcSwpBTZw2tqeKW4ujnNWWKRSZrmPPkcHbXsbTaVuznRHSKT6
-UaUslE3EMrXpZJOG07YCj9yFYxJmTx6nDSxo325lUxiGNnxGWC0ONUP8Jw4tYAYXNL/k1db5mvb9
-1x5R6C89mC6B0zqDGbktO/tssxp8QFwjextkDUFcayeHHAx2EukNNGwvuVE98oJxy0h4vVpNn13R
-OiONkVIpDp44pGxuiLnHYU7r/jZTRNx5HhgyGX6mlrYzqRUil18mOwuuQkA00AWXK9gY0ORGHu3v
-fnVDomw1KNIpbL+HwuLL1Bo6NHNT4+OMVrnuIA6Nb2/qVNi6GC2J7tmscfYKdvDspw/6iPcgLXlz
-omtOhzXkdAf0VFvFrZK4gANdpu6rZNmNEQ/8XlfkaP8A9BK7h2S3/wCO/YhSM4qxzHTOnfGCSGMI
-vboVE/iUkjbGRp9m/wBd1NmXVEPhSb3FIK5207JaV6B2TnNBje9rGkNLmuIP0/uVazJYGAMbG2V+
-rSRzIH72rsTQx6QGk8gtYYDHR65WeED2NkbrNiwzxDNmEEskeNG7SHXYcfT9U2GhHICxtgsebotD
-vNft1TRQyzAaIn2eQIpW2/hoNfrbluB6eT9991sYmN8PFoLy83dkAfspsXVEGDhMxmB7mkSHnuvP
-8TyZhxV7vD1RuOkA78uq9PmRMlhLJGl0fUAE39liZ2McfNDgGCN4HMEV0H9vqoUrSsh1ufEwl1bc
-r+6hjk1F2ptBu1g3urDh4MlvdsORPXsqWRlQ4jS6V4NWQ0dV5XmyLh6lhxvo8s0ZcYNTmvdGXAgc
-hytVJZZhNGCGiJo87xu53Pp9k2BDJLI7OnBBkFRtIqm9/rsppi0Ciuyba+o58XI+jJyM6ZkkznQl
-7QfIbouHt0T8PkPEYnuYGsc00WvNH3CmlANjZUHRB7iG0KFlNYjaRZnwc0An4cvrs4FUHR5EWRGc
-jHkbGXAeYVforuNjTTytiwy8Sn8rivT4X4Rb5ZOJZk2S8bhmrytP15qxSatEk2uMzsTh7M3MMuRG
-6djWlo3oOPf/AH0WhN+G48loAyWiFjgWtDdwO13y3V/JbJDIzH4exgABLxVnp/v0TMblRQkvxzfU
-Mo3/AGVM2ZeRwHFZjkP0+O4nwnaqC8fxJpx5H48jiS0kcgaIXuMpz4IWSvx/DGqqPRYPFOGxcQc6
-eMaZTu8d/VVcHs84yZscZ0Pde3Mcvqpo+J5TTQnf05u/upH8L0agH0TXNtKB3DJnNNC+uxU2RrVm
-hFxbPaAXR+ID10WPuFKOPurzQNvr5qWVCM7DY58etrB8zTyI9ldbnwStD5YGPeRuXc1dn9jOi/B7
-2IPeQNtI9VFxKR5aY4mF+lpJocz0Uc+eGSGKANcQac67DVFLkyudoY7U5xAB6BDIjMqcStc6GRoa
-PKC4AX3O6ePKjMbg8tDi0lxHK7/8XJoNbac4bG7P83oqTh/G1fOW9DzB9f0VBbkZj5Ebg52kPoag
-Nz6KU8NxBA6OIkyu+aR3Mf0CqwAxgBzdZBs9gp5ScbCc98lOkIGkdzz/AEUBXPD8fWGMm102wDtf
-+FowyuhgawvjbZB8m+yx2NErw0fzm3776R0TS5YbLJI1wGolra6BUGxHnRSSuY9xBHInYnf/AH7K
-1K9s8Ok3oI7815Rkz3uFWCSLJ6dAFpScSLWiCJuqQ9b5b8ylCzQ+FgOzWBoqqGyifgYor+E0dqUu
-E9szQ5tm27kn1KaQFjwGhzy4/ZQpXHCsR7tT4ySf/sQrTMHGY3ywsob1VqRrfunBIQHWxMYCQ1re
-5ApMyFsbi5rQCeZAUb8pmO3XK4Nb3KjHGMVwJGogdQ27QFp3naWGiDsQkhhbjxhkTAxo5ABV8bIi
-fLq+IYS/5Wh23/qnzMs4rWEMD9Roi6QEwe4dEjpWtfZJ2HLoo8XPgzA4RkhzfmaRuE0rGWSaNowd
-OZG1hcdVDs0qhxLJjyGNaxri9pB3FbFU8mQgubE47c+tqF0pBD5JSNqcKAB91nYtE/zM0y+U+qpZ
-OPw/HZ8TJjxmVp8u3M+yuY2Xw3QXTOAvlYJsfqouJxYs8HjQtqF2wDRRLr5AKOXOFUe9M34zKyo3
-vjjaGixqJ6rAmzcxkzmSONjpppepiiEcTWA6KHys5ffqpRUr78NkhI5+HZKzGafEblFx6zzMMJyG
-B2p7i787iA36BX8fhbWTwaXmTxxu2iKK9HPwTHOKZHnwnOb5i0VVqKCTHwpNe87wLaQ2tK1JtP8A
-RmKTX7NbhfCsfAt0bf4jgA5y0VU4dmjNjc5rC3SaPa1cXRdXDDEYwMBoCybKZJI8NNWgyNawuc4A
-DmShDO/EJH/HFpqydl5Z0x2qxW3NafGcz4mW4/M1vIHksqTGfI8eMTG270N2tYc1H2dIwbOyFkzb
-Ip/L0Krux231BVsYjG07zkEna+iinMEb2xl72tI21b0f6opxkHCUTPeJGAF2pzSau6C7qjbs6Bv1
-arTJsdpMUg1VZBa6r/RIH49DTNQ7OoEfojjFhbGwxgaxzS2tQ3U0AcHl/wDOBQ7JXkHpskjk8N99
-Fs5nX4r5JS50jgQ35t+f35KrjRuExGqi3zOeOq0J5tURDLFjsq7YwcYxMBL3vBJ9B0SwaGMBpfte
-+59VK5jXsaXC9Jse6giDoIQHdTqK6+e4yG3fooUhMUbxIyg13LUBuqzeHRRFgMhe55IApMWDVqNk
-l1fRaOLEyN4eTyFbm67q3RCvlcG04rZMf/tbvp/MSfVZb4ZIZyz/ALZHG3ad7/uvSy68hzGNoRDd
-xs37BPiRGBg8R2pyJiitwvBy4YGGZzGEm3NDd66C/RaHww16i412G33KbxVwyHuoUG4sTZhLb9Q6
-F5r7ck5ZGX69ILu9f73Kj1WmsAEkqghzBA+EiYN0DvsvPBrIpLheCy7bW1rYyM6EuLWG3cr7b0sE
-zNnlcCDY6nfTy/x90RGSvia4GxYJ+yYyzFjGPkc9rOWo2m3aQHbJZYyNO+xPNUhw6g9kkWprgfmv
-lsrTsuQQu8VziBvYNFV21TmuB36joe6WGKd02rIki8JvyBp3ce59lympbcOsHHXpHPBI83DlPaT0
-e0Gv0VJ0WfDIHSOZPGNiAAD7rYe+FjbMjQ0GrJTY8MmWNWOzWz83Jv3U/QXOma4UGUBXIrmPM6TI
-bjPd5ILc0dbI/wAn7LePBpJWEzPaCejRyUOF+HBHmDJkyBIBzZoq+fM36rmscrZ1+ZGkLi4D80Ei
-QNaDRPULYw8CPDhaxm9CrPM+6eLHZjl3gt06uYHJR5fxnhjwQ0uvffousIKKOU5ubMbjM0wyHxh4
-8L052s1rS4tZGHOd2G5K3Y+DPyJTLlPLQXEmNvP7rSixIMdhbDG1g6qSx7MqmolPgkeTHC85FtaT
-5IyNx3P1VrPzmYcBeRbjs1vcqc00KnxHF+Kh8rQZG/KT0W6ajSMWnK2YU2dku1SOlNncAbAKZr58
-kFmouaDyVeWJ0EzGZDSCXAUf5lt4+M6FvLmbtc4W/Z0nS9GFkYz9LmaC01sQOSjlklghJy4z4IBI
-f1HovTANBWVx+Jr2Bzh5ACCb6dkyJVYxt3RmnJh0N3aSBzdsFTzPCycWQ2x7mDYNdzUNgYUbSCSG
-AVXJY8PDH5mcXPZpiabOra1I46dmnPhLMHsALrAA29QlY3xgX6Hv3qwLUudGzGmDebSL37pYtm+Q
-uYCbpriP2W/RLs9ht2KPorww2nm5cmx44IXyuJIY0uI9ls4FJMATyBPstHHjxpImSx05rhYKn0tH
-ytCFoyxHM/8AkcfcKRuLKebaU+bxCLBa0yk+bkGjdGNxKDJjdIyQhreZcK+iAidA2MEvkAoWduS5
-qxWML3ZALWi9lSzcxofI1socHm5HgWAByA/3uqQlb4YELgwbl1jd3rfsgNSHjjDI5jMeTw2gUarc
-8hSsRcSM+trGASNbq06rv027Lz0cw+FLWxgkEnxCdz0UeHnPxpYwGghjy4uvc3zC0lZLNYfiItoP
-xxd7+borcXGopXhpjczV8p7+iwM6PTkOlbTopDqaf6LsDDlTY2Ow6gXEHoR1KtIls3JuKZDJjG2J
-ra38xux6KnJxGV7i1x8R2rSBqoJc92mEBzT48Z0/XuooXM8cuIAcDTgP6KULOySNpxFtdp5nvex/
-VdhEcPC3Pid53ci4buN/0Vadskrzd2dgOo2Co8QcY5WsaSWNbQs8lG6KlZp488kup8z2Oj5bmla1
-E4skkb7bpJb7rEwWfEP8SS/BafNX8x7L0MEBz4ZWQMIjrSSdhv0C5ylfEdIxrrPNjjk5cA3QSOtK
-zwzI4jxPNbDAGubfndo2YO5W7i/hLDipz2tJ6gjV+/8AZbOBgwYMJjhaACbJAAv7Kqw3GuGLLwqS
-STwnBjyfqt/DhGPixQt5RtDeal2HIJWkh1dFpKjFknMKO6KZxoe6j0XNfpZCpCRtjmuudQ2RYuuq
-jmIogHc7ICVRveGEA9U7D5Qh7Q4boCLT4rCHHmpQ0AJB5V3WEB18TH1raHUbFhceQAuh9jdcJCAp
-ui1SEi/vskkiDmlsjQ4HYg7hXtQVSZ48ago0WyjNwuCbetBqhp2H2VGbgUg3hlafRwpbYHdOFKLZ
-4ninBsqSEsljIAN6huq+PwaYxDS17x3C985ocqxAaSKVZDuTlQ4zQZHAWaCoScRjczUQQ14AAdW4
-PZQY/wAKwGaaVuVM7fS07N+5WPxTiBnyWeHAYjBVbivp9lUrIzZx+M42FLJjuiIia/SwxiwO/wDo
-TT8Zky5vBwC1o/Oas+1rzUDJZAWta53Vxr+q6CXO1RO+R36reqM7MvzMklm15Uz6JI1OHKr2/wDE
-TZIeI2ta4Rs2ZY29T6la3DGw5mC0ZPmMTvMLoE9P3UWRw2GSdwx2CgbeS6hXYfQrBoqxvxJIpGAl
-r3NBJI2Fc1Tka4M7NI5pp4mMkLQQ5nUtGx9ApPEYZDraGNsAtQER1jEDtNMAI1fmKqAGyNttloZc
-kZJ0jYgBrQfRV9LXkB76e53mIHILcWZkuDQQTTVoFtG5+nNNjyfC5DZ2gnT681q48BZM3S0tjB0t
-H5u5/RV87HBL3QgAs5tP8ze6bW+k1osTTiWBhp3ivkDWeX1sm+o3WbN5Mp2sFnWx07KXFkcZ4g06
-S3Zp7+nvsAmzHOGU0HS55q2joe2yi4zXsfRKWUd6GlQR8GyOIZJcI6iAoOf0Ht1W7wrhj2OM2QAN
-W7WDpt1C0RJBjytx2kB7wSGjnS5Vbs3dGbFwCCHGbFE9w0/zH9dlp42OzHgEbdmtU3siyRQWlFLq
-DbY/Slwt5UV0B3UoAtUycAKYgDdK5vmabKatigAEEJCadzFlMHV0VfKazyyc3MN1aAkew6/EYdwO
-XdZ/EZJy+Nsbae8Vp+qvjUd28j07IfD4oYQ4tc03YQC45eyMCU24dVZBsKs8OA1OokBdjLGx0zau
-iAnc3UFXlgkc3yP0HvVrnxDr51XRdL3OINkDsgOgGgmcKbacEEJi0FtICmZC7kl0g7nmne3Q6q+q
-V1Vz3QoosCuaYLgvVR5JwEA4aNJKpNAeCT3Kvx0diqboi17gdtzSgMMYmGGaN36qIDbIvodlJFjY
-UTw0s3I28TzfohCECXImgDjj48crHUHNDgxxPe1G+HFmLT8K8F+x0DkfWihCAgl4TDrcyKR7dQ5G
-6CP+JndHpjyHD0e86f0QhARDg+QSA5/LbUHWB9DX7p5OFT00RtaKrUS8gH6BCEBIOEzGNwf4DD+Y
-aif1KhGPMxxija1zm8yQ+j7jkhChSaDhma55tkILt7cbr6Ut6DAx4YmtLQ9wG5chCoIJuGYszgAz
-wzzthpNicLGPlsm8bU1o+XT9kIUoWWuJZcuPj6oInyyOOljWi6Pc+iXhuE6FviznXkv3e4716D0Q
-hUhoDshzfJTTXqhCoOM1DmbKcIQgOXdgikOcRy5IQgEL6Gyq5zJZ4gIQNQPetkIQE8RIYRWwHNSx
-bMCEIAkYHsNKs9prb6oQgFDCOlqURkDr9UIQAHFhIdsutn2FirQhCiyvbJGa5qs0n3QhANqTB1IQ
-oDglIOy49+o2eaEKg//Z
-</content>
-                       <content_sha1>c3511df85d21bc578faf71c6a19eeb3ff44af370</content_sha1>
-               </file>
-       </files_fal>
-</T3RecordDocument>
index 94d13ac..4a231bc 100644 (file)
                                        <type>flex</type>
                                        <flexform index="flexFormRels" type="array">
                                                <db_relations index="db" type="array"/>
-                                               <file_relations index="file" type="array"/>
                                                <softref_relations index="softrefs" type="array"/>
                                        </flexform>
                                </field>
index e552b36..828dcb9 100644 (file)
                                        <type>flex</type>
                                        <flexform index="flexFormRels" type="array">
                                                <db_relations index="db" type="array"></db_relations>
-                                               <file_relations index="file" type="array"></file_relations>
                                                <softref_relations index="softrefs" type="array"></softref_relations>
                                        </flexform>
                                </field>
index 2e2d34f..7c63f67 100644 (file)
                                        <type>flex</type>
                                        <flexform index="flexFormRels" type="array">
                                                <db_relations index="db" type="array"></db_relations>
-                                               <file_relations index="file" type="array"></file_relations>
                                                <softref_relations index="softrefs" type="array"></softref_relations>
                                        </flexform>
                                </field>
diff --git a/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/impexp-group-file-and-file_reference-item-but-images-not-included.xml b/typo3/sysext/impexp/Tests/Functional/Fixtures/XmlImports/impexp-group-file-and-file_reference-item-but-images-not-included.xml
deleted file mode 100644 (file)
index 3d7c89a..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<T3RecordDocument>
-       <header type="array">
-               <records type="array">
-                       <table index="pages" type="array">
-                               <rec index="1" type="array">
-                                       <uid>1</uid>
-                                       <pid>0</pid>
-                                       <title>Root</title>
-                                       <relations index="rels" type="array"></relations>
-                                       <softrefs type="array"></softrefs>
-                               </rec>
-                       </table>
-                       <table index="tx_impexpgroupfiles_item" type="array">
-                               <rec index="1" type="array">
-                                       <uid>1</uid>
-                                       <pid>1</pid>
-                                       <title>Test item</title>
-                                       <relations index="rels" type="array">
-                                               <element index="sys_file:3" type="array">
-                                                       <table>sys_file</table>
-                                                       <id>3</id>
-                                               </element>
-                                       </relations>
-                                       <softrefs type="array"></softrefs>
-                                       <filerefs type="array">
-                                               <file index="0">66a2b7534be9ebf810cd55164c5f085d</file>
-                                       </filerefs>
-                               </rec>
-                       </table>
-                       <table index="sys_file" type="array">
-                               <rec index="3" type="array">
-                                       <uid>3</uid>
-                                       <pid>0</pid>
-                                       <title>typo3_image5.jpg</title>
-                                       <relationLevel>1</relationLevel>
-                                       <relations index="rels" type="array">
-                                               <element index="sys_file_storage:1" type="array">
-                                                       <id>1</id>
-                                                       <table>sys_file_storage</table>
-                                               </element>
-                                       </relations>
-                                       <softrefs type="array"></softrefs>
-                               </rec>
-                       </table>
-                       <table index="sys_file_storage" type="array">
-                               <rec index="1" type="array">
-                                       <uid>1</uid>
-                                       <pid>0</pid>
-                                       <title>fileadmin/ (auto-created)</title>
-                                       <relationLevel>2</relationLevel>
-                                       <relations index="rels" type="array"></relations>
-                                       <softrefs type="array"></softrefs>
-                               </rec>
-                       </table>
-               </records>
-               <pid_lookup type="array">
-                       <page_contents index="0" type="array">
-                               <table index="pages" type="array">
-                                       <item index="1">1</item>
-                               </table>
-                               <table index="sys_file" type="array">
-                                       <item index="3">1</item>
-                               </table>
-                               <table index="sys_file_storage" type="array">
-                                       <item index="1">1</item>
-                               </table>
-                       </page_contents>
-                       <page_contents index="1" type="array">
-                               <table index="tx_impexpgroupfiles_item" type="array">
-                                       <item index="1">1</item>
-                               </table>
-                       </page_contents>
-               </pid_lookup>
-               <pagetree type="array">
-                       <node index="1" type="array">
-                               <uid>1</uid>
-                       </node>
-               </pagetree>
-               <files type="array">
-                       <file index="66a2b7534be9ebf810cd55164c5f085d" type="array">
-                               <filename>typo3_image4.jpg</filename>
-                               <filemtime>1393866824</filemtime>
-                               <relFileRef>uploads/tx_impexpgroupfiles/typo3_image4.jpg</relFileRef>
-                               <record_ref>tx_impexpgroupfiles_item:1/images</record_ref>
-                       </file>
-               </files>
-               <files_fal type="array">
-                       <file index="23116a2a95820388bb7eede903382d4c" type="array">
-                               <filename>typo3_image5.jpg</filename>
-                               <filemtime>1393432183</filemtime>
-                       </file>
-               </files_fal>
-       </header>
-       <records type="array">
-               <tablerow index="pages:1" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">1</field>
-                               <field index="pid">0</field>
-                               <field index="deleted">0</field>
-                               <field index="perms_everybody">15</field>
-                               <field index="hidden">0</field>
-                               <field index="title">Root</field>
-                               <field index="doktype">1</field>
-                       </fieldlist>
-                       <related index="rels" type="array"></related>
-               </tablerow>
-               <tablerow index="tx_impexpgroupfiles_item:1" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">1</field>
-                               <field index="pid">1</field>
-                               <field index="deleted">0</field>
-                               <field index="hidden">0</field>
-                               <field index="title">Test item</field>
-                               <field index="images">typo3_image4.jpg</field>
-                               <field index="image_references">fileadmin/user_upload/typo3_image5.jpg</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="images" type="array">
-                                       <type>file</type>
-                                       <filerefs index="newValueFiles" type="array">
-                                               <file index="0" type="array">
-                                                       <filename>typo3_image4.jpg</filename>
-                                                       <ID>66a2b7534be9ebf810cd55164c5f085d</ID>
-                                               </file>
-                                       </filerefs>
-                               </field>
-                               <field index="image_references" type="array">
-                                       <type>db</type>
-                                       <relations index="itemArray" type="array">
-                                               <element index="0" type="array">
-                                                       <table>sys_file</table>
-                                                       <id>3</id>
-                                               </element>
-                                       </relations>
-                               </field>
-                       </related>
-               </tablerow>
-               <tablerow index="sys_file:3" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">3</field>
-                               <field index="pid">0</field>
-                               <field index="storage">1</field>
-                               <field index="type">2</field>
-                               <field index="metadata">0</field>
-                               <field index="identifier">/user_upload/typo3_image5.jpg</field>
-                               <field index="identifier_hash">8180e85d25c96697ec9d2004683216831b91ffc1</field>
-                               <field index="folder_hash">19669f1e02c2f16705ec7587044c66443be70725</field>
-                               <field index="extension">jpg</field>
-                               <field index="mime_type">image/jpeg</field>
-                               <field index="name">typo3_image5.jpg</field>
-                               <field index="sha1">c3511df85d21bc578faf71c6a19eeb3ff44af370</field>
-                               <field index="size">7425</field>
-                               <field index="creation_date">1393432184</field>
-                               <field index="modification_date">1393432183</field>
-                       </fieldlist>
-                       <related index="rels" type="array">
-                               <field index="storage" type="array">
-                                       <type>db</type>
-                                       <relations index="itemArray" type="array">
-                                               <element index="0" type="array">
-                                                       <id>1</id>
-                                                       <table>sys_file_storage</table>
-                                               </element>
-                                       </relations>
-                               </field>
-                       </related>
-               </tablerow>
-               <tablerow index="sys_file_storage:1" type="array">
-                       <fieldlist index="data" type="array">
-                               <field index="uid">1</field>
-                               <field index="pid">0</field>
-                               <field index="name">fileadmin/ (auto-created)</field>
-                               <field index="description" type="NULL"></field>
-                               <field index="driver">Local</field>
-                               <field index="configuration">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; standalone=&quot;yes&quot; ?&gt;
-&lt;T3FlexForms&gt;
-       &lt;data&gt;
-               &lt;sheet index=&quot;sDEF&quot;&gt;
-                       &lt;language index=&quot;lDEF&quot;&gt;
-                               &lt;field index=&quot;basePath&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;fileadmin/&lt;/value&gt;
-                               &lt;/field&gt;
-                               &lt;field index=&quot;pathType&quot;&gt;
-                                       &lt;value index=&quot;vDEF&quot;&gt;relative&lt;/value&gt;
-                               &lt;/field&gt;
-                               &lt;field index=&quot;caseSensitive&quot;&gt;
-                                  &