diff --git a/extension/Classes/Core/Save.php b/extension/Classes/Core/Save.php index 5e9cca3c8139ef44797e325ffb5213fd8bc40255..4aa8efff81bebad23365bea5839b5abb67866bb6 100644 --- a/extension/Classes/Core/Save.php +++ b/extension/Classes/Core/Save.php @@ -373,6 +373,7 @@ class Save { // Create glue records foreach ($result as $id => $value) { + $this->store->setVar(VAR_TAG_ID, $id, STORE_VAR); $this->store->setVar(VAR_TAG_VALUE, $value, STORE_VAR); diff --git a/extension/Classes/Core/Store/FillStoreForm.php b/extension/Classes/Core/Store/FillStoreForm.php index 144726696bd7b5327eed3ff47328da9c2544f46d..7ded5a153c78fe5938980be6c5bea324c0077e26 100644 --- a/extension/Classes/Core/Store/FillStoreForm.php +++ b/extension/Classes/Core/Store/FillStoreForm.php @@ -295,12 +295,19 @@ class FillStoreForm { (isset($formElement[FE_PROCESS_READ_ONLY]) && $formElement[FE_PROCESS_READ_ONLY] != '0')) { if (HelperFormElement::booleParameter($formElement[FE_TYPEAHEAD_TAG] ?? '-')) { + // TypeAhead Tags received as JSON key/value + $cntNew = 0; + // TYPEAHEAD_TAG will be delivered as JSON. Check and sanitize every key/value pair. $arr = json_decode($clientValues[$clientFieldName], true); $arrTmp = array(); foreach ($arr as $row) { $arrKey = $this->doValue($formElement, $formMode, $row['key']); + // New Tags always get '0' >> make them uniq by adding a counter. + if ($arrKey == "0") { + $arrKey = "0-" . ++$cntNew; + } $arrValue = $this->doValue($formElement, $formMode, $row['value']); $arrTmp[$arrKey] = $arrValue; }