From 8865b1cfa72064580a48c58a1b874f155b68ef55 Mon Sep 17 00:00:00 2001 From: Daniel Siepmann <daniel.siepmann@typo3.org> Date: Tue, 15 Jan 2019 14:40:10 +0100 Subject: [PATCH] [BUGFIX] Respect columnsOverrides in TCA for suggest wizard These changes in the SuggestWizardController allow users to override allowed tables in group fields with columnsOverrides. Typical usecases for this is to use the records field for tt_content elements. Resolves: #76661 Releases: master Change-Id: Ic566c793f8d953802f5f6ff670fde485c19ed9db Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/59444 Tested-by: TYPO3com <noreply@typo3.com> Tested-by: Josef Glatz <josefglatz@gmail.com> Tested-by: Oliver Bartsch <bo@cedev.de> Tested-by: Georg Ringer <georg.ringer@gmail.com> Reviewed-by: Josef Glatz <josefglatz@gmail.com> Reviewed-by: Oliver Bartsch <bo@cedev.de> Reviewed-by: Georg Ringer <georg.ringer@gmail.com> --- .../Classes/Controller/Wizard/SuggestWizardController.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/typo3/sysext/backend/Classes/Controller/Wizard/SuggestWizardController.php b/typo3/sysext/backend/Classes/Controller/Wizard/SuggestWizardController.php index 572dfe8ee5ae..a3f18fa5cbe2 100644 --- a/typo3/sysext/backend/Classes/Controller/Wizard/SuggestWizardController.php +++ b/typo3/sysext/backend/Classes/Controller/Wizard/SuggestWizardController.php @@ -60,6 +60,14 @@ class SuggestWizardController // Normal columns field $fieldConfig = $GLOBALS['TCA'][$tableName]['columns'][$fieldName]['config']; $fieldNameInPageTsConfig = $fieldName; + + // With possible columnsOverrides + $row = BackendUtility::getRecord($tableName, $uid); + $recordType = BackendUtility::getTCAtypeValue($tableName, $row); + $columnsOverridesConfigOfField = $GLOBALS['TCA'][$tableName]['types'][$recordType]['columnsOverrides'][$fieldName]['config'] ?? null; + if ($columnsOverridesConfigOfField) { + ArrayUtility::mergeRecursiveWithOverrule($fieldConfig, $columnsOverridesConfigOfField); + } } else { // A flex flex form field $flexFormTools = GeneralUtility::makeInstance(FlexFormTools::class); -- GitLab