From 042ba22758e75996496566c7a3462107c06e69b2 Mon Sep 17 00:00:00 2001
From: Oliver Bartsch <bo@cedev.de>
Date: Wed, 23 Sep 2020 18:32:56 +0200
Subject: [PATCH] [!!!][TASK] Remove deprecated EXT:form constants and
 functions

This change removes following public class constants:

* EmailFinisher::FORMAT_PLAINTEXT
* EmailFinisher::FORMAT_HTML

Following internal functions are removed:

* FormEditorController::migrateTranslationFileOptions()
* FormEditorController::migrateEmailFormatOption()

There were also some deprecated internal functions which
got already removed / changed in #90728.

Resolves: #92389
Releases: master
Change-Id: I241f363d03d9e58bb5e4788a7c1c7262f962f585
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65842
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
---
 ...g-91473-DeprecatedFunctionalityRemoved.rst |  2 +
 .../Controller/FormEditorController.php       | 78 -------------------
 .../Domain/Finishers/EmailFinisher.php        |  3 -
 .../Php/ClassConstantMatcher.php              |  2 +
 4 files changed, 4 insertions(+), 81 deletions(-)

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst
index 34406b8adefe..e9c0279eaf97 100644
--- a/typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst
+++ b/typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst
@@ -236,6 +236,8 @@ The following class constants have been dropped:
 - :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_SanitizeFileName`
 - :php:`\TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PreFileProcess`
 - :php:`\TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PostFileProcess`
+- :php:`\TYPO3\CMS\Form\Domain\Finishers\EmailFinisher::FORMAT_PLAINTEXT`
+- :php:`\TYPO3\CMS\Form\Domain\Finishers\EmailFinisher::FORMAT_HTML`
 - :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_BeforeCaching`
 - :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_PostProcesss`
 - :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GetDataArray_PostProcesss`
diff --git a/typo3/sysext/form/Classes/Controller/FormEditorController.php b/typo3/sysext/form/Classes/Controller/FormEditorController.php
index d56a8c22df5a..3533226fe7ca 100644
--- a/typo3/sysext/form/Classes/Controller/FormEditorController.php
+++ b/typo3/sysext/form/Classes/Controller/FormEditorController.php
@@ -27,17 +27,13 @@ use TYPO3\CMS\Core\Page\PageRenderer;
 use TYPO3\CMS\Core\Site\Entity\Site;
 use TYPO3\CMS\Core\Site\Entity\SiteLanguage;
 use TYPO3\CMS\Core\Utility\ArrayUtility;
-use TYPO3\CMS\Core\Utility\Exception\MissingArrayPathException;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Mvc\View\JsonView;
 use TYPO3\CMS\Fluid\View\TemplateView;
-use TYPO3\CMS\Form\Domain\Configuration\ArrayProcessing\ArrayProcessing;
-use TYPO3\CMS\Form\Domain\Configuration\ArrayProcessing\ArrayProcessor;
 use TYPO3\CMS\Form\Domain\Configuration\ConfigurationService;
 use TYPO3\CMS\Form\Domain\Configuration\FormDefinitionConversionService;
 use TYPO3\CMS\Form\Domain\Exception\RenderingException;
 use TYPO3\CMS\Form\Domain\Factory\ArrayFormFactory;
-use TYPO3\CMS\Form\Domain\Finishers\EmailFinisher;
 use TYPO3\CMS\Form\Exception;
 use TYPO3\CMS\Form\Mvc\Persistence\Exception\PersistenceManagerException;
 use TYPO3\CMS\Form\Service\TranslationService;
@@ -502,9 +498,7 @@ class FormEditorController extends AbstractBackendController
         }
 
         $formDefinition = $this->filterEmptyArrays($formDefinition);
-        $formDefinition = $this->migrateTranslationFileOptions($formDefinition);
         $formDefinition = $this->migrateEmailFinisherRecipients($formDefinition);
-        $formDefinition = $this->migrateEmailFormatOption($formDefinition);
 
         // @todo: replace with rte parsing
         $formDefinition = ArrayUtility::stripTagsFromValuesRecursive($formDefinition);
@@ -635,51 +629,6 @@ class FormEditorController extends AbstractBackendController
         return $array;
     }
 
-    /**
-     * Migrate singular "translationFile" options to plural "translationFiles"
-     *
-     * @param array $formDefinition
-     * @return array
-     * @deprecated since v10 and will be removed in TYPO3 v11
-     */
-    protected function migrateTranslationFileOptions(array $formDefinition): array
-    {
-        GeneralUtility::makeInstance(ArrayProcessor::class, $formDefinition)->forEach(
-            GeneralUtility::makeInstance(
-                ArrayProcessing::class,
-                'translationFile',
-                '((.+)\.translationFile)(?:\.|$)',
-                function ($key, $value, $matches) use (&$formDefinition) {
-                    [, $singleOptionPath, $parentOptionPath] = $matches;
-
-                    try {
-                        $translationFiles = ArrayUtility::getValueByPath($formDefinition, $singleOptionPath, '.');
-                    } catch (MissingArrayPathException $e) {
-                        // Already migrated by a previous "translationFile.N" entry
-                        return;
-                    }
-
-                    if (is_string($translationFiles)) {
-                        // 10 is usually used by EXT:form
-                        $translationFiles = [20 => $translationFiles];
-                    }
-
-                    $formDefinition = ArrayUtility::setValueByPath(
-                        $formDefinition,
-                        sprintf('%s.translationFiles', $parentOptionPath),
-                        $translationFiles,
-                        '.'
-                    );
-                    $formDefinition = ArrayUtility::removeByPath($formDefinition, $singleOptionPath, '.');
-
-                    return $value;
-                }
-            )
-        );
-
-        return $formDefinition;
-    }
-
     /**
      * Migrate single recipient options to their list successors
      *
@@ -728,33 +677,6 @@ class FormEditorController extends AbstractBackendController
         return $formDefinition;
     }
 
-    /**
-     * Migrate email "format" option to "addHtmlPart"
-     *
-     * @param array $formDefinition
-     * @return array
-     * @deprecated since v10 and will be removed in TYPO3 v11
-     */
-    protected function migrateEmailFormatOption(array $formDefinition): array
-    {
-        foreach ($formDefinition['finishers'] ?? [] as $i => $finisherConfiguration) {
-            if (!in_array($finisherConfiguration['identifier'], ['EmailToSender', 'EmailToReceiver'], true)) {
-                continue;
-            }
-
-            $format = $finisherConfiguration['options']['format'] ?? null;
-
-            if (!empty($format)) {
-                $finisherConfiguration['options']['addHtmlPart'] = empty($format) || $format !== EmailFinisher::FORMAT_PLAINTEXT;
-            }
-
-            unset($finisherConfiguration['options']['format']);
-            $formDefinition['finishers'][$i] = $finisherConfiguration;
-        }
-
-        return $formDefinition;
-    }
-
     /**
      * @return FormDefinitionConversionService
      */
diff --git a/typo3/sysext/form/Classes/Domain/Finishers/EmailFinisher.php b/typo3/sysext/form/Classes/Domain/Finishers/EmailFinisher.php
index eeee910f488c..1e0d81683605 100644
--- a/typo3/sysext/form/Classes/Domain/Finishers/EmailFinisher.php
+++ b/typo3/sysext/form/Classes/Domain/Finishers/EmailFinisher.php
@@ -59,9 +59,6 @@ use TYPO3\CMS\Form\ViewHelpers\RenderRenderableViewHelper;
  */
 class EmailFinisher extends AbstractFinisher
 {
-    const FORMAT_PLAINTEXT = 'plaintext';
-    const FORMAT_HTML = 'html';
-
     /**
      * @var array
      */
diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php
index 54315520067f..58dfae0f937b 100644
--- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php
+++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php
@@ -186,11 +186,13 @@ return [
     'TYPO3\CMS\Form\Domain\Finishers\EmailFinisher::FORMAT_PLAINTEXT' => [
         'restFiles' => [
             'Deprecation-87200-EmailFinisherFormatContants.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Form\Domain\Finishers\EmailFinisher::FORMAT_HTML' => [
         'restFiles' => [
             'Deprecation-87200-EmailFinisherFormatContants.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreProcessStorage' => [
-- 
GitLab