From e7882f440155bfac8fcff53b605d080f330f235e Mon Sep 17 00:00:00 2001 From: Susanne Moog <s.moog@neusta.de> Date: Tue, 15 Aug 2017 09:41:08 +0200 Subject: [PATCH] [BUGFIX] _LOCAL_LANG overwrite via TypoScript with nested keys If language labels are set for the top level key and sub keys in TypoScript the top level key was not taken into account as it got stored with 'typoScriptNodeValue' as key. Special handling for that specific key was introduced, to make overwriting of top level keys possible again. Change-Id: Ibd5f5a939b1de530ba93840cfb7ba5ab5bc85c2f Resolves: #81095 Releases: master, 8.7 Reviewed-on: https://review.typo3.org/53701 Tested-by: TYPO3com <no-reply@typo3.com> Reviewed-by: Joerg Boesche <typo3@joergboesche.de> Tested-by: Joerg Boesche <typo3@joergboesche.de> Reviewed-by: Andreas Fernandez <typo3@scripting-base.de> Tested-by: Andreas Fernandez <typo3@scripting-base.de> --- .../sysext/extbase/Classes/Utility/LocalizationUtility.php | 6 +++++- .../extbase/Tests/Unit/Utility/LocalizationUtilityTest.php | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/typo3/sysext/extbase/Classes/Utility/LocalizationUtility.php b/typo3/sysext/extbase/Classes/Utility/LocalizationUtility.php index 6852472b84c3..0e8451cc883d 100644 --- a/typo3/sysext/extbase/Classes/Utility/LocalizationUtility.php +++ b/typo3/sysext/extbase/Classes/Utility/LocalizationUtility.php @@ -255,7 +255,11 @@ class LocalizationUtility $result = []; foreach ($labelValues as $key => $labelValue) { if (!empty($parentKey)) { - $key = $parentKey . '.' . $key; + if ($key === '_typoScriptNodeValue') { + $key = $parentKey; + } else { + $key = $parentKey . '.' . $key; + } } if (is_array($labelValue)) { $labelValue = self::flattenTypoScriptLabelArray($labelValue, $key); diff --git a/typo3/sysext/extbase/Tests/Unit/Utility/LocalizationUtilityTest.php b/typo3/sysext/extbase/Tests/Unit/Utility/LocalizationUtilityTest.php index 9e6aa7df0463..f1719e8f4309 100644 --- a/typo3/sysext/extbase/Tests/Unit/Utility/LocalizationUtilityTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Utility/LocalizationUtilityTest.php @@ -195,6 +195,7 @@ class LocalizationUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTest $expected = [ 'key1' => 'value1', 'key2' => 'value2', + 'key3' => 'value3', 'key3.subkey1' => 'subvalue1', 'key3.subkey2.subsubkey' => 'val' ]; @@ -202,6 +203,7 @@ class LocalizationUtilityTest extends \TYPO3\TestingFramework\Core\Unit\UnitTest 'key1' => 'value1', 'key2' => 'value2', 'key3' => [ + '_typoScriptNodeValue' => 'value3', 'subkey1' => 'subvalue1', 'subkey2' => [ 'subsubkey' => 'val' -- GitLab