From 3422685d30f50d2cda1325d4ad2b4e41db648f90 Mon Sep 17 00:00:00 2001 From: Mathias Schreiber <mathias.schreiber@wmdb.de> Date: Thu, 29 Oct 2015 13:37:43 +0100 Subject: [PATCH] [FOLLOWUP][TASK] FormEngine: Move SelectTree processing into a data provider Extracted the target check into a dedicated method Resolves: #69728 Releases: master Change-Id: I24826cd8896444406066b93ffae330c22f933645 Reviewed-on: https://review.typo3.org/44352 Reviewed-by: Morton Jonuschat <m.jonuschat@mojocode.de> Tested-by: Morton Jonuschat <m.jonuschat@mojocode.de> Reviewed-by: Andreas Fernandez <typo3@scripting-base.de> Tested-by: Andreas Fernandez <typo3@scripting-base.de> --- .../Form/FormDataProvider/TcaSelectItems.php | 20 ++++++++++++++++++- .../FormDataProvider/TcaSelectTreeItems.php | 16 ++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php index 1a29d46ca478..70522a4d26b3 100644 --- a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php +++ b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php @@ -38,7 +38,7 @@ class TcaSelectItems extends AbstractItemProvider implements FormDataProviderInt } // Make sure we are only processing supported renderTypes - if (!in_array($fieldConfig['config']['renderType'], ['selectSingle', 'selectSingleBox', 'selectCheckBox', 'selectMultipleSideBySide'])) { + if ($this->isTargetRenderType($fieldConfig)) { continue; } @@ -80,4 +80,22 @@ class TcaSelectItems extends AbstractItemProvider implements FormDataProviderInt return $result; } + + /** + * Determines whether the current field is a valid target for this DataProvider + * + * @param array $fieldConfig + * @return bool + */ + protected function isTargetRenderType(array $fieldConfig) + { + if (!in_array( + $fieldConfig['config']['renderType'], + ['selectSingle', 'selectSingleBox', 'selectCheckBox', 'selectMultipleSideBySide'], + true + )) { + return true; + } + return false; + } } diff --git a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectTreeItems.php b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectTreeItems.php index ca1af2ee793f..13c76afaba21 100644 --- a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectTreeItems.php +++ b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectTreeItems.php @@ -42,7 +42,7 @@ class TcaSelectTreeItems extends AbstractItemProvider implements FormDataProvide } // Make sure we are only processing supported renderTypes - if ($fieldConfig['config']['renderType'] !== 'selectTree') { + if ($this->isTargetRenderType($fieldConfig)) { continue; } @@ -186,4 +186,18 @@ class TcaSelectTreeItems extends AbstractItemProvider implements FormDataProvide return $selectedNodes; } + + /** + * Determines whether the current field is a valid target for this DataProvider + * + * @param array $fieldConfig + * @return bool + */ + protected function isTargetRenderType(array $fieldConfig) + { + if ($fieldConfig['config']['renderType'] !== 'selectTree') { + return true; + } + return false; + } } -- GitLab