[BUGFIX] Make it possible to translate selectMultipleSideBySide 75/55675/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:46:46 +0000 (12:46 +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/55675
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 fdaf480..5bda89d 100644 (file)
@@ -16,6 +16,7 @@ namespace TYPO3\CMS\Backend\Form\Element;
 
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Core\Utility\MathUtility;
 use TYPO3\CMS\Core\Utility\StringUtility;
 
@@ -61,6 +62,9 @@ class SelectMultipleSideBySideElement extends AbstractFormElement
         }
         // Get the array with selected items:
         $itemsArray = $parameterArray['itemFormElValue'] ?: [];
+        if (!is_array($itemsArray)) {
+            $itemsArray = GeneralUtility::trimExplode(',', $itemsArray, true);
+        }
 
         // Perform modification of the selected items array:
         foreach ($itemsArray as $itemNumber => $itemValue) {