[BUGFIX] Make it possible to translate selectMultipleSideBySide 74/55674/2
authorManuel Selbach <manuel_selbach@yahoo.de>
Thu, 8 Feb 2018 17:51:43 +0000 (18:51 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Mon, 12 Feb 2018 11:38:00 +0000 (12:38 +0100)
For the default language it was possible to view the field, but on
translating the dataset, the following exception is thrown:
'PHP Warning: Invalid argument supplied for foreach() in
backend/Classes/Form/Element/SelectMultipleSideBySideElement.php line 66'

As the defaultLanguageRow keeps to be "unparsed", the $selectedItems
could be a comma separated string within the method
TYPO3\CMS\Backend\Form\Element\SelectMultipleSideBySideElement::renderReadOnly
if the TCA configuration of a field is set to 'defaultAsReadonly'.

Resolves: #77155
Releases: master, 8.7, 7.6
Change-Id: Id9380fe3761e683352166565ed1a7e56f5e64190
Reviewed-on: https://review.typo3.org/55674
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/backend/Classes/Form/Element/SelectMultipleSideBySideElement.php

index ac1f5f6..774f783 100644 (file)
@@ -348,6 +348,9 @@ class SelectMultipleSideBySideElement extends AbstractFormElement
 
         $possibleItems = $config['items'];
         $selectedItems = $parameterArray['itemFormElValue'] ?: [];
+        if (!is_array($selectedItems)) {
+            $selectedItems = GeneralUtility::trimExplode(',', $selectedItems, true);
+        }
         $selectedItemsCount = count($selectedItems);
 
         $autoSizeMax = MathUtility::forceIntegerInRange($config['autoSizeMax'], 0);