From 8c478504630d921cc4168e57135e1743b145b27a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20E=C3=9Fl?= <indy.essl@gmail.com> Date: Sat, 29 Feb 2020 13:02:11 +0100 Subject: [PATCH] [BUGFIX] Evaluate invertStateDisplay in flexforms The option "invertStateDisplay" for checkboxes was not working with flexforms, because the received true/false values from a flexform are of type "string" and not of type "bool". To correctly evaluate these values, the "invertStateDisplay" options in the TcaCheckboxItems class are now cast to bool. Resolves: #90542 Releases: master, 9.5 Change-Id: I52027703a103db858db40095b039837c43ebe5d0 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63506 Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by: Oliver Bartsch <bo@cedev.de> Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de> Reviewed-by: Susanne Moog <look@susi.dev> Tested-by: TYPO3com <noreply@typo3.com> Tested-by: Daniel Goerz <daniel.goerz@posteo.de> Tested-by: Susanne Moog <look@susi.dev> --- .../Classes/Form/FormDataProvider/TcaCheckboxItems.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaCheckboxItems.php b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaCheckboxItems.php index 76519bb24905..3b2a93c4546f 100644 --- a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaCheckboxItems.php +++ b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaCheckboxItems.php @@ -128,7 +128,7 @@ class TcaCheckboxItems extends AbstractItemProvider implements FormDataProviderI private function sanitizeToggleCheckbox(array $item, int $itemKey, array $newItems) { if (array_key_exists('invertStateDisplay', $item)) { - $newItems[$itemKey]['invertStateDisplay'] = $item['invertStateDisplay']; + $newItems[$itemKey]['invertStateDisplay'] = (bool)$item['invertStateDisplay']; } else { $newItems[$itemKey]['invertStateDisplay'] = false; } @@ -150,7 +150,7 @@ class TcaCheckboxItems extends AbstractItemProvider implements FormDataProviderI $newItems[$itemKey]['labelUnchecked'] = $this->getLanguageService()->sL($item['labelUnchecked']); } if (array_key_exists('invertStateDisplay', $item)) { - $newItems[$itemKey]['invertStateDisplay'] = $item['invertStateDisplay']; + $newItems[$itemKey]['invertStateDisplay'] = (bool)$item['invertStateDisplay']; } else { $newItems[$itemKey]['invertStateDisplay'] = false; } @@ -172,7 +172,7 @@ class TcaCheckboxItems extends AbstractItemProvider implements FormDataProviderI $newItems[$itemKey]['iconIdentifierUnchecked'] = $item['iconIdentifierUnchecked']; } if (array_key_exists('invertStateDisplay', $item)) { - $newItems[$itemKey]['invertStateDisplay'] = $item['invertStateDisplay']; + $newItems[$itemKey]['invertStateDisplay'] = (bool)$item['invertStateDisplay']; } else { $newItems[$itemKey]['invertStateDisplay'] = false; } -- GitLab