! This patches are not needed anymore with TYPO3 7.6.8 and flux 7.4.0 !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | commit 82027c3d7df7ca7d9558ae2d21e16eeda1f82333 Author: Andreas Wolf <dev@a-w.io> Date: Tue Nov 10 10:37:17 2015 +0100 [BUGFIX] Flexform DS not properly resolved in IRRE AJAX If multiple data structures are defined for a flex field, they are listed in the 'ds' entry of the field’s TCA config. In this case, the proper data structure needs to be resolved first before processing the inline request, the necessary steps for which are introduced by this patch. Resolves: #71436 Releases: master Change-Id: Ie846ddd11efdf76b9249feb3a9d8a67b38de3983 diff --git typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php index 9336141..4b2fe8b 100644 --- typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php +++ typo3/sysext/backend/Classes/Controller/FormInlineAjaxController.php @@ -21,11 +21,13 @@ use TYPO3\CMS\Backend\Form\FormDataGroup\InlineParentRecord; use TYPO3\CMS\Backend\Form\FormDataGroup\TcaDatabaseRecord; use TYPO3\CMS\Backend\Form\InlineStackProcessor; use TYPO3\CMS\Backend\Form\NodeFactory; +use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\DataHandling\DataHandler; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\MathUtility; + /** * Handle FormEngine inline ajax calls */ @@ -62,10 +64,8 @@ class FormInlineAjaxController if (MathUtility::canBeInterpretedAsInteger($parent['uid'])) { $command = 'edit'; $vanillaUid = (int)$parent['uid']; - $databaseRow = [ - // TcaInlineExpandCollapseState needs the record uid - 'uid' => (int)$parent['uid'], - ]; + // we need the full record to e.g. fetch the proper data structure + $databaseRow = BackendUtility::getRecord($parent['table'], $parent['uid']); } else { $command = 'new'; $databaseRow = []; @@ -85,9 +85,12 @@ class FormInlineAjaxController ]; /** @var TcaDatabaseRecord $formDataGroup */ $formDataGroup = GeneralUtility::makeInstance(InlineParentRecord::class); + + /** @var FormDataCompiler $formDataCompiler */ $formDataCompiler = GeneralUtility::makeInstance(FormDataCompiler::class, $formDataGroup); $parentData = $formDataCompiler->compile($formDataCompilerInputForParent); + $parentConfig = $parentData['processedTca']['columns'][$parentFieldName]['config']; // Child, a record from this table should be rendered |